diff --git a/README.md b/README.md index 580ad90a1e23518ef7e1d4e78949fa9a3248d18a..0e3c86b0313fe460bf3d14646a9d35331390b22f 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ com.github.wb04307201 file-preview-spring-boot-starter - 1.2.4 + 1.2.5 ``` @@ -96,9 +96,9 @@ file: > 直接预览word,excel,ppt,文本类型的文件 > 可以通过docker快速安装onlyoffice,命令如下 ```bash -docker run --name onlyoffice -i -t -d -p 80:80 -e JWT_ENABLED=false onlyoffice/documentserver -#如果需要使用JWT docker run --name onlyoffice -i -t -d -p 80:80 -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver +#如果需要关闭使用JWT +docker run --name onlyoffice -i -t -d -p 80:80 -e JWT_ENABLED=false onlyoffice/documentserver ``` 可参考官方文档 [Installing ONLYOFFICE Docs Community Edition for Docker on a local server](https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx) @@ -119,7 +119,7 @@ file: domain: http://ip:port #OnlyOffice服务所在域 download: http://ip:port/file/preview/download #当前服务的文件下载接口,用于onlyoffice从当前服务下载文件 callback: http://ip:port/file/preview/onlyoffice/callback #当前服务的回写文件服务,用于onlyoffice回写文件到当前服务 - #secret: my_jwt_secret #如果启用JWT,需要在这里配置约定好的secret + secret: my_jwt_secret #如果启用JWT,需要在这里配置约定好的secret ``` @@ -647,8 +647,8 @@ public class Demo2Controller { | dmn | [bpmn.io](https://bpmn.io/) | | ## 其他6:自定义预览界面渲染 -在实际使用minio作为对象存储,想直接使用minio的url播放视频 -可通过集成IRenderPage并实现support和render方法的方式自定义页面渲染的方式 +比如在实际使用minio作为对象存储,并想直接使用minio的url播放上传的视频 +可通过继承IRenderPage并实现support和render方法的方式自定义页面渲染的方式 ```java @Service public class MinIORenderPage implements IRenderPage { diff --git a/src/main/java/cn/wubo/file/preview/page/impl/PdfPage.java b/src/main/java/cn/wubo/file/preview/page/impl/PdfPage.java index 664bd51f308d055d1c68ac06335ba314616fad15..57c3ad7b96173ddc2b2c7341c3a84bea9e4f46e5 100644 --- a/src/main/java/cn/wubo/file/preview/page/impl/PdfPage.java +++ b/src/main/java/cn/wubo/file/preview/page/impl/PdfPage.java @@ -13,6 +13,6 @@ public class PdfPage extends AbstractPage { @Override public ServerResponse build() { - return sendRedirect(String.format("%s/file/preview/static/pdfjs/3.0.279/web/viewer.html?file=%s/file/preview/download?id=%s", getContextPath(), getContextPath(), getInfo().getId())); + return sendRedirect(String.format("%s/file/preview/static/pdfjs/4.0.379/web/viewer.html?file=%s/file/preview/download?id=%s", getContextPath(), getContextPath(), getInfo().getId())); } } diff --git a/src/main/java/cn/wubo/file/preview/utils/FileUtils.java b/src/main/java/cn/wubo/file/preview/utils/FileUtils.java index 33f469a6c4341077c887d63db7bd07e8c08ea7ed..5b4844d13e87e89d3cc9f6aaa22bf24f2f0dd9b9 100644 --- a/src/main/java/cn/wubo/file/preview/utils/FileUtils.java +++ b/src/main/java/cn/wubo/file/preview/utils/FileUtils.java @@ -250,6 +250,8 @@ public class FileUtils { contentType = "image/tiff"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".svg") || StringUtils.endsWithIgnoreCase(filePath, ".svgz")) { contentType = "image/svg+xml"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".webp")) { + contentType = "image/webp"; } // 文本 else if (StringUtils.endsWithIgnoreCase(filePath, ".txt") || StringUtils.endsWithIgnoreCase(filePath, ".text") || StringUtils.endsWithIgnoreCase(filePath, ".conf") || StringUtils.endsWithIgnoreCase(filePath, ".prop") || StringUtils.endsWithIgnoreCase(filePath, ".rc") || StringUtils.endsWithIgnoreCase(filePath, ".yaml") || StringUtils.endsWithIgnoreCase(filePath, ".properties")) { @@ -306,6 +308,8 @@ public class FileUtils { contentType = "application/octet-stream"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".xmind")) { contentType = "application/xmind"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".wgt")) { + contentType = "application/widget"; } } diff --git a/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/bpmn-viewer.production.min.js b/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/bpmn-viewer.production.min.js deleted file mode 100644 index cc86abc8f0a0bbf8e355422e1daafcd66d7f8f27..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/bpmn-viewer.production.min.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! bpmn-js - bpmn-viewer v16.3.0 | Copyright (c) 2014-present, camunda Services GmbH | bpmn.io/license */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).BpmnJS=t()}(this,(function(){"use strict";function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}const t=Object.prototype.toString,n=Object.prototype.hasOwnProperty;function i(e){return void 0===e}function r(e){return void 0!==e}function o(e){return"[object Array]"===t.call(e)}function a(e){return"[object Object]"===t.call(e)}function s(e){return"[object Number]"===t.call(e)}function l(e){const n=t.call(e);return"[object Function]"===n||"[object AsyncFunction]"===n||"[object GeneratorFunction]"===n||"[object AsyncGeneratorFunction]"===n||"[object Proxy]"===n}function p(e){return"[object String]"===t.call(e)}function c(e,t){return n.call(e,t)}function u(e,t){const n=v(t);let i;return f(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function h(e,t){const n=v(t);let i=[];return f(e,(function(e,t){n(e,t)&&i.push(e)})),i}function f(e,t){let n,r;if(i(e))return;const a=o(e)?w:x;for(let i in e)if(c(e,i)&&(n=e[i],r=t(n,a(i)),!1===r))return n}function m(e,t,n){return f(e,(function(e,i){n=t(n,e,i)})),n}function d(e,t){return!!m(e,(function(e,n,i){return e&&t(n,i)}),!0)}function y(e,t){return!!u(e,t)}function g(e){return function(t){return d(e,(function(e,n){return t[n]===e}))}}function v(e){return l(e)?e:t=>t===e}function x(e){return e}function w(e){return Number(e)}function b(e,t){return e.bind(t)}function E(e,...t){return Object.assign(e,...t)}var _=1e3;function A(e,t){var n=this;t=t||_,e.on(["render.shape","render.connection"],t,(function(e,t){var i=e.type,r=t.element,o=t.gfx,a=t.attrs;if(n.canRender(r))return"render.shape"===i?n.drawShape(o,r,a):n.drawConnection(o,r,a)})),e.on(["render.getShapePath","render.getConnectionPath"],t,(function(e,t){if(n.canRender(t))return"render.getShapePath"===e.type?n.getShapePath(t):n.getConnectionPath(t)}))}function R(e,t){var n=S(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}function S(e){return e&&e.businessObject||e}function k(e){return e&&e.di}function C(e,t){return!R(e,"bpmn:CallActivity")&&(R(e,"bpmn:SubProcess")?!(!(t=t||k(e))||!R(t,"bpmndi:BPMNPlane"))||t&&!!t.isExpanded:!R(e,"bpmn:Participant")||!!S(e).processRef)}function M(e){if(R(e,"bpmn:Participant")||R(e,"bpmn:Lane")){var t=k(e).isHorizontal;return void 0===t||t}}A.prototype.canRender=function(e){},A.prototype.drawShape=function(e,t){},A.prototype.drawConnection=function(e,t){},A.prototype.getShapePath=function(e){},A.prototype.getConnectionPath=function(e){};var P={width:90,height:20},N=15;function T(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)],r=function(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)];return{x:n.x+(i.x-n.x)/2,y:n.y+(i.y-n.y)/2}}(e),o=Math.atan((i.y-n.y)/(i.x-n.x)),a=r.x,s=r.y;return Math.abs(o)"+e+"",t=!0);var n=function(e){var t;return(t=new DOMParser).async=!1,t.parseFromString(e,"text/xml")}(e);if(!t)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function Y(e,t){var n;return"<"===e.charAt(0)?(n=q(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(K.svg,e),t&&V(n,t),n}var X=null;function Z(){return null===X&&(X=Y("svg")),X}function J(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)e[i]=t[i];return e}function Q(e){return e?Z().createSVGTransformFromMatrix(e):Z().createSVGTransform()}var ee=/([&<>]{1})/g,te=/([\n\r"]{1})/g,ne={"&":"&","<":"<",">":">",'"':"'"};function ie(e,t){return e.replace(t,(function(e,t){return ne[t]||t}))}function re(e,t){var n,i,r,o,a;switch(e.nodeType){case 3:t.push(ie(e.textContent,ee));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(r=e.attributes).length;n"),n=0,i=(a=e.childNodes).length;n")}else t.push("/>");break;case 8:t.push("\x3c!--",ie(e.nodeValue,ee),"--\x3e");break;case 4:t.push("");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function oe(e,t){var n=q(t);if(H(e),t){(function(e){return"#document-fragment"===e.nodeName})(n)||(n=n.documentElement);for(var i,r=(i=n.childNodes,Array.prototype.slice.call(i)),o=0;o
a',qe=!He.getElementsByTagName("link").length,He=void 0);var Ye={legend:[1,"
","
"],tr:[2,"","
"],col:[2,"","
"],_default:qe?[1,"X
","
"]:[0,"",""]};Ye.td=Ye.th=[3,"","
"],Ye.option=Ye.optgroup=[1,'"],Ye.thead=Ye.tbody=Ye.colgroup=Ye.caption=Ye.tfoot=[1,"","
"],Ye.polyline=Ye.ellipse=Ye.polygon=Ye.circle=Ye.text=Ye.line=Ye.path=Ye.rect=Ye.g=[1,'',""];var Xe=Ue;function Ze(e,t){return(t=t||document).querySelector(e)}function Je(e){e.parentNode&&e.parentNode.removeChild(e)}function Qe(e,t,n,i,r){var o=Q();o.setTranslate(t,n);var a=Q();a.setRotate(i||0,0,0);var s=Q();s.setScale(r||1,r||1),le(e,[o,a,s])}function et(e,t,n){var i=Q();i.setTranslate(t,n),le(e,i)}var tt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=e.exports=function(e,n){if(n||(n=16),void 0===e&&(e=128),e<=0)return"0";for(var i=Math.log(Math.pow(2,e))/Math.log(n),r=2;i===1/0;r*=2)i=Math.log(Math.pow(2,e/r))/Math.log(n)*r;var o=i-Math.floor(i),a="";for(r=0;r=Math.pow(2,e)?t(e,n):a};t.rack=function(e,n,i){var r=function(r){var a=0;do{if(a++>10){if(!i)throw new Error("too many ID collisions, use more bits");e+=i}var s=t(e,n)}while(Object.hasOwnProperty.call(o,s));return o[s]=r,s},o=r.hats={};return r.get=function(e){return r.hats[e]},r.set=function(e,t){return r.hats[e]=t,r},r.bits=e||128,r.base=n||16,r}}));function nt(e){if(!(this instanceof nt))return new nt(e);e=e||[128,36,1],this._seed=e.length?tt.rack(e[0],e[1],e[2]):e}nt.prototype.next=function(e){return this._seed(e||!0)},nt.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},nt.prototype.claim=function(e,t){this._seed.set(e,t||!0)},nt.prototype.assigned=function(e){return this._seed.get(e)||!1},nt.prototype.unclaim=function(e){delete this._seed.hats[e]},nt.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};var it=new nt,rt=.95;function ot(e,t,n,i,r,o,s){A.call(this,t,s);var l=e&&e.defaultFillColor,p=e&&e.defaultStrokeColor,c=e&&e.defaultLabelColor,u=it.next(),h={};function m(e){return n.computeStyle(e,{strokeLinecap:"round",strokeLinejoin:"round",stroke:ye,strokeWidth:2,fill:"white"})}function d(e){return n.computeStyle(e,["no-fill"],{strokeLinecap:"round",strokeLinejoin:"round",stroke:ye,strokeWidth:2})}function y(e,t){var{ref:n={x:0,y:0},scale:i=1,element:o}=t,a=Y("marker",{id:e,viewBox:"0 0 20 20",refX:n.x,refY:n.y,markerWidth:20*i,markerHeight:20*i,orient:"auto"});L(a,o);var s=Ze("defs",r._svg);s||(s=Y("defs"),L(r._svg,s)),L(s,a),h[e]=a}function g(e){return e.replace(/[^0-9a-zA-Z]+/g,"_")}function v(e,t,n){var i=e+"-"+g(t)+"-"+g(n)+"-"+u;return h[i]||function(e,t,n,i){if("sequenceflow-end"===t){y(e,{element:Y("path",{d:"M 1 5 L 11 10 L 1 15 Z",...m({fill:i,stroke:i,strokeWidth:1})}),ref:{x:11,y:10},scale:.5})}if("messageflow-start"===t){y(e,{element:Y("circle",{cx:6,cy:6,r:3.5,...m({fill:n,stroke:i,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:6,y:6}})}if("messageflow-end"===t){y(e,{element:Y("path",{d:"m 1 5 l 0 -3 l 7 3 l -7 3 z",...m({fill:n,stroke:i,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:8.5,y:5}})}if("association-start"===t){y(e,{element:Y("path",{d:"M 11 5 L 1 10 L 11 15",...d({fill:"none",stroke:i,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:1,y:10},scale:.5})}if("association-end"===t){y(e,{element:Y("path",{d:"M 1 5 L 11 10 L 1 15",...d({fill:"none",stroke:i,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:11,y:10},scale:.5})}if("conditional-flow-marker"===t){y(e,{element:Y("path",{d:"M 0 10 L 8 6 L 16 10 L 8 14 Z",...m({fill:n,stroke:i})}),ref:{x:-1,y:10},scale:.5})}if("conditional-default-flow-marker"===t){y(e,{element:Y("path",{d:"M 6 4 L 10 16",...m({stroke:i})}),ref:{x:0,y:10},scale:.5})}}(i,e,t,n),"url(#"+i+")"}function x(e,t,n,i,r={}){a(i)&&(r=i,i=0),i=i||0,r=m(r);var o=Y("circle",{cx:t/2,cy:n/2,r:Math.round((t+n)/4-i),...r});return L(e,o),o}function w(e,t,n,i,r,o){a(r)&&(o=r,r=0),r=r||0,o=m(o);var s=Y("rect",{x:r,y:r,width:t-2*r,height:n-2*r,rx:i,ry:i,...o});return L(e,s),s}function b(e,t,n,i){var r=me(t,n=d(n),i);return L(e,r),r}function _(e,t,n){return b(e,t,n,5)}function P(e,t,n){n=d(n);var i=Y("path",{...n,d:t});return L(e,i),i}function N(e,t,n,i){return P(t,n,E({"data-marker":e},i))}function T(e){return de[e]}function O(e){return function(t,n,i){return T(e)(t,n,i)}}var B=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_MESSAGE",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.235,my:.315}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:r?xe(t,l,n.fill):we(t,p,n.stroke),strokeWidth:1})},I=function(e,t,n={}){var r=x(e,t.width,t.height,.2*t.height,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:2});P(e,i.getScaledPath("EVENT_TIMER_WH",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),{stroke:we(t,p,n.stroke),strokeWidth:2});for(var o=0;o<12;o++){var a=i.getScaledPath("EVENT_TIMER_LINE",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),s=t.width/2,c=t.height/2;P(e,a,{strokeWidth:1,stroke:we(t,p,n.stroke),transform:"rotate("+30*o+","+c+","+s+")"})}return r},F=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_ESCALATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},j=function(e,t,n={}){return P(e,i.getScaledPath("EVENT_CONDITIONAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.222}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},W=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_LINK",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.57,my:.263}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},G=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_ERROR",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.2,my:.722}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},$=function(e,t,n={},r){var o=P(e,i.getScaledPath("EVENT_CANCEL_45",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.638,my:-.055}}),{fill:r?we(t,p,n.stroke):"none",stroke:we(t,p,n.stroke),strokeWidth:1});return function(e,t){var n=Q();n.setRotate(t,0,0),le(e,n)}(o,45),o},H=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.22,my:.5}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},K=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_SIGNAL",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{strokeWidth:1,fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},U=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_MULTIPLE",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.222,my:.36}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),strokeWidth:1})},q=function(e,t,n={}){return P(e,i.getScaledPath("EVENT_PARALLEL_MULTIPLE",{xScaleFactor:1.2,yScaleFactor:1.2,containerWidth:t.width,containerHeight:t.height,position:{mx:.458,my:.194}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1})},X=function(e,t,n={}){return x(e,t.width,t.height,8,{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:4})};function Z(e,t,n={}){var i=S(e),r=function(e){return"bpmn:IntermediateThrowEvent"===e.$type||"bpmn:EndEvent"===e.$type}(i);return i.get("eventDefinitions")&&i.get("eventDefinitions").length>1?i.get("parallelMultiple")?q(t,e,n,r):U(t,e,n,r):ve(i,"bpmn:MessageEventDefinition")?B(t,e,n,r):ve(i,"bpmn:TimerEventDefinition")?I(t,e,n,r):ve(i,"bpmn:ConditionalEventDefinition")?j(t,e,n,r):ve(i,"bpmn:SignalEventDefinition")?K(t,e,n,r):ve(i,"bpmn:EscalationEventDefinition")?F(t,e,n,r):ve(i,"bpmn:LinkEventDefinition")?W(t,e,n,r):ve(i,"bpmn:ErrorEventDefinition")?G(t,e,n,r):ve(i,"bpmn:CancelEventDefinition")?$(t,e,n,r):ve(i,"bpmn:CompensateEventDefinition")?H(t,e,n,r):ve(i,"bpmn:TerminateEventDefinition")?X(t,e,n,r):null}var J={ParticipantMultiplicityMarker:function(e,t,n={}){var r=_e(t,n),o=Ae(t,n);N("participant-multiplicity",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2-6)/r,my:(o-15)/o}}),{strokeWidth:2,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},SubProcessMarker:function(e,t,n={}){et(w(e,14,14,0,{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)}),t.width/2-7.5,t.height-20),N("sub-process",e,i.getScaledPath("MARKER_SUB_PROCESS",{xScaleFactor:1.5,yScaleFactor:1.5,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2-7.5)/t.width,my:(t.height-20)/t.height}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},ParallelMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("parallel",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.parallel)/r,my:(o-20)/o}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},SequentialMarker:function(e,t,n){N("sequential",e,i.getScaledPath("MARKER_SEQUENTIAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.seq)/t.width,my:(t.height-19)/t.height}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},CompensationMarker:function(e,t,n){N("compensation",e,i.getScaledPath("MARKER_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.compensation)/t.width,my:(t.height-13)/t.height}}),{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},LoopMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("loop",e,i.getScaledPath("MARKER_LOOP",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.loop)/r,my:(o-7)/o}}),{strokeWidth:1.5,fill:"none",stroke:we(t,p,n.stroke),strokeMiterlimit:.5})},AdhocMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("adhoc",e,i.getScaledPath("MARKER_ADHOC",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.adhoc)/r,my:(o-15)/o}}),{strokeWidth:1,fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke)})}};function ee(e,t,n,i){J[e](t,n,i)}function te(e,t,n,i={}){i={fill:i.fill,stroke:i.stroke,width:_e(t,i),height:Ae(t,i)};var r=S(t),o=n&&n.includes("SubProcessMarker");i=o?{...i,seq:-21,parallel:-22,compensation:-42,loop:-18,adhoc:10}:{...i,seq:-5,parallel:-6,compensation:-27,loop:0,adhoc:10},f(n,(function(n){ee(n,e,t,i)})),r.get("isForCompensation")&&ee("CompensationMarker",e,t,i),R(r,"bpmn:AdHocSubProcess")&&ee("AdhocMarker",e,t,i);var a=r.get("loopCharacteristics"),s=a&&a.get("isSequential");a&&(void 0===s&&ee("LoopMarker",e,t,i),!1===s&&ee("ParallelMarker",e,t,i),!0===s&&ee("SequentialMarker",e,t,i))}function ne(e,t,n={}){n=E({size:{width:100}},n);var i=o.createText(t||"",n);return z(i).add("djs-label"),L(e,i),i}function ie(e,t,n,i={}){var r=S(t),o=Ee({x:t.x,y:t.y,width:t.width,height:t.height},i);return ne(e,r.name,{align:n,box:o,padding:7,style:{fill:be(t,c,p,i.stroke)}})}function re(e,t,n,i={}){var r=M(n),o=ne(e,t,{box:{height:30,width:r?Ae(n,i):_e(n,i)},align:"center-middle",style:{fill:be(n,c,p,i.stroke)}});r&&Qe(o,0,-(-1*Ae(n,i)),270)}function oe(e,t,n={}){var{width:i,height:r}=Ee(t,n);return w(e,i,r,10,{...n,fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke)})}function ae(e,t,n={}){var i=S(t),r=xe(t,l,n.fill),o=we(t,p,n.stroke);return"One"!==i.get("associationDirection")&&"Both"!==i.get("associationDirection")||(n.markerEnd=v("association-end",r,o)),"Both"===i.get("associationDirection")&&(n.markerStart=v("association-start",r,o)),n=at(n,["markerStart","markerEnd"]),_(e,t.waypoints,{...n,stroke:o,strokeDasharray:"0, 5"})}function se(e,t,n={}){var r=xe(t,l,n.fill),o=we(t,p,n.stroke),a=P(e,i.getScaledPath("DATA_OBJECT_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}}),{fill:r,fillOpacity:rt,stroke:o});(function(e){var t=e.dataObjectRef;return e.isCollection||t&&t.isCollection})(S(t))&&P(e,i.getScaledPath("DATA_OBJECT_COLLECTION_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.33,my:(t.height-18)/t.height}}),{strokeWidth:2,fill:r,stroke:o});return a}function pe(e,t,n={}){return x(e,t.width,t.height,{fillOpacity:rt,...n,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})}function ce(e,t,n={}){return function(e,t,n,i){var r=t/2,o=n/2,a=[{x:r,y:0},{x:t,y:o},{x:r,y:n},{x:0,y:o}].map((function(e){return e.x+","+e.y})).join(" ");i=m(i);var s=Y("polygon",{...i,points:a});return L(e,s),s}(e,t.width,t.height,{fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke)})}function ue(e,t,n={}){var i=w(e,_e(t,n),Ae(t,n),0,{fill:xe(t,l,n.fill),fillOpacity:n.fillOpacity||rt,stroke:we(t,p,n.stroke),strokeWidth:1.5}),r=S(t);R(r,"bpmn:Lane")&&re(e,r.get("name"),t,n);return i}function he(e,t,n={}){var i=oe(e,t,n);(function(e){return e&&!!S(e).triggeredByEvent})(t)&&V(i,{strokeDasharray:"0, 5.5",strokeWidth:2.5});var r=C(t);return ie(e,t,r?"center-top":"center-middle",n),te(e,t,r?void 0:["SubProcessMarker"],n),i}function fe(e,t,n={}){var i=oe(e,t,n);return ie(e,t,"center-middle",n),te(e,t,void 0,n),i}var de=this.handlers={"bpmn:AdHocSubProcess":function(e,t,n={}){return he(e,t,n=C(t)?at(n,["fill","stroke","width","height"]):at(n,["fill","stroke"]))},"bpmn:Association":function(e,t,n={}){return ae(e,t,n=at(n,["fill","stroke"]))},"bpmn:BoundaryEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=S(t).get("cancelActivity");n={strokeWidth:1.5,fill:xe(t,l,n.fill),fillOpacity:1,stroke:we(t,p,n.stroke)},r||(n.strokeDasharray="6");var o=pe(e,t,n);return x(e,t.width,t.height,3,{...n,fill:"none"}),i&&Z(t,e,n),o},"bpmn:BusinessRuleTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return V(P(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_MAIN",{abspos:{x:8,y:8}})),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),V(P(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_HEADER",{abspos:{x:8,y:8}})),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:CallActivity":function(e,t,n={}){return n=at(n,["fill","stroke"]),he(e,t,{strokeWidth:5,...n})},"bpmn:ComplexGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("GATEWAY_COMPLEX",{xScaleFactor:.5,yScaleFactor:.5,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.26}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:DataInput":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=i.getRawPath("DATA_ARROW"),o=se(e,t,n);return P(e,r,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1}),o},"bpmn:DataInputAssociation":function(e,t,n={}){return n=at(n,["fill","stroke"]),ae(e,t,{...n,markerEnd:v("association-end",xe(t,l,n.fill),we(t,p,n.stroke))})},"bpmn:DataObject":function(e,t,n={}){return se(e,t,n=at(n,["fill","stroke"]))},"bpmn:DataObjectReference":O("bpmn:DataObject"),"bpmn:DataOutput":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=i.getRawPath("DATA_ARROW"),o=se(e,t,n);return P(e,r,{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)}),o},"bpmn:DataOutputAssociation":function(e,t,n={}){return n=at(n,["fill","stroke"]),ae(e,t,{...n,markerEnd:v("association-end",xe(t,l,n.fill),we(t,p,n.stroke))})},"bpmn:DataStoreReference":function(e,t,n={}){return n=at(n,["fill","stroke"]),P(e,i.getScaledPath("DATA_STORE",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:.133}}),{fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke),strokeWidth:2})},"bpmn:EndEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=pe(e,t,{...n,strokeWidth:4});return i&&Z(t,e,n),r},"bpmn:EventBasedGateway":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=S(t),o=ce(e,t,n);x(e,t.width,t.height,.2*t.height,{fill:xe(t,"none",n.fill),stroke:we(t,p,n.stroke),strokeWidth:1});var a=r.get("eventGatewayType"),s=!!r.get("instantiate");if("Parallel"===a){var l=i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}});P(e,l,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1})}else"Exclusive"===a&&(s||x(e,t.width,t.height,.26*t.height,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1}),function(){var r=i.getScaledPath("GATEWAY_EVENT_BASED",{xScaleFactor:.18,yScaleFactor:.18,containerWidth:t.width,containerHeight:t.height,position:{mx:.36,my:.44}});P(e,r,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:2})}());return o},"bpmn:ExclusiveGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"])),o=i.getScaledPath("GATEWAY_EXCLUSIVE",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.32,my:.3}});return k(t).get("isMarkerVisible")&&P(e,o,{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:Gateway":function(e,t,n={}){return ce(e,t,n=at(n,["fill","stroke"]))},"bpmn:Group":function(e,t,n={}){return n=at(n,["fill","stroke","width","height"]),w(e,t.width,t.height,10,{stroke:we(t,p,n.stroke),strokeWidth:1.5,strokeDasharray:"10, 6, 0, 6",fill:"none",pointerEvents:"none",width:_e(t,n),height:Ae(t,n)})},"bpmn:InclusiveGateway":function(e,t,n={}){var i=ce(e,t,n=at(n,["fill","stroke"]));return x(e,t.width,t.height,.24*t.height,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:2.5}),i},"bpmn:IntermediateEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=pe(e,t,{...n,strokeWidth:1.5});return x(e,t.width,t.height,3,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1.5}),i&&Z(t,e,n),r},"bpmn:IntermediateCatchEvent":O("bpmn:IntermediateEvent"),"bpmn:IntermediateThrowEvent":O("bpmn:IntermediateEvent"),"bpmn:Lane":function(e,t,n={}){return n=at(n,["fill","stroke","width","height"]),ue(e,t,{...n,fillOpacity:.25})},"bpmn:ManualTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_MANUAL",{abspos:{x:17,y:15}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),r},"bpmn:MessageFlow":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=S(t),o=k(t),a=xe(t,l,n.fill),s=we(t,p,n.stroke),c=_(e,t.waypoints,{markerEnd:v("messageflow-end",a,s),markerStart:v("messageflow-start",a,s),stroke:s,strokeDasharray:"10, 11",strokeWidth:1.5});if(r.get("messageRef")){var u=c.getPointAtLength(c.getTotalLength()/2),h=i.getScaledPath("MESSAGE_FLOW_MARKER",{abspos:{x:u.x,y:u.y}}),f={strokeWidth:1};"initiating"===o.get("messageVisibleKind")?(f.fill=a,f.stroke=s):(f.fill=s,f.stroke=a);var m=P(e,h,f),d=ne(e,r.get("messageRef").get("name"),{align:"center-top",fitBox:!0,style:{fill:s}}),y=m.getBBox(),g=d.getBBox();Qe(d,u.x-g.width/2,u.y+y.height/2+10,0)}return c},"bpmn:ParallelGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.6,yScaleFactor:.6,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.2}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:Participant":function(e,t,n={}){var i=ue(e,t,n=at(n,["fill","stroke","width","height"])),r=C(t),o=M(t),a=S(t),s=a.get("name");if(r){b(e,o?[{x:30,y:0},{x:30,y:Ae(t,n)}]:[{x:0,y:30},{x:_e(t,n),y:30}],{stroke:we(t,p,n.stroke),strokeWidth:1.5}),re(e,s,t,n)}else{var l=Ee(t,n);o||(l.height=_e(t,n),l.width=Ae(t,n));var u=ne(e,s,{box:l,align:"center-middle",style:{fill:be(t,c,p,n.stroke)}});if(!o)Qe(u,0,-(-1*Ae(t,n)),270)}return a.get("participantMultiplicity")&&ee("ParticipantMultiplicityMarker",e,t,n),i},"bpmn:ReceiveTask":function(e,t,n={}){n=at(n,["fill","stroke"]);var r,o=S(t),a=fe(e,t,n);return o.get("instantiate")?(x(e,28,28,4.4,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r=i.getScaledPath("TASK_TYPE_INSTANTIATING_SEND",{abspos:{x:7.77,y:9.52}})):r=i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:21,containerHeight:14,position:{mx:.3,my:.4}}),P(e,r,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),a},"bpmn:ScriptTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_SCRIPT",{abspos:{x:15,y:20}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:SendTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:1,yScaleFactor:1,containerWidth:21,containerHeight:14,position:{mx:.285,my:.357}}),{fill:we(t,p,n.stroke),stroke:xe(t,l,n.fill),strokeWidth:1}),r},"bpmn:SequenceFlow":function(e,t,n={}){n=at(n,["fill","stroke"]);var i=xe(t,l,n.fill),r=we(t,p,n.stroke),o=_(e,t.waypoints,{markerEnd:v("sequenceflow-end",i,r),stroke:r}),a=S(t),{source:s}=t;if(s){var c=S(s);a.get("conditionExpression")&&R(c,"bpmn:Activity")&&V(o,{markerStart:v("conditional-flow-marker",i,r)}),c.get("default")&&(R(c,"bpmn:Gateway")||R(c,"bpmn:Activity"))&&c.get("default")===a&&V(o,{markerStart:v("conditional-default-flow-marker",i,r)})}return o},"bpmn:ServiceTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return x(e,10,10,{fill:xe(t,l,n.fill),stroke:"none",transform:"translate(6, 6)"}),P(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:12,y:18}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),x(e,10,10,{fill:xe(t,l,n.fill),stroke:"none",transform:"translate(11, 10)"}),P(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:17,y:22}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:StartEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]),S(t).get("isInterrupting")||(n={...n,strokeDasharray:"6"});var r=pe(e,t,n);return i&&Z(t,e,n),r},"bpmn:SubProcess":function(e,t,n={}){return he(e,t,n=C(t)?at(n,["fill","stroke","width","height"]):at(n,["fill","stroke"]))},"bpmn:Task":function(e,t,n={}){return fe(e,t,n=at(n,["fill","stroke"]))},"bpmn:TextAnnotation":function(e,t,n={}){n=at(n,["fill","stroke","width","height"]);var{width:r,height:o}=Ee(t,n),a=w(e,r,o,0,0,{fill:"none",stroke:"none"});return P(e,i.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:0,my:0}}),{stroke:we(t,p,n.stroke)}),ne(e,S(t).get("text")||"",{align:"left-top",box:Ee(t,n),padding:7,style:{fill:be(t,c,p,n.stroke)}}),a},"bpmn:Transaction":function(e,t,i={}){i=C(t)?at(i,["fill","stroke","width","height"]):at(i,["fill","stroke"]);var r=he(e,t,{strokeWidth:1.5,...i}),o=n.style(["no-fill","no-events"],{stroke:we(t,p,i.stroke),strokeWidth:1.5});return C(t)||(i={}),w(e,_e(t,i),Ae(t,i),7,3,o),r},"bpmn:UserTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_USER_1",{abspos:{x:15,y:12}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),P(e,i.getScaledPath("TASK_TYPE_USER_2",{abspos:{x:15,y:12}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),P(e,i.getScaledPath("TASK_TYPE_USER_3",{abspos:{x:15,y:12}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:.5}),r},label:function(e,t,n={}){return function(e,t,n={}){var i={width:90,height:30,x:t.width/2+t.x,y:t.height/2+t.y};return ne(e,D(t),{box:i,fitBox:!0,style:E({},o.getExternalStyle(),{fill:be(t,c,p,n.stroke)})})}(e,t,n)}};this._drawPath=P,this._renderer=T}function at(e,t=[]){return t.reduce(((t,n)=>(e[n]&&(t[n]=e[n]),t)),{})}e(ot,A),ot.$inject=["config.bpmnRenderer","eventBus","styles","pathMap","canvas","textRenderer"],ot.prototype.canRender=function(e){return R(e,"bpmn:BaseElement")},ot.prototype.drawShape=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},ot.prototype.drawConnection=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},ot.prototype.getShapePath=function(e){return R(e,"bpmn:Event")?(n=(t=e).x+t.width/2,i=t.y+t.height/2,r=t.width/2,pe([["M",n,i],["m",0,-r],["a",r,r,0,1,1,0,2*r],["a",r,r,0,1,1,0,-2*r],["z"]])):R(e,"bpmn:Activity")?function(e,t){var n=e.x,i=e.y,r=e.width,o=e.height;return pe([["M",n+t,i],["l",r-2*t,0],["a",t,t,0,0,1,t,t],["l",0,o-2*t],["a",t,t,0,0,1,-t,t],["l",2*t-r,0],["a",t,t,0,0,1,-t,-t],["l",0,2*t-o],["a",t,t,0,0,1,t,-t],["z"]])}(e,10):R(e,"bpmn:Gateway")?function(e){var t=e.width/2,n=e.height/2;return pe([["M",e.x+t,e.y],["l",t,n],["l",-t,n],["l",-t,-n],["z"]])}(e):function(e){var t=e.x,n=e.y,i=e.width;return pe([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])}(e);var t,n,i,r};var st=0,lt={width:150,height:50};function pt(e,t){var n;t.textContent=e;try{var i,r=""===e;return t.textContent=r?"dummy":e,i={width:(n=t.getBBox()).width+2*n.x,height:n.height},r&&(i.width=0),i}catch(e){return{width:0,height:0}}}function ct(e,t,n){for(var i,r=e.shift(),o=r;;){if((i=pt(o,n)).width=o?i.width:0," "===o||""===o||i.width1)for(;n=i.shift();){if(!(n.length+oe?t.width:e}),0),g=o.top;"middle"===r.vertical&&(g+=(n.height-d)/2),g-=(l||c[0].height)/4;var v=Y("text");return V(v,i),f(c,(function(e){var t;switch(g+=l||e.height,r.horizontal){case"left":t=o.left;break;case"right":t=(s?y:u)-o.right-e.width;break;default:t=Math.max(((s?y:u)-e.width)/2+o.left,0)}var n=Y("tspan");V(n,{x:t,y:g}),n.textContent=e.text,L(v,n)})),$(h),{dimensions:{width:y,height:d},element:v}};function dt(e){var t=E({fontFamily:"Arial, sans-serif",fontSize:12,fontWeight:"normal",lineHeight:1.2},e&&e.defaultStyle||{}),n=parseInt(t.fontSize,10)-1,i=E({},t,{fontSize:n},e&&e.externalStyle||{}),r=new mt({style:t});this.getExternalLabelBounds=function(e,t){var n=r.getDimensions(t,{box:{width:90,height:30},style:i});return{x:Math.round(e.x+e.width/2-n.width/2),y:Math.round(e.y),width:Math.ceil(n.width),height:Math.ceil(n.height)}},this.getTextAnnotationBounds=function(e,n){var i=r.getDimensions(n,{box:e,style:t,align:"left-top",padding:5});return{x:e.x,y:e.y,width:e.width,height:Math.max(30,Math.round(i.height))}},this.createText=function(e,t){return r.createText(e,t||{})},this.getDefaultStyle=function(){return t},this.getExternalStyle=function(){return i}}dt.$inject=["config.textRenderer"];var yt=/\{([^{}]+)\}/g,gt=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g;var vt={__init__:["bpmnRenderer"],bpmnRenderer:["type",ot],textRenderer:["type",dt],pathMap:["type",function(){this.pathMap={EVENT_MESSAGE:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:36,width:36,heightElements:[6,14],widthElements:[10.5,21]},EVENT_SIGNAL:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z",height:36,width:36,heightElements:[18],widthElements:[10,20]},EVENT_ESCALATION:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z",height:36,width:36,heightElements:[20,7],widthElements:[8]},EVENT_CONDITIONAL:{d:"M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z M {e.x2},{e.y3} l {e.x0},0 M {e.x2},{e.y4} l {e.x0},0 M {e.x2},{e.y5} l {e.x0},0 M {e.x2},{e.y6} l {e.x0},0 M {e.x2},{e.y7} l {e.x0},0 M {e.x2},{e.y8} l {e.x0},0 ",height:36,width:36,heightElements:[8.5,14.5,18,11.5,14.5,17.5,20.5,23.5,26.5],widthElements:[10.5,14.5,12.5]},EVENT_LINK:{d:"m {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z",height:36,width:36,heightElements:[4.4375,6.75,7.8125],widthElements:[9.84375,13.5]},EVENT_ERROR:{d:"m {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z",height:36,width:36,heightElements:[.023,8.737,8.151,16.564,10.591,8.714],widthElements:[.085,6.672,6.97,4.273,5.337,6.636]},EVENT_CANCEL_45:{d:"m {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:36,width:36,heightElements:[4.75,8.5],widthElements:[4.75,8.5]},EVENT_COMPENSATION:{d:"m {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z",height:36,width:36,heightElements:[6.5,13,.4,6.1],widthElements:[9,9.3,8.7]},EVENT_TIMER_WH:{d:"M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ",height:36,width:36,heightElements:[10,2],widthElements:[3,7]},EVENT_TIMER_LINE:{d:"M {mx},{my} m {e.x0},{e.y0} l -{e.x1},{e.y1} ",height:36,width:36,heightElements:[10,3],widthElements:[0,0]},EVENT_MULTIPLE:{d:"m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z",height:36,width:36,heightElements:[6.28099,12.56199],widthElements:[3.1405,9.42149,12.56198]},EVENT_PARALLEL_MULTIPLE:{d:"m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} -{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z",height:36,width:36,heightElements:[2.56228,7.68683],widthElements:[2.56228,7.68683]},GATEWAY_EXCLUSIVE:{d:"m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} {e.x4},{e.y1} {e.x2},0 {e.x1},{e.y3} {e.x0},{e.y3} {e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z",height:17.5,width:17.5,heightElements:[8.5,6.5312,-6.5312,-8.5],widthElements:[6.5,-6.5,3,-3,5,-5]},GATEWAY_PARALLEL:{d:"m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:30,width:30,heightElements:[5,12.5],widthElements:[5,12.5]},GATEWAY_EVENT_BASED:{d:"m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z",height:11,width:11,heightElements:[-6,6,12,-12],widthElements:[9,-3,-12]},GATEWAY_COMPLEX:{d:"m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} {e.x2},0 -{e.x0},{e.y1} l {e.x1},{e.y2} {e.x0},-{e.y1} 0,{e.y0} {e.x3},0 0,-{e.y0} {e.x0},{e.y1} {e.x1},-{e.y2} -{e.x0},-{e.y1} {e.x2},0 0,-{e.y3} -{e.x2},0 {e.x0},-{e.y1} -{e.x1},-{e.y2} -{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z",height:17.125,width:17.125,heightElements:[4.875,3.4375,2.125,3],widthElements:[3.4375,2.125,4.875,3]},DATA_OBJECT_PATH:{d:"m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0",height:61,width:51,heightElements:[10,50,60],widthElements:[10,40,50,60]},DATA_OBJECT_COLLECTION_PATH:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},DATA_ARROW:{d:"m 5,9 9,0 0,-3 5,5 -5,5 0,-3 -9,0 z",height:61,width:51,heightElements:[],widthElements:[]},DATA_STORE:{d:"m {mx},{my} l 0,{e.y2} c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 l 0,-{e.y2} c -{e.x0},-{e.y1} -{e.x1},-{e.y1} -{e.x2},0c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0",height:61,width:61,heightElements:[7,10,45],widthElements:[2,58,60]},TEXT_ANNOTATION:{d:"m {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0",height:30,width:10,heightElements:[30],widthElements:[10]},MARKER_SUB_PROCESS:{d:"m{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_PARALLEL:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},MARKER_SEQUENTIAL:{d:"m{mx},{my} m 0,3 l 10,0 m -10,3 l 10,0 m -10,3 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_COMPENSATION:{d:"m {mx},{my} 7,-5 0,10 z m 7.1,-0.3 6.9,-4.7 0,10 -6.9,-4.7 z",height:10,width:21,heightElements:[],widthElements:[]},MARKER_LOOP:{d:"m {mx},{my} c 3.526979,0 6.386161,-2.829858 6.386161,-6.320661 0,-3.490806 -2.859182,-6.320661 -6.386161,-6.320661 -3.526978,0 -6.38616,2.829855 -6.38616,6.320661 0,1.745402 0.714797,3.325567 1.870463,4.469381 0.577834,0.571908 1.265885,1.034728 2.029916,1.35457 l -0.718163,-3.909793 m 0.718163,3.909793 -3.885211,0.802902",height:13.9,width:13.7,heightElements:[],widthElements:[]},MARKER_ADHOC:{d:"m {mx},{my} m 0.84461,2.64411 c 1.05533,-1.23780996 2.64337,-2.07882 4.29653,-1.97997996 2.05163,0.0805 3.85579,1.15803 5.76082,1.79107 1.06385,0.34139996 2.24454,0.1438 3.18759,-0.43767 0.61743,-0.33642 1.2775,-0.64078 1.7542,-1.17511 0,0.56023 0,1.12046 0,1.6807 -0.98706,0.96237996 -2.29792,1.62393996 -3.6918,1.66181996 -1.24459,0.0927 -2.46671,-0.2491 -3.59505,-0.74812 -1.35789,-0.55965 -2.75133,-1.33436996 -4.27027,-1.18121996 -1.37741,0.14601 -2.41842,1.13685996 -3.44288,1.96782996 z",height:4,width:15,heightElements:[],widthElements:[]},TASK_TYPE_SEND:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:14,width:21,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_SCRIPT:{d:"m {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 c -10.969894,7.01868 6.997585,8.66524 -2.968967,14.938 z m -7,-12 l 5,0 m -4.5,3 l 4.5,0 m -3,3 l 5,0m -4,3 l 5,0",height:15,width:12.6,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_USER_1:{d:"m {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 -4.357,-4.62199999 -2.55199998,0 -4.28799998,2.06799999 -4.28799998,4.62199999 0,1.348 0.974,2.562 1.89599998,3.405 -0.52899998,0.187 -5.669,2.097 -5.794,4.7560005 v 6.718 h 17 v -6.718 c 0,-2.2980005 -5.5279996,-4.5950005 -6.0509996,-4.7760005 zm -8,6 l 0,5.5 m 11,0 l 0,-5"},TASK_TYPE_USER_2:{d:"m {mx},{my} m 2.162,1.009 c 0,2.4470005 -2.158,4.4310005 -4.821,4.4310005 -2.66499998,0 -4.822,-1.981 -4.822,-4.4310005 "},TASK_TYPE_USER_3:{d:"m {mx},{my} m -6.9,-3.80 c 0,0 2.25099998,-2.358 4.27399998,-1.177 2.024,1.181 4.221,1.537 4.124,0.965 -0.098,-0.57 -0.117,-3.79099999 -4.191,-4.13599999 -3.57499998,0.001 -4.20799998,3.36699999 -4.20699998,4.34799999 z"},TASK_TYPE_MANUAL:{d:"m {mx},{my} c 0.234,-0.01 5.604,0.008 8.029,0.004 0.808,0 1.271,-0.172 1.417,-0.752 0.227,-0.898 -0.334,-1.314 -1.338,-1.316 -2.467,-0.01 -7.886,-0.004 -8.108,-0.004 -0.014,-0.079 0.016,-0.533 0,-0.61 0.195,-0.042 8.507,0.006 9.616,0.002 0.877,-0.007 1.35,-0.438 1.353,-1.208 0.003,-0.768 -0.479,-1.09 -1.35,-1.091 -2.968,-0.002 -9.619,-0.013 -9.619,-0.013 v -0.591 c 0,0 5.052,-0.016 7.225,-0.016 0.888,-0.002 1.354,-0.416 1.351,-1.193 -0.006,-0.761 -0.492,-1.196 -1.361,-1.196 -3.473,-0.005 -10.86,-0.003 -11.0829995,-0.003 -0.022,-0.047 -0.045,-0.094 -0.069,-0.139 0.3939995,-0.319 2.0409995,-1.626 2.4149995,-2.017 0.469,-0.4870005 0.519,-1.1650005 0.162,-1.6040005 -0.414,-0.511 -0.973,-0.5 -1.48,-0.236 -1.4609995,0.764 -6.5999995,3.6430005 -7.7329995,4.2710005 -0.9,0.499 -1.516,1.253 -1.882,2.19 -0.37000002,0.95 -0.17,2.01 -0.166,2.979 0.004,0.718 -0.27300002,1.345 -0.055,2.063 0.629,2.087 2.425,3.312 4.859,3.318 4.6179995,0.014 9.2379995,-0.139 13.8569995,-0.158 0.755,-0.004 1.171,-0.301 1.182,-1.033 0.012,-0.754 -0.423,-0.969 -1.183,-0.973 -1.778,-0.01 -5.824,-0.004 -6.04,-0.004 10e-4,-0.084 0.003,-0.586 10e-4,-0.67 z"},TASK_TYPE_INSTANTIATING_SEND:{d:"m {mx},{my} l 0,8.4 l 12.6,0 l 0,-8.4 z l 6.3,3.6 l 6.3,-3.6"},TASK_TYPE_SERVICE:{d:"m {mx},{my} v -1.71335 c 0.352326,-0.0705 0.703932,-0.17838 1.047628,-0.32133 0.344416,-0.14465 0.665822,-0.32133 0.966377,-0.52145 l 1.19431,1.18005 1.567487,-1.57688 -1.195028,-1.18014 c 0.403376,-0.61394 0.683079,-1.29908 0.825447,-2.01824 l 1.622133,-0.01 v -2.2196 l -1.636514,0.01 c -0.07333,-0.35153 -0.178319,-0.70024 -0.323564,-1.04372 -0.145244,-0.34406 -0.321407,-0.6644 -0.522735,-0.96217 l 1.131035,-1.13631 -1.583305,-1.56293 -1.129598,1.13589 c -0.614052,-0.40108 -1.302883,-0.68093 -2.022633,-0.82247 l 0.0093,-1.61852 h -2.241173 l 0.0042,1.63124 c -0.353763,0.0736 -0.705369,0.17977 -1.049785,0.32371 -0.344415,0.14437 -0.665102,0.32092 -0.9635006,0.52046 l -1.1698628,-1.15823 -1.5667691,1.5792 1.1684265,1.15669 c -0.4026573,0.61283 -0.68308,1.29797 -0.8247287,2.01713 l -1.6588041,0.003 v 2.22174 l 1.6724648,-0.006 c 0.073327,0.35077 0.1797598,0.70243 0.3242851,1.04472 0.1452428,0.34448 0.3214064,0.6644 0.5227339,0.96066 l -1.1993431,1.19723 1.5840256,1.56011 1.1964668,-1.19348 c 0.6140517,0.40346 1.3028827,0.68232 2.0233517,0.82331 l 7.19e-4,1.69892 h 2.226848 z m 0.221462,-3.9957 c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_SERVICE_FILL:{d:"m {mx},{my} c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_BUSINESS_RULE_HEADER:{d:"m {mx},{my} 0,4 20,0 0,-4 z"},TASK_TYPE_BUSINESS_RULE_MAIN:{d:"m {mx},{my} 0,12 20,0 0,-12 zm 0,8 l 20,0 m -13,-4 l 0,8"},MESSAGE_FLOW_MARKER:{d:"m {mx},{my} m -10.5 ,-7 l 0,14 l 21,0 l 0,-14 z l 10.5,6 l 10.5,-6"}},this.getRawPath=function(e){return this.pathMap[e].d},this.getScaledPath=function(e,t){var n,i,r=this.pathMap[e];t.abspos?(n=t.abspos.x,i=t.abspos.y):(n=t.containerWidth*t.position.mx,i=t.containerHeight*t.position.my);var o={};if(t.position){for(var a=t.containerHeight/r.height*t.yScaleFactor,s=t.containerWidth/r.width*t.xScaleFactor,l=0;l':""}function Rt(e,t,n){return E({id:e.id,type:e.$type,businessObject:e,di:t},n)}function St(e,t,n){var i=e.waypoint;return!i||i.length<2?[_t(t),_t(n)]:i.map((function(e){return{x:e.x,y:e.y}}))}function kt(e,t,n,i){return new Error(e("element {element} referenced by {referenced}#{property} not yet drawn",{element:At(n),referenced:At(t),property:i}))}function Ct(e,t,n,i,r,o){this._eventBus=e,this._canvas=t,this._elementFactory=n,this._elementRegistry=i,this._translate=r,this._textRenderer=o}Ct.$inject=["eventBus","canvas","elementFactory","elementRegistry","translate","textRenderer"],Ct.prototype.add=function(e,t,n){var i,r,o,a,s,l,p,c=this._translate;if(R(t,"bpmndi:BPMNPlane")){var u=R(e,"bpmn:SubProcess")?{id:e.id+"_plane"}:{};i=this._elementFactory.createRoot(Rt(e,t,u)),this._canvas.addRootElement(i)}else if(R(t,"bpmndi:BPMNShape")){var h=!C(e,t),f=function(e){return R(e,"bpmn:Group")}(e);r=n&&(n.hidden||n.collapsed);var m=t.bounds;i=this._elementFactory.createShape(Rt(e,t,{collapsed:h,hidden:r,x:Math.round(m.x),y:Math.round(m.y),width:Math.round(m.width),height:Math.round(m.height),isFrame:f})),R(e,"bpmn:BoundaryEvent")&&this._attachBoundary(e,i),R(e,"bpmn:Lane")&&(o=0),R(e,"bpmn:DataStoreReference")&&(a=n,s=_t(m),l=s.x,p=s.y,l>=a.x&&l<=a.x+a.width&&p>=a.y&&p<=a.y+a.height||(n=this._canvas.findRoot(n))),this._canvas.addShape(i,n,o)}else{if(!R(t,"bpmndi:BPMNEdge"))throw new Error(c("unknown di {di} for element {semantic}",{di:At(t),semantic:At(e)}));var d=this._getSource(e),y=this._getTarget(e);r=n&&(n.hidden||n.collapsed),i=this._elementFactory.createConnection(Rt(e,t,{hidden:r,source:d,target:y,waypoints:St(t,d,y)})),R(e,"bpmn:DataAssociation")&&(n=this._canvas.findRoot(n)),this._canvas.addConnection(i,n,o)}return function(e){return R(e,"bpmn:Event")||R(e,"bpmn:Gateway")||R(e,"bpmn:DataStoreReference")||R(e,"bpmn:DataObjectReference")||R(e,"bpmn:DataInput")||R(e,"bpmn:DataOutput")||R(e,"bpmn:SequenceFlow")||R(e,"bpmn:MessageFlow")||R(e,"bpmn:Group")}(e)&&D(i)&&this.addLabel(e,t,i),this._eventBus.fire("bpmnElement.added",{element:i}),i},Ct.prototype._attachBoundary=function(e,t){var n=this._translate,i=e.attachedToRef;if(!i)throw new Error(n("missing {semantic}#attachedToRef",{semantic:At(e)}));var r=this._elementRegistry.get(i.id),o=r&&r.attachers;if(!r)throw kt(n,e,i,"attachedToRef");t.host=r,o||(r.attachers=o=[]),-1===o.indexOf(t)&&o.push(t)},Ct.prototype.addLabel=function(e,t,n){var i,r,o;return i=O(t,n),(r=D(n))&&(i=this._textRenderer.getExternalLabelBounds(i,r)),o=this._elementFactory.createLabel(Rt(e,t,{id:e.id+"_label",labelTarget:n,type:"label",hidden:n.hidden||!D(n),x:Math.round(i.x),y:Math.round(i.y),width:Math.round(i.width),height:Math.round(i.height)})),this._canvas.addShape(o,n.parent)},Ct.prototype._getConnectedElement=function(e,t){var n,i,r=e.$type,o=this._translate;if(i=e[t+"Ref"],"source"===t&&"bpmn:DataInputAssociation"===r&&(i=i&&i[0]),("source"===t&&"bpmn:DataOutputAssociation"===r||"target"===t&&"bpmn:DataInputAssociation"===r)&&(i=e.$parent),n=i&&this._getElement(i))return n;throw i?kt(o,e,i,t+"Ref"):new Error(o("{semantic}#{side} Ref not specified",{semantic:At(e),side:t}))},Ct.prototype._getSource=function(e){return this._getConnectedElement(e,"source")},Ct.prototype._getTarget=function(e){return this._getConnectedElement(e,"target")},Ct.prototype._getElement=function(e){return this._elementRegistry.get(e.id)};var Mt={__depends__:[vt,{__depends__:[xt],bpmnImporter:["type",Ct]}]};function Pt(e){return e.originalEvent||e.srcEvent}function Nt(e,t){return(Pt(e)||e).button===t}function Tt(e){return Nt(e,0)}function Ot(e){var t=Pt(e)||e;return!!Tt(e)&&(/mac/i.test(navigator.platform)?t.metaKey:t.ctrlKey)}function Dt(e){return!0}function Bt(e){return Tt(e)||function(e){return Nt(e,1)}(e)}function Lt(e,t,n){var i=this;function r(n,i,r){var o,a;(function(e,t){var n=l[e]||Tt;return!n(t)})(n,i)||(r?a=t.getGraphics(r):(o=i.delegateTarget||i.target)&&(a=o,r=t.get(a)),a&&r&&!1===e.fire(n,{element:r,gfx:a,originalEvent:i})&&(i.stopPropagation(),i.preventDefault()))}var o={};function a(e){return o[e]}var s={click:"element.click",contextmenu:"element.contextmenu",dblclick:"element.dblclick",mousedown:"element.mousedown",mousemove:"element.mousemove",mouseover:"element.hover",mouseout:"element.out",mouseup:"element.mouseup"},l={"element.contextmenu":Dt,"element.mousedown":Bt,"element.mouseup":Bt,"element.click":Bt,"element.dblclick":Bt};var p="svg, .djs-element";function c(e,t,n,i){var a=o[n]=function(e){r(n,e)};i&&(l[n]=i),a.$delegate=Ke.bind(e,p,t,a)}function u(e,t,n){var i=a(n);i&&Ke.unbind(e,t,i.$delegate)}e.on("canvas.destroy",(function(e){var t;t=e.svg,f(s,(function(e,n){u(t,n,e)}))})),e.on("canvas.init",(function(e){var t;t=e.svg,f(s,(function(e,n){c(t,n,e)}))})),e.on(["shape.added","connection.added"],(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.createHit",{element:n,gfx:i})})),e.on(["shape.changed","connection.changed"],500,(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.updateHit",{element:n,gfx:i})})),e.on("interactionEvents.createHit",500,(function(e){var t=e.element,n=e.gfx;i.createDefaultHit(t,n)})),e.on("interactionEvents.updateHit",(function(e){var t=e.element,n=e.gfx;i.updateDefaultHit(t,n)}));var h=y("djs-hit djs-hit-stroke"),m=y("djs-hit djs-hit-click-stroke"),d={all:y("djs-hit djs-hit-all"),"click-stroke":m,stroke:h,"no-move":y("djs-hit djs-hit-no-move")};function y(e,t){return t=E({stroke:"white",strokeWidth:15},t||{}),n.cls(e,["no-fill","no-border"],t)}function g(e,t){var n=d[t];if(!n)throw new Error("invalid hit type <"+t+">");return V(e,n),e}function v(e,t){L(e,t)}this.removeHits=function(e){var t;f((t=".djs-hit",(e||document).querySelectorAll(t)),$)},this.createDefaultHit=function(e,t){var n,i=e.waypoints,r=e.isFrame;return i?this.createWaypointsHit(t,i):(n=r?"stroke":"all",this.createBoxHit(t,n,{width:e.width,height:e.height}))},this.createWaypointsHit=function(e,t){var n=me(t);return g(n,"stroke"),v(e,n),n},this.createBoxHit=function(e,t,n){n=E({x:0,y:0},n);var i=Y("rect");return g(i,t),V(i,n),v(e,i),i},this.updateDefaultHit=function(e,t){var n=Ze(".djs-hit",t);if(n)return e.waypoints?de(n,e.waypoints):V(n,{width:e.width,height:e.height}),n},this.fire=r,this.triggerMouseEvent=function(e,t,n){var i=s[e];if(!i)throw new Error("unmapped DOM event name <"+e+">");return r(i,t,n)},this.mouseHandler=a,this.registerEvent=c,this.unregisterEvent=u}Lt.$inject=["eventBus","elementRegistry","styles"];var It={__init__:["interactionEvents"],interactionEvents:["type",Lt]};function Ft(e,t){var n,i,r,a;return t=!!t,o(e)||(e=[e]),f(e,(function(e){var o=e;e.waypoints&&!t&&(o=Ft(e.waypoints,!0));var s=o.x,l=o.y,p=o.height||0,c=o.width||0;(sr||void 0===r)&&(r=s+c),(l+p>a||void 0===a)&&(a=l+p)})),{x:n,y:i,height:a-i,width:r-n}}function jt(e){return"waypoints"in e?"connection":"x"in e?"shape":"root"}function Vt(e){return!(!e||!e.isFrame)}function Wt(e,t){this._eventBus=e,this.offset=5;var n=t.cls("djs-outline",["no-fill"]),i=this;function r(e){var t=Y("rect");return V(t,E({x:0,y:0,rx:4,width:100,height:100},n)),t}e.on(["shape.added","shape.changed"],500,(function(e){var t=e.element,n=e.gfx,o=Ze(".djs-outline",n);o||L(n,o=i.getOutline(t)||r()),i.updateShapeOutline(o,t)})),e.on(["connection.added","connection.changed"],(function(e){var t=e.element,n=e.gfx,o=Ze(".djs-outline",n);o||L(n,o=r()),i.updateConnectionOutline(o,t)}))}Wt.prototype.updateShapeOutline=function(e,t){var n=!1,i=this._getProviders();i.length&&f(i,(function(i){n=n||i.updateOutline(t,e)})),n||V(e,{x:-this.offset,y:-this.offset,width:t.width+2*this.offset,height:t.height+2*this.offset})},Wt.prototype.updateConnectionOutline=function(e,t){var n=Ft(t);V(e,{x:n.x-this.offset,y:n.y-this.offset,width:n.width+2*this.offset,height:n.height+2*this.offset})},Wt.prototype.registerProvider=function(e,t){t||(t=e,e=1e3),this._eventBus.on("outline.getProviders",e,(function(e){e.providers.push(t)}))},Wt.prototype._getProviders=function(){var e=this._eventBus.createEvent({type:"outline.getProviders",providers:[]});return this._eventBus.fire(e),e.providers},Wt.prototype.getOutline=function(e){var t;return f(this._getProviders(),(function(n){l(n.getOutline)&&(t=t||n.getOutline(e))})),t},Wt.$inject=["eventBus","styles","elementRegistry"];var zt={__init__:["outline"],outline:["type",Wt]};function Gt(e,t){this._eventBus=e,this._canvas=t,this._selectedElements=[];var n=this;e.on(["shape.remove","connection.remove"],(function(e){var t=e.element;n.deselect(t)})),e.on(["diagram.clear","root.set"],(function(e){n.select(null)}))}Gt.$inject=["eventBus","canvas"],Gt.prototype.deselect=function(e){var t=this._selectedElements,n=t.indexOf(e);if(-1!==n){var i=t.slice();t.splice(n,1),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:t})}},Gt.prototype.get=function(){return this._selectedElements},Gt.prototype.isSelected=function(e){return-1!==this._selectedElements.indexOf(e)},Gt.prototype.select=function(e,t){var n=this._selectedElements,i=n.slice();o(e)||(e=e?[e]:[]);var r=this._canvas,a=r.getRootElement();e=e.filter((function(e){var t=r.findRoot(e);return a===t})),t?f(e,(function(e){-1===n.indexOf(e)&&n.push(e)})):this._selectedElements=n=e.slice(),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:n})};var $t="hover",Ht="selected";function Kt(e,t,n){this._canvas=e;var i=this;function r(t,n){e.addMarker(t,n)}function o(t,n){e.removeMarker(t,n)}this._multiSelectionBox=null,t.on("element.hover",(function(e){r(e.element,$t)})),t.on("element.out",(function(e){o(e.element,$t)})),t.on("selection.changed",(function(e){var t=e.oldSelection,n=e.newSelection;f(t,(function(e){-1===n.indexOf(e)&&o(e,Ht)})),f(n,(function(e){-1===t.indexOf(e)&&r(e,Ht)})),i._updateSelectionOutline(n)})),t.on("element.changed",(function(e){n.isSelected(e.element)&&i._updateSelectionOutline(n.get())}))}function Ut(e,t,n,i){e.on("create.end",500,(function(e){var n=e.context,i=n.canExecute,r=n.elements,a=(n.hints||{}).autoSelect;if(i){if(!1===a)return;o(a)?t.select(a):t.select(r.filter(qt))}})),e.on("connect.end",500,(function(e){var n=e.context.connection;n&&t.select(n)})),e.on("shape.move.end",500,(function(e){var n=e.previousSelection||[],r=i.get(e.context.shape.id);u(n,(function(e){return r.id===e.id}))||t.select(r)})),e.on("element.click",(function(e){if(Tt(e)){var i=e.element;i===n.getRootElement()&&(i=null);var r=t.isSelected(i),o=t.get().length>1,a=Ot(e)||function(e){var t=Pt(e)||e;return Tt(e)&&t.shiftKey}(e);if(r&&o)return a?t.deselect(i):t.select(i);r?t.deselect(i):t.select(i,a)}}))}function qt(e){return!e.hidden}Kt.$inject=["canvas","eventBus","selection"],Kt.prototype._updateSelectionOutline=function(e){var t=this._canvas.getLayer("selectionOutline");H(t);var n=e.length>1;if(z(this._canvas.getContainer())[n?"add":"remove"]("djs-multi-select"),n){var i=function(e){return{x:e.x-6,y:e.y-6,width:e.width+12,height:e.height+12}}(Ft(e)),r=Y("rect");V(r,E({rx:3},i)),z(r).add("djs-selection-outline"),L(t,r)}},Ut.$inject=["eventBus","selection","canvas","elementRegistry"];var Yt={__init__:["selectionVisuals","selectionBehavior"],__depends__:[It,zt],selection:["type",Gt],selectionVisuals:["type",Kt],selectionBehavior:["type",Ut]};function Xt(e){this._counter=0,this._prefix=(e?e+"-":"")+Math.floor(1e9*Math.random())+"-"}Xt.prototype.next=function(){return this._prefix+ ++this._counter};var Zt=new Xt("ov");function Jt(e,t,n,i){var r,o;this._eventBus=t,this._canvas=n,this._elementRegistry=i,this._ids=Zt,this._overlayDefaults=E({show:null,scale:!0},e&&e.defaults),this._overlays={},this._overlayContainers=[],this._overlayRoot=(r=n.getContainer(),Te(o=Xe('
'),{position:"absolute",width:0,height:0}),r.insertBefore(o,r.firstChild),o),this._init()}function Qt(e,t,n){Te(e,{left:t+"px",top:n+"px"})}function en(e,t){e.style.display=!1===t?"none":""}function tn(e,t){e.style["transform-origin"]="top left",["","-ms-","-webkit-"].forEach((function(n){e.style[n+"transform"]=t}))}Jt.$inject=["config.overlays","eventBus","canvas","elementRegistry"],Jt.prototype.get=function(e){if(p(e)&&(e={id:e}),p(e.element)&&(e.element=this._elementRegistry.get(e.element)),e.element){var t=this._getOverlayContainer(e.element,!0);return t?e.type?h(t.overlays,g({type:e.type})):t.overlays.slice():[]}return e.type?h(this._overlays,g({type:e.type})):e.id?this._overlays[e.id]:null},Jt.prototype.add=function(e,t,n){if(a(t)&&(n=t,t=null),e.id||(e=this._elementRegistry.get(e)),!n.position)throw new Error("must specifiy overlay position");if(!n.html)throw new Error("must specifiy overlay html");if(!e)throw new Error("invalid element specified");var i=this._ids.next();return n=E({},this._overlayDefaults,n,{id:i,type:t,element:e,html:n.html}),this._addOverlay(n),i},Jt.prototype.remove=function(e){var t=this.get(e)||[];o(t)||(t=[t]);var n=this;f(t,(function(e){var t=n._getOverlayContainer(e.element,!0);if(e&&(Je(e.html),Je(e.htmlContainer),delete e.htmlContainer,delete e.element,delete n._overlays[e.id]),t){var i=t.overlays.indexOf(e);-1!==i&&t.overlays.splice(i,1)}}))},Jt.prototype.isShown=function(){return"none"!==this._overlayRoot.style.display},Jt.prototype.show=function(){en(this._overlayRoot)},Jt.prototype.hide=function(){en(this._overlayRoot,!1)},Jt.prototype.clear=function(){this._overlays={},this._overlayContainers=[],Le(this._overlayRoot)},Jt.prototype._updateOverlayContainer=function(e){var t=e.element,n=e.html,i=t.x,r=t.y;if(t.waypoints){var o=Ft(t);i=o.x,r=o.y}Qt(n,i,r),function(e,t,n){2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):e.setAttribute(t,n)}(e.html,"data-container-id",t.id)},Jt.prototype._updateOverlay=function(e){var t,n,i=e.position,r=e.htmlContainer,o=e.element,a=i.left,s=i.top;void 0!==i.right&&(t=o.waypoints?Ft(o).width:o.width,a=-1*i.right+t);void 0!==i.bottom&&(n=o.waypoints?Ft(o).height:o.height,s=-1*i.bottom+n);Qt(r,a||0,s||0),this._updateOverlayVisibilty(e,this._canvas.viewbox())},Jt.prototype._createOverlayContainer=function(e){var t=Xe('
');Te(t,{position:"absolute"}),this._overlayRoot.appendChild(t);var n={html:t,element:e,overlays:[]};return this._updateOverlayContainer(n),this._overlayContainers.push(n),n},Jt.prototype._updateRoot=function(e){var t=e.scale||1,n="matrix("+[t,0,0,t,-1*e.x*t,-1*e.y*t].join(",")+")";tn(this._overlayRoot,n)},Jt.prototype._getOverlayContainer=function(e,t){var n=u(this._overlayContainers,(function(t){return t.element===e}));return n||t?n:this._createOverlayContainer(e)},Jt.prototype._addOverlay=function(e){var t,n,i=e.id,r=e.element,o=e.html;o.get&&o.constructor.prototype.jquery&&(o=o.get(0)),p(o)&&(o=Xe(o)),n=this._getOverlayContainer(r),Te(t=Xe('
'),{position:"absolute"}),t.appendChild(o),e.type&&De(t).add("djs-overlay-"+e.type),en(t,this._canvas.findRoot(r)===this._canvas.getRootElement()),e.htmlContainer=t,n.overlays.push(e),n.html.appendChild(t),this._overlays[i]=e,this._updateOverlay(e),this._updateOverlayVisibilty(e,this._canvas.viewbox())},Jt.prototype._updateOverlayVisibilty=function(e,t){var n=e.show,i=this._canvas.findRoot(e.element),o=n&&n.minZoom,a=n&&n.maxZoom,s=e.htmlContainer,l=!0;(i!==this._canvas.getRootElement()||n&&(r(o)&&o>t.scale||r(a)&&ai&&(o=(1/t.scale||1)*i)),r(o)&&(l="scale("+o+","+o+")"),tn(s,l)},Jt.prototype._updateOverlaysVisibilty=function(e){var t=this;f(this._overlays,(function(n){t._updateOverlayVisibilty(n,e)}))},Jt.prototype._init=function(){var e=this._eventBus,t=this;e.on("canvas.viewbox.changing",(function(e){t.hide()})),e.on("canvas.viewbox.changed",(function(e){var n;n=e.viewbox,t._updateRoot(n),t._updateOverlaysVisibilty(n),t.show()})),e.on(["shape.remove","connection.remove"],(function(e){var n=e.element;f(t.get({element:n}),(function(e){t.remove(e.id)}));var i=t._getOverlayContainer(n);if(i){Je(i.html);var r=t._overlayContainers.indexOf(i);-1!==r&&t._overlayContainers.splice(r,1)}})),e.on("element.changed",500,(function(e){var n=e.element,i=t._getOverlayContainer(n,!0);i&&(f(i.overlays,(function(e){t._updateOverlay(e)})),t._updateOverlayContainer(i))})),e.on("element.marker.update",(function(e){var n=t._getOverlayContainer(e.element,!0);n&&De(n.html)[e.add?"add":"remove"](e.marker)})),e.on("root.set",(function(){t._updateOverlaysVisibilty(t._canvas.viewbox())})),e.on("diagram.clear",this.clear,this)};var nn={__init__:["overlays"],overlays:["type",Jt]};function rn(e,t,n,i){e.on("element.changed",(function(i){var r=i.element;(r.parent||r===t.getRootElement())&&(i.gfx=n.getGraphics(r)),i.gfx&&e.fire(jt(r)+".changed",i)})),e.on("elements.changed",(function(t){var n=t.elements;n.forEach((function(t){e.fire("element.changed",{element:t})})),i.updateContainments(n)})),e.on("shape.changed",(function(e){i.update("shape",e.element,e.gfx)})),e.on("connection.changed",(function(e){i.update("connection",e.element,e.gfx)}))}rn.$inject=["eventBus","canvas","elementRegistry","graphicsFactory"];var on={__init__:["changeSupport"],changeSupport:["type",rn]};function an(e){this._eventBus=e}function sn(e){return function(t,n,i,r,o){(l(t)||s(t))&&(o=r,r=i,i=n,n=t,t=null),this.on(t,e,n,i,r,o)}}function ln(e,t){t.invoke(an,this),this.executed((function(t){var n=t.context;n.rootElement?e.setRootElement(n.rootElement):n.rootElement=e.getRootElement()})),this.revert((function(t){var n=t.context;n.rootElement&&e.setRootElement(n.rootElement)}))}an.$inject=["eventBus"],an.prototype.on=function(e,t,n,i,r,p){if((l(t)||s(t))&&(p=r,r=i,i=n,n=t,t=null),l(n)&&(p=r,r=i,i=n,n=1e3),a(r)&&(p=r,r=!1),!l(i))throw new Error("handlerFn must be a function");o(e)||(e=[e]);var c=this._eventBus;f(e,(function(e){var o=["commandStack",e,t].filter((function(e){return e})).join(".");c.on(o,n,r?function(e,t){return function(n){return e.call(t||null,n.context,n.command,n)}}(i,p):i,p)}))},an.prototype.canExecute=sn("canExecute"),an.prototype.preExecute=sn("preExecute"),an.prototype.preExecuted=sn("preExecuted"),an.prototype.execute=sn("execute"),an.prototype.executed=sn("executed"),an.prototype.postExecute=sn("postExecute"),an.prototype.postExecuted=sn("postExecuted"),an.prototype.revert=sn("revert"),an.prototype.reverted=sn("reverted"),e(ln,an),ln.$inject=["canvas","injector"];var pn={__init__:["rootElementsBehavior"],rootElementsBehavior:["type",ln]},cn={"&":"&","<":"<",">":">",'"':""","'":"'"};var un="_plane";function hn(e){var t=e.id;return R(e,"bpmn:SubProcess")?function(e){return e+un}(t):t}function fn(e,t,n){var i=Xe('
    '),r=n.getContainer(),o=De(r);r.appendChild(i);var a=[];function s(e){e&&(a=function(e){for(var t=S(e),n=[],i=t;i;i=i.$parent)(R(i,"bpmn:SubProcess")||R(i,"bpmn:Process"))&&n.push(i);return n.reverse()}(e));var r=a.map((function(e){var i,r=(i=""+(i=e.name||e.id))&&i.replace(/[&<>"']/g,(function(e){return cn[e]})),o=Xe('
  • '+r+"
  • "),a=n.findRoot(hn(e))||n.findRoot(e.id);if(!a&&R(e,"bpmn:Process")){var s=t.find((function(t){var n=S(t);return n&&n.get("processRef")&&n.get("processRef")===e}));a=n.findRoot(s.id)}return o.addEventListener("click",(function(){n.setRootElement(a)})),o}));i.innerHTML="";var s=r.length>1;o.toggle("bjs-breadcrumbs-shown",s),r.forEach((function(e){i.appendChild(e)}))}e.on("element.changed",(function(e){var t=S(e.element);u(a,(function(e){return e===t}))&&s()})),e.on("root.set",(function(e){s(e.element)}))}function mn(e,t){var n=null,i=new dn;e.on("root.set",(function(e){var r=e.element,o=t.viewbox(),a=i.get(r);if(i.set(n,{x:o.x,y:o.y,zoom:o.scale}),n=r,!R(r,"bpmn:Collaboration")||a){a=a||{x:0,y:0,zoom:1};var s=(o.x-a.x)*o.scale,l=(o.y-a.y)*o.scale;0===s&&0===l||t.scroll({dx:s,dy:l}),a.zoom!==o.scale&&t.zoom(a.zoom,{x:0,y:0})}})),e.on("diagram.clear",(function(){i.clear(),n=null}))}function dn(){this._entries=[],this.set=function(e,t){var n=!1;for(var i in this._entries)if(this._entries[i][0]===e){this._entries[i][1]=t,n=!0;break}n||this._entries.push([e,t])},this.get=function(e){for(var t in this._entries)if(this._entries[t][0]===e)return this._entries[t][1];return null},this.clear=function(){this._entries.length=0},this.remove=function(e){var t=-1;for(var n in this._entries)if(this._entries[n][0]===e){t=n;break}-1!==t&&this._entries.splice(t,1)}}fn.$inject=["eventBus","elementRegistry","canvas"],mn.$inject=["eventBus","canvas"];var yn=180,gn=160;function vn(e,t){this._eventBus=e,this._moddle=t;var n=this;e.on("import.render.start",1500,(function(e,t){n._handleImport(t.definitions)}))}function xn(e){return R(e,"bpmndi:BPMNDiagram")?e:xn(e.$parent)}vn.prototype._handleImport=function(e){if(e.diagrams){var t=this;this._definitions=e,this._processToDiagramMap={},e.diagrams.forEach((function(e){e.plane&&e.plane.bpmnElement&&(t._processToDiagramMap[e.plane.bpmnElement.id]=e)}));var n=[];e.diagrams.forEach((function(e){var i=t._createNewDiagrams(e.plane);Array.prototype.push.apply(n,i)})),n.forEach((function(e){t._movePlaneElementsToOrigin(e.plane)}))}},vn.prototype._createNewDiagrams=function(e){var t=this,n=[],i=[];e.get("planeElement").forEach((function(t){var r=t.bpmnElement;if(r){var o=r.$parent;R(r,"bpmn:SubProcess")&&!t.isExpanded&&n.push(r),function(e,t){var n=e.$parent;if(!R(n,"bpmn:SubProcess")||n===t.bpmnElement)return!1;if(function(e,t){return y(t,(function(t){return R(e,t)}))}(e,["bpmn:DataInputAssociation","bpmn:DataOutputAssociation"]))return!1;return!0}(r,e)&&i.push({diElement:t,parent:o})}}));var r=[];return n.forEach((function(e){if(!t._processToDiagramMap[e.id]){var n=t._createDiagram(e);t._processToDiagramMap[e.id]=n,r.push(n)}})),i.forEach((function(e){for(var i=e.diElement,r=e.parent;r&&-1===n.indexOf(r);)r=r.$parent;if(r){var o=t._processToDiagramMap[r.id];t._moveToDiPlane(i,o.plane)}})),r},vn.prototype._movePlaneElementsToOrigin=function(e){var t=e.get("planeElement"),n=function(e){var t={top:1/0,right:-1/0,bottom:-1/0,left:1/0};return e.planeElement.forEach((function(e){if(e.bounds){var n=wt(e.bounds);t.top=Math.min(n.top,t.top),t.left=Math.min(n.left,t.left)}})),function(e){return{x:e.left,y:e.top,width:e.right-e.left,height:e.bottom-e.top}}(t)}(e),i=n.x-yn,r=n.y-gn;t.forEach((function(e){e.waypoint?e.waypoint.forEach((function(e){e.x=e.x-i,e.y=e.y-r})):e.bounds&&(e.bounds.x=e.bounds.x-i,e.bounds.y=e.bounds.y-r)}))},vn.prototype._moveToDiPlane=function(e,t){var n=xn(e).plane.get("planeElement");n.splice(n.indexOf(e),1),t.get("planeElement").push(e)},vn.prototype._createDiagram=function(e){var t=this._moddle.create("bpmndi:BPMNPlane",{bpmnElement:e}),n=this._moddle.create("bpmndi:BPMNDiagram",{plane:t});return t.$parent=n,t.bpmnElement=e,n.$parent=this._definitions,this._definitions.diagrams.push(n),n},vn.$inject=["eventBus","moddle"];var wn=250;function bn(e,t,n,i){an.call(this,t),this._canvas=e,this._eventBus=t,this._elementRegistry=n,this._overlays=i;var r=this;this.executed("shape.toggleCollapse",wn,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.reverted("shape.toggleCollapse",wn,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.executed(["shape.create","shape.move","shape.delete"],wn,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),this.reverted(["shape.create","shape.move","shape.delete"],wn,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),t.on("import.render.complete",(function(){n.filter((function(e){return r._canDrillDown(e)})).map((function(e){r._addOverlay(e)}))}))}e(bn,an),bn.prototype._updateDrilldownOverlay=function(e){var t=this._canvas;if(e){var n=t.findRoot(e);n&&this._updateOverlayVisibility(n)}},bn.prototype._canDrillDown=function(e){var t=this._canvas;return R(e,"bpmn:SubProcess")&&t.findRoot(hn(e))},bn.prototype._updateOverlayVisibility=function(e){var t=this._overlays,n=S(e),i=t.get({element:n.id,type:"drilldown"})[0];if(i){var r=n&&n.get("flowElements")&&n.get("flowElements").length;De(i.html).toggle("bjs-drilldown-empty",!r)}},bn.prototype._addOverlay=function(e){var t=this._canvas,n=this._overlays;n.get({element:e,type:"drilldown"}).length&&this._removeOverlay(e);var i=Xe('');i.addEventListener("click",(function(){t.setRootElement(t.findRoot(hn(e)))})),n.add(e,"drilldown",{position:{bottom:-7,right:-8},html:i}),this._updateOverlayVisibility(e)},bn.prototype._removeOverlay=function(e){this._overlays.remove({element:e,type:"drilldown"})},bn.$inject=["canvas","eventBus","elementRegistry","overlays"];var En={__depends__:[nn,on,pn],__init__:["drilldownBreadcrumbs","drilldownOverlayBehavior","drilldownCentering","subprocessCompatibility"],drilldownBreadcrumbs:["type",fn],drilldownCentering:["type",mn],drilldownOverlayBehavior:["type",bn],subprocessCompatibility:["type",vn]};const _n=/^class[ {]/;function An(e){return Array.isArray(e)}function Rn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Sn(...e){1===e.length&&An(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const kn=/constructor\s*[^(]*\(\s*([^)]*)\)/m,Cn=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,Mn=/\/\*([^*]*)\*\//m;function Pn(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return _n.test(e.toString())}(e)?kn:Cn);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map((e=>{const t=e.match(Mn);return(t&&t[1]||e).trim()}))||[]}function Nn(e,t){t=t||{get:function(e,t){if(n.push(e),!1===t)return null;throw a(`No provider for "${e}"!`)}};const n=[],i=this._providers=Object.create(t._providers||null),r=this._instances=Object.create(null),o=r.injector=this,a=function(e){const t=n.join(" -> ");return n.length=0,new Error(t?`${e} (Resolving: ${t})`:e)};function s(e,o){if(!i[e]&&-1!==e.indexOf(".")){const t=e.split(".");let n=s(t.shift());for(;t.length;)n=n[t.shift()];return n}if(Rn(r,e))return r[e];if(Rn(i,e)){if(-1!==n.indexOf(e))throw n.push(e),a("Cannot resolve circular dependency!");return n.push(e),r[e]=i[e][0](i[e][1]),n.pop(),r[e]}return t.get(e,o)}function l(e,t){if(void 0===t&&(t={}),"function"!=typeof e){if(!An(e))throw a(`Cannot invoke "${e}". Expected a function!`);e=Sn(e.slice())}return{fn:e,dependencies:(e.$inject||Pn(e)).map((e=>Rn(t,e)?t[e]:s(e)))}}function p(e){const{fn:t,dependencies:n}=l(e);return new(Function.prototype.bind.apply(t,[null].concat(n)))}function c(e,t,n){const{fn:i,dependencies:r}=l(e,n);return i.apply(t,r)}function u(e){return Sn((t=>e.get(t)))}function h(e,t){if(t&&t.length){const n=Object.create(null),r=Object.create(null),o=[],a=[],s=[];let l,p,c,h;for(let e in i)l=i[e],-1!==t.indexOf(e)&&("private"===l[2]?(p=o.indexOf(l[3]),-1===p?(c=l[3].createChild([],t),h=u(c),o.push(l[3]),a.push(c),s.push(h),n[e]=[h,e,"private",c]):n[e]=[s[p],e,"private",a[p]]):n[e]=[l[2],l[1]],r[e]=!0),"factory"!==l[2]&&"type"!==l[2]||!l[1].$scope||t.forEach((t=>{-1!==l[1].$scope.indexOf(t)&&(n[e]=[l[2],l[1]],r[t]=!0)}));t.forEach((e=>{if(!r[e])throw new Error('No provider for "'+e+'". Cannot use provider from the parent!')})),e.unshift(n)}return new Nn(e,o)}const f={factory:c,type:p,value:function(e){return e}};function m(e,t){const n=e.__init__||[];return function(){n.forEach((e=>{"string"==typeof e?t.get(e):t.invoke(e)}))}}function d(e){const t=e.__exports__;if(t){const n=e.__modules__,r=Object.keys(e).reduce(((t,n)=>("__exports__"!==n&&"__modules__"!==n&&"__init__"!==n&&"__depends__"!==n&&(t[n]=e[n]),t)),Object.create(null)),o=h((n||[]).concat(r)),a=Sn((function(e){return o.get(e)}));t.forEach((function(e){i[e]=[a,e,"private",o]}));const s=(e.__init__||[]).slice();return s.unshift((function(){o.init()})),m(e=Object.assign({},e,{__init__:s}),o)}return Object.keys(e).forEach((function(t){if("__init__"===t||"__depends__"===t)return;if("private"===e[t][2])return void(i[t]=e[t]);const n=e[t][0],r=e[t][1];i[t]=[f[n],Tn(n,r),n]})),m(e,o)}function y(e,t){return-1!==e.indexOf(t)||-1!==(e=(t.__depends__||[]).reduce(y,e)).indexOf(t)?e:e.concat(t)}this.get=s,this.invoke=c,this.instantiate=p,this.createChild=h,this.init=function(e){const t=e.reduce(y,[]).map(d);let n=!1;return function(){n||(n=!0,t.forEach((e=>e())))}}(e)}function Tn(e,t){return"value"!==e&&An(t)&&(t=Sn(t.slice())),t}function On(e,t){A.call(this,e,1),this.CONNECTION_STYLE=t.style(["no-fill"],{strokeWidth:5,stroke:"fuchsia"}),this.SHAPE_STYLE=t.style({fill:"white",stroke:"fuchsia",strokeWidth:2}),this.FRAME_STYLE=t.style(["no-fill"],{stroke:"fuchsia",strokeDasharray:4,strokeWidth:2})}e(On,A),On.prototype.canRender=function(){return!0},On.prototype.drawShape=function(e,t,n){var i=Y("rect");return V(i,{x:0,y:0,width:t.width||0,height:t.height||0}),Vt(t)?V(i,E({},this.FRAME_STYLE,n||{})):V(i,E({},this.SHAPE_STYLE,n||{})),L(e,i),i},On.prototype.drawConnection=function(e,t,n){var i=me(t.waypoints,E({},this.CONNECTION_STYLE,n||{}));return L(e,i),i},On.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return pe([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},On.prototype.getConnectionPath=function(e){var t,n,i=e.waypoints,r=[];for(t=0;n=i[t];t++)n=n.original||n,r.push([0===t?"M":"L",n.x,n.y]);return pe(r)},On.$inject=["eventBus","styles"];var Dn={__init__:["defaultRenderer"],defaultRenderer:["type",On],styles:["type",function(){var e={"no-fill":{fill:"none"},"no-border":{strokeOpacity:0},"no-events":{pointerEvents:"none"}},t=this;this.cls=function(e,t,n){return E(this.style(t,n),{class:e})},this.style=function(t,n){o(t)||n||(n=t,t=[]);var i=m(t,(function(t,n){return E(t,e[n]||{})}),{});return n?E(i,n):i},this.computeStyle=function(e,n,i){return o(n)||(i=n,n=[]),t.style(n||[],E({},i,e||{}))}}]};function Bn(e,t){return Math.round(e*t)/t}function Ln(e){return s(e)?e+"px":e}function In(e,t,n){const i=Y("g");z(i).add(t);const r=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[r]||null),i}const Fn={shape:["x","y","width","height"],connection:["waypoints"]};function jn(e,t,n,i){this._eventBus=t,this._elementRegistry=i,this._graphicsFactory=n,this._rootsIdx=0,this._layers={},this._planes=[],this._rootElement=null,this._init(e||{})}function Vn(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}jn.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],jn.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=E({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),Te(n,{position:"relative",overflow:"hidden",width:Ln(e.width),height:Ln(e.height)}),t.appendChild(n),n}(e),i=this._svg=Y("svg");V(i,{width:"100%",height:"100%"}),L(n,i);const r=this._viewport=In(i,"viewport");e.deferUpdate&&(this._viewboxChanged=function(e,t){let n,i,r,o;function a(n){let a=Date.now(),p=n?0:o+t-a;if(p>0)return s(p);e.apply(r,i),l()}function s(e){n=setTimeout(a,e)}function l(){n&&clearTimeout(n),n=o=i=r=void 0}function p(...e){o=Date.now(),i=e,r=this,n||s(t)}return p.flush=function(){n&&a(!0),l()},p.cancel=l,p}(b(this._viewboxChanged,this),300)),t.on("diagram.init",(()=>{t.fire("canvas.init",{svg:i,viewport:r})})),t.on(["shape.added","connection.added","shape.removed","connection.removed","elements.changed","root.set"],(()=>{delete this._cachedViewbox})),t.on("diagram.destroy",500,this._destroy,this),t.on("diagram.clear",500,this._clear,this)},jn.prototype._destroy=function(){this._eventBus.fire("canvas.destroy",{svg:this._svg,viewport:this._viewport});const e=this._container.parentNode;e&&e.removeChild(this._container),delete this._svg,delete this._container,delete this._layers,delete this._planes,delete this._rootElement,delete this._viewport},jn.prototype._clear=function(){this._elementRegistry.getAll().forEach((e=>{const t=jt(e);"root"===t?this.removeRootElement(e):this._removeElement(e,t)})),this._planes=[],this._rootElement=null,delete this._cachedViewbox},jn.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},jn.prototype.getLayer=function(e,t){if(!e)throw new Error("must specify a name");let n=this._layers[e];if(n||(n=this._layers[e]=this._createLayer(e,t)),void 0!==t&&n.index!==t)throw new Error("layer <"+e+"> already created at index <"+t+">");return n.group},jn.prototype._getChildIndex=function(e){return m(this._layers,(function(t,n){return n.visible&&e>=n.index&&t++,t}),0)},jn.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:In(this._viewport,"layer-"+e,n),index:t,visible:!0}},jn.prototype.showLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=this._viewport,i=t.group,r=t.index;if(t.visible)return i;const o=this._getChildIndex(r);return n.insertBefore(i,n.childNodes[o]||null),t.visible=!0,i},jn.prototype.hideLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=t.group;return t.visible?($(n),t.visible=!1,n):n},jn.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],$(t.group))},jn.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},jn.prototype.findRoot=function(e){if("string"==typeof e&&(e=this._elementRegistry.get(e)),!e)return;const t=this._findPlaneForRoot(function(e){for(;e.parent;)e=e.parent;return e}(e))||{};return t.rootElement},jn.prototype.getRootElements=function(){return this._planes.map((function(e){return e.rootElement}))},jn.prototype._findPlaneForRoot=function(e){return u(this._planes,(function(t){return t.rootElement===e}))},jn.prototype.getContainer=function(){return this._container},jn.prototype._updateMarker=function(e,t,n){let i;e.id||(e=this._elementRegistry.get(e)),i=this._elementRegistry._elements[e.id],i&&(f([i.gfx,i.secondaryGfx],(function(e){e&&(n?z(e).add(t):z(e).remove(t))})),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},jn.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},jn.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},jn.prototype.hasMarker=function(e,t){e.id||(e=this._elementRegistry.get(e));return z(this.getGraphics(e)).has(t)},jn.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},jn.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},jn.prototype.addRootElement=function(e){const t=this._rootsIdx++;e||(e={id:"__implicitroot_"+t,children:[],isImplicit:!0});const n=e.layer="root-"+t;this._ensureValid("root",e);const i=this.getLayer(n,0);return this.hideLayer(n),this._addRoot(e,i),this._planes.push({rootElement:e,layer:i}),e},jn.prototype.removeRootElement=function(e){"string"==typeof e&&(e=this._elementRegistry.get(e));if(this._findPlaneForRoot(e))return this._removeRoot(e),this._removeLayer(e.layer),this._planes=this._planes.filter((function(t){return t.rootElement!==e})),this._rootElement===e&&(this._rootElement=null),e},jn.prototype.setRootElement=function(e){if(e===this._rootElement)return;let t;if(!e)throw new Error("rootElement required");return t=this._findPlaneForRoot(e),t||(e=this.addRootElement(e)),this._setRoot(e),e},jn.prototype._removeRoot=function(e){const t=this._elementRegistry,n=this._eventBus;n.fire("root.remove",{element:e}),n.fire("root.removed",{element:e}),t.remove(e)},jn.prototype._addRoot=function(e,t){const n=this._elementRegistry,i=this._eventBus;i.fire("root.add",{element:e}),n.add(e,t),i.fire("root.added",{element:e,gfx:t})},jn.prototype._setRoot=function(e,t){const n=this._rootElement;n&&(this._elementRegistry.updateGraphics(n,null,!0),this.hideLayer(n.layer)),e&&(t||(t=this._findPlaneForRoot(e).layer),this._elementRegistry.updateGraphics(e,this._svg,!0),this.showLayer(e.layer)),this._rootElement=e,this._eventBus.fire("root.set",{element:e})},jn.prototype._ensureValid=function(e,t){if(!t.id)throw new Error("element must have an id");if(this._elementRegistry.get(t.id))throw new Error("element <"+t.id+"> already exists");const n=Fn[e],i=d(n,(function(e){return void 0!==t[e]}));if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},jn.prototype._setParent=function(e,t,n){!function(e,t,n){if(e&&t){"number"!=typeof n&&(n=-1);var i=e.indexOf(t);if(-1!==i){if(i===n)return;if(-1===n)return;e.splice(i,1)}-1!==n?e.splice(n,0,t):e.push(t)}}(t.children,e,n),e.parent=t},jn.prototype._addElement=function(e,t,n,i){n=n||this.getRootElement();const r=this._eventBus,o=this._graphicsFactory;this._ensureValid(e,t),r.fire(e+".add",{element:t,parent:n}),this._setParent(t,n,i);const a=o.create(e,t,i);return this._elementRegistry.add(t,a),o.update(e,t,a),r.fire(e+".added",{element:t,gfx:a}),t},jn.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},jn.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},jn.prototype._removeElement=function(e,t){const n=this._elementRegistry,i=this._graphicsFactory,r=this._eventBus;if(e=n.get(e.id||e))return r.fire(t+".remove",{element:e}),i.remove(e),function(e,t){if(!e||!t)return-1;var n=e.indexOf(t);-1!==n&&e.splice(n,1)}(e.parent&&e.parent.children,e),e.parent=null,r.fire(t+".removed",{element:e}),n.remove(e),e},jn.prototype.removeShape=function(e){return this._removeElement(e,"shape")},jn.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},jn.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},jn.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},jn.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},jn.prototype.viewbox=function(e){if(void 0===e&&this._cachedViewbox)return this._cachedViewbox;const t=this._viewport,n=this.getSize();let i,r,o,a,s,l,p;return e?(this._changeViewbox((function(){s=Math.min(n.width/e.width,n.height/e.height);const i=this._svg.createSVGMatrix().scale(s).translate(-e.x,-e.y);le(t,i)})),e):(o=this._rootElement?this.getActiveLayer():null,i=o&&o.getBBox()||{},a=le(t),r=a?a.matrix:function(e,t,n,i,r,o){var a=Z().createSVGMatrix();switch(arguments.length){case 0:return a;case 1:return J(a,e);case 6:return J(a,{a:e,b:t,c:n,d:i,e:r,f:o})}}(),s=Bn(r.a,1e3),l=Bn(-r.e||0,1e3),p=Bn(-r.f||0,1e3),e=this._cachedViewbox={x:l?l/s:0,y:p?p/s:0,width:n.width/s,height:n.height/s,scale:s,inner:{width:i.width||0,height:i.height||0,x:i.x||0,y:i.y||0},outer:n})},jn.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox((function(){e=E({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),Vn(t,n)})),{x:n.e,y:n.f}},jn.prototype.scrollToElement=function(e,t){let n=100;"string"==typeof e&&(e=this._elementRegistry.get(e));const i=this.findRoot(e);if(i!==this.getRootElement()&&this.setRootElement(i),i===e)return;t||(t={}),"number"==typeof t&&(n=t),t={top:t.top||n,right:t.right||n,bottom:t.bottom||n,left:t.left||n};const r=Ft(e),o=wt(r),a=this.viewbox(),s=this.zoom();let l,p;a.y+=t.top/s,a.x+=t.left/s,a.width-=(t.right+t.left)/s,a.height-=(t.bottom+t.top)/s;const c=wt(a);if(r.width=0&&i.y>=0&&i.x+i.width<=n.width&&i.y+i.height<=n.height&&!e?o={x:0,y:0,width:Math.max(i.width+i.x,n.width),height:Math.max(i.height+i.y,n.height)}:(r=Math.min(1,n.width/i.width,n.height/i.height),o={x:i.x+(e?i.width/2-n.width/r/2:0),y:i.y+(e?i.height/2-n.height/r/2:0),width:n.width/r,height:n.height/r}),this.viewbox(o),this.viewbox(!1).scale},jn.prototype._setZoom=function(e,t){const n=this._svg,i=this._viewport,r=n.createSVGMatrix(),o=n.createSVGPoint();let a,s,l,p,c;l=i.getCTM();const u=l.a;return t?(a=E(o,t),s=a.matrixTransform(l.inverse()),p=r.translate(s.x,s.y).scale(1/u*e).translate(-s.x,-s.y),c=l.multiply(p)):c=r.scale(e),Vn(this._viewport,c),c},jn.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},jn.prototype.getAbsoluteBBox=function(e){const t=this.viewbox();let n;if(e.waypoints){n=this.getGraphics(e).getBBox()}else n=e;return{x:n.x*t.scale-t.x*t.scale,y:n.y*t.scale-t.y*t.scale,width:n.width*t.scale,height:n.height*t.scale}},jn.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var Wn="data-element-id";function zn(e){this._elements={},this._eventBus=e}function Gn(e,t,n){var i=function(e,t,n,i){var r=n.inverse;return Object.defineProperty(e,"remove",{value:function(e){var n=this.indexOf(e);return-1!==n&&(this.splice(n,1),t.unset(e,r,i)),e}}),Object.defineProperty(e,"contains",{value:function(e){return-1!==this.indexOf(e)}}),Object.defineProperty(e,"add",{value:function(e,n){var o=this.indexOf(e);if(void 0===n){if(-1!==o)return;n=this.length}-1!==o&&this.splice(o,1),this.splice(n,0,e),-1===o&&t.set(e,r,i)}}),Object.defineProperty(e,"__refs_collection",{value:!0}),e}(n[t.name]||[],e,t,n);Object.defineProperty(n,t.name,{enumerable:t.enumerable,value:i}),i.length&&i.forEach((function(i){e.set(i,t.inverse,n)}))}function $n(e,t){if(!(this instanceof $n))return new $n(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}zn.$inject=["eventBus"],zn.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),V(t,Wn,i),n&&V(n,Wn,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},zn.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&(V(i.gfx,Wn,""),i.secondaryGfx&&V(i.secondaryGfx,Wn,""),delete t[n])},zn.prototype.updateId=function(e,t){this._validateId(t),"string"==typeof e&&(e=this.get(e)),this._eventBus.fire("element.updateId",{element:e,newId:t});var n=this.getGraphics(e),i=this.getGraphics(e,!0);this.remove(e),e.id=t,this.add(e,n,i)},zn.prototype.updateGraphics=function(e,t,n){var i=e.id||e,r=this._elements[i];return n?r.secondaryGfx=t:r.gfx=t,t&&V(t,Wn,i),t},zn.prototype.get=function(e){var t;t="string"==typeof e?e:e&&V(e,Wn);var n=this._elements[t];return n&&n.element},zn.prototype.filter=function(e){var t=[];return this.forEach((function(n,i){e(n,i)&&t.push(n)})),t},zn.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i in ref");t=this.props[t]}t.collection?Gn(this,t,e):function(e,t,n){var i=t.inverse,r=n[t.name];Object.defineProperty(n,t.name,{configurable:t.configurable,enumerable:t.enumerable,get:function(){return r},set:function(t){if(t!==r){var o=r;r=null,o&&e.unset(o,i,n),r=t,e.set(r,i,n)}}})}(this,t,e)},$n.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||Gn(this,t,e),n},$n.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},$n.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},$n.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var Hn=new $n({name:"children",enumerable:!0,collection:!0},{name:"parent"}),Kn=new $n({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),Un=new $n({name:"attachers",collection:!0},{name:"host"}),qn=new $n({name:"outgoing",collection:!0},{name:"source"}),Yn=new $n({name:"incoming",collection:!0},{name:"target"});function Xn(){Object.defineProperty(this,"businessObject",{writable:!0}),Object.defineProperty(this,"label",{get:function(){return this.labels[0]},set:function(e){var t=this.label,n=this.labels;!e&&t?n.remove(t):n.add(e,0)}}),Hn.bind(this,"parent"),Kn.bind(this,"labels"),qn.bind(this,"outgoing"),Yn.bind(this,"incoming")}function Zn(){Xn.call(this),Hn.bind(this,"children"),Un.bind(this,"host"),Un.bind(this,"attachers")}function Jn(){Xn.call(this),Hn.bind(this,"children")}function Qn(){Zn.call(this),Kn.bind(this,"labelTarget")}function ei(){Xn.call(this),qn.bind(this,"source"),Yn.bind(this,"target")}e(Zn,Xn),e(Jn,Zn),e(Qn,Zn),e(ei,Xn);var ti={connection:ei,shape:Zn,label:Qn,root:Jn};function ni(){this._uid=12}ni.prototype.createRoot=function(e){return this.create("root",e)},ni.prototype.createLabel=function(e){return this.create("label",e)},ni.prototype.createShape=function(e){return this.create("shape",e)},ni.prototype.createConnection=function(e){return this.create("connection",e)},ni.prototype.create=function(e,t){return(t=E({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=ti[e];if(!n)throw new Error("unknown type: <"+e+">");return E(new n,t)}(e,t)};var ii="__fn",ri=Array.prototype.slice;function oi(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function ai(){}function si(e,t){this._eventBus=e,this._elementRegistry=t}function li(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}oi.prototype.on=function(e,t,n,i){if(e=o(e)?e:[e],l(t)&&(i=n,n=t,t=1e3),!s(t))throw new Error("priority must be a number");var r=n;i&&((r=b(n,i))[ii]=n[ii]||n);var a=this;e.forEach((function(e){a._addListener(e,{priority:t,callback:r,next:null})}))},oi.prototype.once=function(e,t,n,i){var r=this;if(l(t)&&(i=n,n=t,t=1e3),!s(t))throw new Error("priority must be a number");function o(){o.__isTomb=!0;var t=n.apply(i,arguments);return r.off(e,o),t}o[ii]=n,this.on(e,t,o)},oi.prototype.off=function(e,t){e=o(e)?e:[e];var n=this;e.forEach((function(e){n._removeListener(e,t)}))},oi.prototype.createEvent=function(e){var t=new ai;return t.init(e),t},oi.prototype.fire=function(e,t){var n,i,r,o;if(o=ri.call(arguments),"object"==typeof e&&(e=(t=e).type),!e)throw new Error("no event type specified");if(i=this._listeners[e]){n=t instanceof ai?t:this.createEvent(t),o[0]=n;var a=n.type;e!==a&&(n.type=e);try{r=this._invokeListeners(n,o,i)}finally{e!==a&&(n.type=a)}return void 0===r&&n.defaultPrevented&&(r=!1),r}},oi.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},oi.prototype._destroy=function(){this._listeners={}},oi.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},oi.prototype._invokeListener=function(e,t,n){var i;if(n.callback.__isTomb)return i;try{i=function(e,t){return e.apply(null,t)}(n.callback,t),void 0!==i&&(e.returnValue=i,e.stopPropagation()),!1===i&&e.preventDefault()}catch(e){if(!this.handleError(e))throw console.error("unhandled error in event listener",e),e}return i},oi.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority or , got "+e);n=r[1],i=r[0]}return{name:e=(i?i+":":"")+n,prefix:i,localName:n}}function wi(e){this.ns=e,this.name=e.name,this.allTypes=[],this.allTypesByName={},this.properties=[],this.propertiesByName={}}function bi(e,t){this.packageMap={},this.typeMap={},this.packages=[],this.properties=t,f(e,b(this.registerPackage,this))}function Ei(e,t,n){var i=t[n];if(i in e)throw new Error("package with "+n+" <"+i+"> already defined")}function _i(e){this.model=e}function Ai(e,t,n){Object.defineProperty(e,t.name,{enumerable:!t.isReference,writable:!0,value:n,configurable:!0})}function Ri(e){return e.replace(/^:/,"")}function Si(e,t={}){this.properties=new _i(this),this.factory=new fi(this,this.properties),this.registry=new bi(e,this.properties),this.typeCache={},this.config=t}wi.prototype.build=function(){return function(e,t){let n={},i=Object(e);return f(t,(function(t){t in i&&(n[t]=e[t])})),n}(this,["ns","name","allTypes","allTypesByName","properties","propertiesByName","bodyProperty","idProperty"])},wi.prototype.addProperty=function(e,t,n){"boolean"==typeof t&&(n=t,t=void 0),this.addNamedProperty(e,!1!==n);var i=this.properties;void 0!==t?i.splice(t,0,e):i.push(e)},wi.prototype.replaceProperty=function(e,t,n){var i=e.ns,r=this.properties,o=this.propertiesByName,a=e.name!==t.name;if(e.isId){if(!t.isId)throw new Error("property <"+t.ns.name+"> must be id property to refine <"+e.ns.name+">");this.setIdProperty(t,!1)}if(e.isBody){if(!t.isBody)throw new Error("property <"+t.ns.name+"> must be body property to refine <"+e.ns.name+">");this.setBodyProperty(t,!1)}var s=r.indexOf(e);if(-1===s)throw new Error("property <"+i.name+"> not found in property list");r.splice(s,1),this.addProperty(t,n?void 0:s,a),o[i.name]=o[i.localName]=t},wi.prototype.redefineProperty=function(e,t,n){var i=e.ns.prefix,r=t.split("#"),o=xi(r[0],i),a=xi(r[1],o.prefix).name,s=this.propertiesByName[a];if(!s)throw new Error("refined property <"+a+"> not found");this.replaceProperty(s,e,n),delete e.redefines},wi.prototype.addNamedProperty=function(e,t){var n=e.ns,i=this.propertiesByName;t&&(this.assertNotDefined(e,n.name),this.assertNotDefined(e,n.localName)),i[n.name]=i[n.localName]=e},wi.prototype.removeNamedProperty=function(e){var t=e.ns,n=this.propertiesByName;delete n[t.name],delete n[t.localName]},wi.prototype.setBodyProperty=function(e,t){if(t&&this.bodyProperty)throw new Error("body property defined multiple times (<"+this.bodyProperty.ns.name+">, <"+e.ns.name+">)");this.bodyProperty=e},wi.prototype.setIdProperty=function(e,t){if(t&&this.idProperty)throw new Error("id property defined multiple times (<"+this.idProperty.ns.name+">, <"+e.ns.name+">)");this.idProperty=e},wi.prototype.assertNotTrait=function(e){if((e.extends||[]).length)throw new Error(`cannot create <${e.name}> extending <${e.extends}>`)},wi.prototype.assertNotDefined=function(e,t){var n=e.name,i=this.propertiesByName[n];if(i)throw new Error("property <"+n+"> already defined; override of <"+i.definedBy.ns.name+"#"+i.ns.name+"> by <"+e.definedBy.ns.name+"#"+e.ns.name+"> not allowed without redefines")},wi.prototype.hasProperty=function(e){return this.propertiesByName[e]},wi.prototype.addTrait=function(e,t){t&&this.assertNotTrait(e);var n=this.allTypesByName,i=this.allTypes,r=e.name;r in n||(f(e.properties,b((function(n){n=E({},n,{name:n.ns.localName,inherited:t}),Object.defineProperty(n,"definedBy",{value:e});var i=n.replaces,r=n.redefines;i||r?this.redefineProperty(n,i||r,i):(n.isBody&&this.setBodyProperty(n),n.isId&&this.setIdProperty(n),this.addProperty(n))}),this)),i.push(e),n[r]=e)},bi.prototype.getPackage=function(e){return this.packageMap[e]},bi.prototype.getPackages=function(){return this.packages},bi.prototype.registerPackage=function(e){e=E({},e);var t=this.packageMap;Ei(t,e,"prefix"),Ei(t,e,"uri"),f(e.types,b((function(t){this.registerType(t,e)}),this)),t[e.uri]=t[e.prefix]=e,this.packages.push(e)},bi.prototype.registerType=function(e,t){var n=xi((e=E({},e,{superClass:(e.superClass||[]).slice(),extends:(e.extends||[]).slice(),properties:(e.properties||[]).slice(),meta:E(e.meta||{})})).name,t.prefix),i=n.name,r={};f(e.properties,b((function(e){var t=xi(e.name,n.prefix),i=t.name;gi(e.type)||(e.type=xi(e.type,t.prefix).name),E(e,{ns:t,name:i}),r[i]=e}),this)),E(e,{ns:n,name:i,propertiesByName:r}),f(e.extends,b((function(e){var t=xi(e,n.prefix),r=this.typeMap[t.name];r.traits=r.traits||[],r.traits.push(i)}),this)),this.definePackage(e,t),this.typeMap[i]=e},bi.prototype.mapTypes=function(e,t,n){var i=gi(e.name)?{name:e.name}:this.typeMap[e.name],r=this;function o(n,i){var o=xi(n,gi(n)?"":e.prefix);r.mapTypes(o,t,i)}function a(e){return o(e,!0)}if(!i)throw new Error("unknown type <"+e.name+">");f(i.superClass,n?a:function(e){return o(e,!1)}),t(i,!n),f(i.traits,a)},bi.prototype.getEffectiveDescriptor=function(e){var t=xi(e),n=new wi(t);this.mapTypes(t,(function(e,t){n.addTrait(e,t)}));var i=n.build();return this.definePackage(i,i.allTypes[i.allTypes.length-1].$pkg),i},bi.prototype.definePackage=function(e,t){this.properties.define(e,"$pkg",{value:t})},_i.prototype.set=function(e,t,n){if(!p(t)||!t.length)throw new TypeError("property name must be a non-empty string");var i=this.getProperty(e,t),r=i&&i.name;void 0===n?i?delete e[r]:delete e.$attrs[Ri(t)]:i?r in e?e[r]=n:Ai(e,i,n):e.$attrs[Ri(t)]=n},_i.prototype.get=function(e,t){var n=this.getProperty(e,t);if(!n)return e.$attrs[Ri(t)];var i=n.name;return!e[i]&&n.isMany&&Ai(e,n,[]),e[i]},_i.prototype.define=function(e,t,n){if(!n.writable){var i=n.value;delete(n=E({},n,{get:function(){return i}})).value}Object.defineProperty(e,t,n)},_i.prototype.defineDescriptor=function(e,t){this.define(e,"$descriptor",{value:t})},_i.prototype.defineModel=function(e,t){this.define(e,"$model",{value:t})},_i.prototype.getProperty=function(e,t){var n=this.model,i=n.getPropertyDescriptor(e,t);if(i)return i;if(t.includes(":"))return null;const r=n.config.strict;if(void 0!==r){const n=new TypeError(`unknown property <${t}> on <${e.$type}>`);if(r)throw n;"undefined"!=typeof console&&console.warn(n)}return null},Si.prototype.create=function(e,t){var n=this.getType(e);if(!n)throw new Error("unknown type <"+e+">");return new n(t)},Si.prototype.getType=function(e){var t=this.typeCache,n=p(e)?e:e.ns.name,i=t[n];return i||(e=this.registry.getEffectiveDescriptor(n),i=t[n]=this.factory.createType(e)),i},Si.prototype.createAny=function(e,t,n){var o=xi(e),s={$type:e,$instanceOf:function(e){return e===this.$type},get:function(e){return this[e]},set:function(e,t){!function(e,t,n){let o=e;f(t,(function(e,a){if("number"!=typeof e&&"string"!=typeof e)throw new Error("illegal key type: "+typeof e+". Key should be of type number or string.");if("constructor"===e)throw new Error("illegal key: constructor");if("__proto__"===e)throw new Error("illegal key: __proto__");let s=t[a+1],l=o[e];r(s)&&null==l&&(l=o[e]=isNaN(+s)?{}:[]),i(s)?i(n)?delete o[e]:o[e]=n:o=l}))}(this,[e],t)}},l={name:e,isGeneric:!0,ns:{prefix:o.prefix,localName:o.localName,uri:t}};return this.properties.defineDescriptor(s,l),this.properties.defineModel(s,this),this.properties.define(s,"get",{enumerable:!1,writable:!0}),this.properties.define(s,"set",{enumerable:!1,writable:!0}),this.properties.define(s,"$parent",{enumerable:!1,writable:!0}),this.properties.define(s,"$instanceOf",{enumerable:!1,writable:!0}),f(n,(function(e,t){a(e)&&void 0!==e.value?s[e.name]=e.value:s[t]=e})),s},Si.prototype.getPackage=function(e){return this.registry.getPackage(e)},Si.prototype.getPackages=function(){return this.registry.getPackages()},Si.prototype.getElementDescriptor=function(e){return e.$descriptor},Si.prototype.hasType=function(e,t){return void 0===t&&(t=e,e=this),t in e.$model.getElementDescriptor(e).allTypesByName},Si.prototype.getPropertyDescriptor=function(e,t){return this.getElementDescriptor(e).propertiesByName[t]},Si.prototype.getTypeDescriptor=function(e){return this.registry.typeMap[e]};var ki=String.fromCharCode,Ci=Object.prototype.hasOwnProperty,Mi=/&#(\d+);|&#x([0-9a-f]+);|&(\w+);/gi,Pi={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function Ni(e,t,n,i){return i?Ci.call(Pi,i)?Pi[i]:"&"+i+";":ki(t||parseInt(n,16))}function Ti(e){return e.length>3&&-1!==e.indexOf("&")?e.replace(Mi,Ni):e}Object.keys(Pi).forEach((function(e){Pi[e.toUpperCase()]=Pi[e]}));var Oi="xsi:type",Di="non-whitespace outside of root node";function Bi(e){return new Error(e)}function Li(e){return"missing namespace for prefix <"+e+">"}function Ii(e){return{get:e,enumerable:!0}}function Fi(e){var t,n={};for(t in e)n[t]=e[t];return n}function ji(e){return e+"$uri"}function Vi(){return{line:0,column:0}}function Wi(e){throw e}function zi(e){if(!this)return new zi(e);var t,n,i,r,o,a,s,l,p,c=e&&e.proxy,u=Wi,h=Vi,f=!1,m=!1,d=null,y=!1;function g(e){e instanceof Error||(e=Bi(e)),d=e,u(e,h)}function v(e){o&&(e instanceof Error||(e=Bi(e)),o(e,h))}this.on=function(e,p){if("function"!=typeof p)throw Bi("required args ");switch(e){case"openTag":n=p;break;case"text":t=p;break;case"closeTag":i=p;break;case"error":u=p;break;case"warn":o=p;break;case"cdata":r=p;break;case"attention":l=p;break;case"question":s=p;break;case"comment":a=p;break;default:throw Bi("unsupported event: "+e)}return this},this.ns=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw Bi("required args ");var t,n={};for(t in e)n[t]=e[t];return n["http://www.w3.org/2001/XMLSchema-instance"]="xsi",m=!0,p=n,this},this.parse=function(e){if("string"!=typeof e)throw Bi("required args ");return d=null,function(e){var o,u,d,x,w,b,E,_,A,R,S,k=m?[]:null,C=m?function(e){var t,n,i={};for(t in e)i[n=e[t]]=n,i[ji(n)]=t;return i}(p):null,M=[],P=0,N=!1,T=!1,O=0,D=0,B="",L=0;function I(){if(null!==S)return S;var e,t,n,i,r,o,a,s,l,c,u,h=m&&C.xmlns,d=m&&f?[]:null,y=L,g=B,x=g.length,w={},b={};e:for(;y8)){for((c<65||c>122||c>90&&c<97)&&95!==c&&58!==c&&(v("illegal first char attribute name"),l=!0),u=y+1;u96&&c<123||c>64&&c<91||c>47&&c<59||46===c||45===c||95===c)){if(32===c||c<14&&c>8){v("missing attribute value"),y=u;continue e}if(61===c)break;v("illegal attribute name char"),l=!0}if("xmlns:xmlns"===(s=g.substring(y,u))&&(v("illegal declaration of xmlns"),l=!0),34===(c=g.charCodeAt(u+1)))-1===(u=g.indexOf('"',y=u+2))&&-1!==(u=g.indexOf("'",y))&&(v("attribute value quote missmatch"),l=!0);else if(39===c)-1===(u=g.indexOf("'",y=u+2))&&-1!==(u=g.indexOf('"',y))&&(v("attribute value quote missmatch"),l=!0);else for(v("missing attribute value quotes"),l=!0,u+=1;u8);u++);for(-1===u&&(v("missing closing quotes"),u=x,l=!0),l||(o=g.substring(y,u)),y=u;u+18);u++)y===u&&(v("illegal character after attribute end"),l=!0);if(y=u+1,!l)if(s in b)v("attribute <"+s+"> already defined");else if(b[s]=!0,m)if(f){if(null!==(r="xmlns"===s?"xmlns":120===s.charCodeAt(0)&&"xmlns:"===s.substr(0,6)?s.substr(6):null)){if(e=Ti(o),t=ji(r),!(a=p[e])){if("xmlns"===r||t in C&&C[t]!==e)do{a="ns"+P++}while(void 0!==C[a]);else a=r;p[e]=a}C[r]!==a&&(i||(C=Fi(C),i=!0),C[r]=a,"xmlns"===r&&(C[ji(a)]=e,h=a),C[t]=e),w[s]=o;continue}d.push(s,o)}else-1!==(c=s.indexOf(":"))?(n=C[s.substring(0,c)])?((s=h===n?s.substr(c+1):n+s.substr(c))===Oi&&(-1!==(c=o.indexOf(":"))?(n=o.substring(0,c),o=(n=C[n]||n)+o.substring(c)):o=h+":"+o),w[s]=o):v(Li(s.substring(0,c))):w[s]=o;else w[s]=o}if(f)for(y=0,x=d.length;y=a&&(t=i.exec(e))&&!((s=t[0].length+t.index)>O);)r+=1,a=s;return-1==O?(o=s,n=e.substring(D)):0===D?n=e.substring(D,O):(o=O-a,n=-1==D?e.substring(O):e.substring(O,D+1)),{data:n,line:r,column:o}}h=F,c&&(R=Object.create({},{name:Ii((function(){return _})),originalName:Ii((function(){return A})),attrs:Ii(I),ns:Ii((function(){return C}))}));for(;-1!==D;){if(-1===(O=60===e.charCodeAt(D)?D:e.indexOf("<",D)))return M.length?g("unexpected end of file"):0===D?g("missing start tag"):void(D",O)))return g("unclosed cdata");if(r&&(r(e.substring(O+9,D),h),y))return;D+=3;continue}if(45===x&&45===e.charCodeAt(O+3)){if(-1===(D=e.indexOf("--\x3e",O)))return g("unclosed comment");if(a&&(a(e.substring(O+4,D),Ti,h),y))return;D+=3;continue}}if(63!==w){for(u=O+1;;u++){if(b=e.charCodeAt(u),isNaN(b))return D=-1,g("unclosed tag");if(34===b)u=-1!==(x=e.indexOf('"',u+1))?x:u;else if(39===b)u=-1!==(x=e.indexOf("'",u+1))?x:u;else if(62===b){D=u;break}}if(33!==w){if(S={},47===w){if(N=!1,T=!0,!M.length)return g("missing open tag");if(u=_=M.pop(),x=O+2+u.length,e.substring(O+2,x)!==u)return g("closing tag mismatch");for(;x8&&w<14))return g("close tag")}else{if(47===e.charCodeAt(D-1)?(u=_=e.substring(O+1,D-1),N=!0,T=!0):(u=_=e.substring(O+1,D),N=!0,T=!1),!(w>96&&w<123||w>64&&w<91||95===w||58===w))return g("illegal first char nodeName");for(x=1,d=u.length;x96&&w<123||w>64&&w<91||w>47&&w<59||45===w||95===w||46==w)){if(32===w||w<14&&w>8){_=u.substring(0,x),S=null;break}return g("invalid nodeName")}T||M.push(_)}if(m){if(o=C,N&&(T||k.push(o),null===S&&(f=-1!==u.indexOf("xmlns",x))&&(L=x,B=u,I(),f=!1)),A=_,-1!==(w=_.indexOf(":"))){if(!(E=C[_.substring(0,w)]))return g("missing namespace on <"+A+">");_=_.substr(w+1)}else E=C.xmlns;E&&(_=E+":"+_)}if(N&&(L=x,B=u,n&&(c?n(R,Ti,T,h):n(_,I,Ti,T,h),y)))return;if(T){if(i&&(i(c?R:_,Ti,N,h),y))return;m&&(C=N?o:k.pop())}D+=1}else{if(l&&(l(e.substring(O,D+1),Ti,h),y))return;D+=1}}else{if(-1===(D=e.indexOf("?>",O)))return g("unclosed question");if(s&&(s(e.substring(O,D+2),h),y))return;D+=2}}}(e),h=Vi,y=!1,d},this.stop=function(){y=!0}}function Gi(e){return e.xml&&"lowerCase"===e.xml.tagAlias}var $i={xsi:"http://www.w3.org/2001/XMLSchema-instance",xml:"http://www.w3.org/XML/1998/namespace"},Hi="xsi:type";function Ki(e){return e.xml&&e.xml.serialize}function Ui(e){return Ki(e)===Hi}function qi(e,t){return Gi(t)?e.prefix+":"+((n=e.localName).charAt(0).toUpperCase()+n.slice(1)):e.name;var n}function Yi(e){return new Error(e)}function Xi(e){return e.$descriptor}function Zi(e){E(this,e),this.elementsById={},this.references=[],this.warnings=[],this.addReference=function(e){this.references.push(e)},this.addElement=function(e){if(!e)throw Yi("expected element");var t,n=this.elementsById,i=Xi(e).idProperty;if(i&&(t=e.get(i.name))){if(!/^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i.test(t))throw new Error("illegal ID <"+t+">");if(n[t])throw Yi("duplicate ID <"+t+">");n[t]=e}},this.addWarning=function(e){this.warnings.push(e)}}function Ji(){}function Qi(){}function er(){}function tr(e,t){this.property=e,this.context=t}function nr(e,t){this.element=t,this.propertyDesc=e}function ir(){}function rr(e,t,n){this.model=e,this.type=e.getType(t),this.context=n}function or(e,t,n){rr.call(this,e,t,n)}function ar(e,t,n){this.model=e,this.context=n}function sr(e){e instanceof Si&&(e={model:e}),E(this,{lax:!1},e)}Ji.prototype.handleEnd=function(){},Ji.prototype.handleText=function(){},Ji.prototype.handleNode=function(){},Qi.prototype=Object.create(Ji.prototype),Qi.prototype.handleNode=function(){return this},er.prototype=Object.create(Ji.prototype),er.prototype.handleText=function(e){this.body=(this.body||"")+e},tr.prototype=Object.create(er.prototype),tr.prototype.handleNode=function(e){if(this.element)throw Yi("expected no sub nodes");return this.element=this.createReference(e),this},tr.prototype.handleEnd=function(){this.element.id=this.body},tr.prototype.createReference=function(e){return{property:this.property.ns.name,id:""}},nr.prototype=Object.create(er.prototype),nr.prototype.handleEnd=function(){var e=this.body||"",t=this.element,n=this.propertyDesc;e=yi(n.type,e),n.isMany?t.get(n.name).push(e):t.set(n.name,e)},ir.prototype=Object.create(er.prototype),ir.prototype.handleNode=function(e){var t=this,n=this.element;return n?t=this.handleChild(e):(n=this.element=this.createElement(e),this.context.addElement(n)),t},rr.prototype=Object.create(ir.prototype),rr.prototype.addReference=function(e){this.context.addReference(e)},rr.prototype.handleText=function(e){if(!Xi(this.element).bodyProperty)throw Yi("unexpected body text <"+e+">");er.prototype.handleText.call(this,e)},rr.prototype.handleEnd=function(){var e=this.body,t=this.element,n=Xi(t).bodyProperty;n&&void 0!==e&&(e=yi(n.type,e),t.set(n.name,e))},rr.prototype.createElement=function(e){var t,n=e.attributes,i=this.type,r=Xi(i),o=this.context,a=new i({}),s=this.model;return f(n,(function(e,n){var i=r.propertiesByName[n];i&&i.isReference?i.isMany?f(e.split(" "),(function(e){o.addReference({element:a,property:i.ns.name,id:e})})):o.addReference({element:a,property:i.ns.name,id:e}):(i?e=yi(i.type,e):"xmlns"!==n&&(t=xi(n,r.ns.prefix),s.getPackage(t.prefix)&&o.addWarning({message:"unknown attribute <"+n+">",element:a,property:n,value:e})),a.set(n,e))})),a},rr.prototype.getPropertyForNode=function(e){var t,n,i=xi(e.name),r=this.type,o=this.model,a=Xi(r),s=i.name,l=a.propertiesByName[s];if(l&&!l.isAttr)return Ui(l)&&(t=e.attributes[Hi])?(t=function(e,t){var n=xi(e);return function(e,t){var n=e.name,i=e.localName,r=t.xml&&t.xml.typePrefix;return r&&0===i.indexOf(r)?e.prefix+":"+i.slice(r.length):n}(n,t.getPackage(n.prefix))}(t,o),E({},l,{effectiveType:Xi(n=o.getType(t)).name})):l;var p=o.getPackage(i.prefix);if(p){if(t=qi(i,p),n=o.getType(t),l=u(a.properties,(function(e){return!e.isVirtual&&!e.isReference&&!e.isAttribute&&n.hasType(e.type)})))return E({},l,{effectiveType:Xi(n).name})}else if(l=u(a.properties,(function(e){return!e.isReference&&!e.isAttribute&&"Element"===e.type})))return l;throw Yi("unrecognized element <"+i.name+">")},rr.prototype.toString=function(){return"ElementDescriptor["+Xi(this.type).name+"]"},rr.prototype.valueHandler=function(e,t){return new nr(e,t)},rr.prototype.referenceHandler=function(e){return new tr(e,this.context)},rr.prototype.handler=function(e){return"Element"===e?new ar(this.model,e,this.context):new rr(this.model,e,this.context)},rr.prototype.handleChild=function(e){var t,n,i,r;if(t=this.getPropertyForNode(e),i=this.element,vi(n=t.effectiveType||t.type))return this.valueHandler(t,i);var o=(r=t.isReference?this.referenceHandler(t).handleNode(e):this.handler(n).handleNode(e)).element;return void 0!==o&&(t.isMany?i.get(t.name).push(o):i.set(t.name,o),t.isReference?(E(o,{element:i}),this.context.addReference(o)):o.$parent=i),r},or.prototype=Object.create(rr.prototype),or.prototype.createElement=function(e){var t=e.name,n=xi(t),i=this.model,r=this.type,o=i.getPackage(n.prefix),a=o&&qi(n,o)||t;if(!r.hasType(a))throw Yi("unexpected element <"+e.originalName+">");return rr.prototype.createElement.call(this,e)},ar.prototype=Object.create(ir.prototype),ar.prototype.createElement=function(e){var t=e.name,n=xi(t).prefix,i=e.ns[n+"$uri"],r=e.attributes;return this.model.createAny(t,i,r)},ar.prototype.handleChild=function(e){var t=new ar(this.model,"Element",this.context).handleNode(e),n=this.element,i=t.element;return void 0!==i&&((n.$children=n.$children||[]).push(i),i.$parent=n),t},ar.prototype.handleEnd=function(){this.body&&(this.element.$body=this.body)},sr.prototype.fromXML=function(e,t,n){var i=t.rootHandler;t instanceof rr?(i=t,t={}):"string"==typeof t?(i=this.handler(t),t={}):"string"==typeof i&&(i=this.handler(i));var r=this.model,o=this.lax,a=new Zi(E({},t,{rootHandler:i})),s=new zi({proxy:!0}),l=function(){var e=[];return Object.defineProperty(e,"peek",{value:function(){return this[this.length-1]}}),e}();function p(e,t,n){var i=t(),r=i.line,o=i.column,s=i.data;"<"===s.charAt(0)&&-1!==s.indexOf(" ")&&(s=s.slice(0,s.indexOf(" "))+">");var l="unparsable content "+(s?s+" ":"")+"detected\n\tline: "+r+"\n\tcolumn: "+o+"\n\tnested error: "+e.message;if(n)return a.addWarning({message:l,error:e}),!0;throw Yi(l)}function c(e,t){return p(e,t,!0)}i.context=a,l.push(i);var u=/^<\?xml /i,h=/ encoding="([^"]+)"/i,f=/^utf-8$/i;function m(e,t){try{l.peek().handleText(e)}catch(e){c(e,t)}}var d=r.getPackages().reduce((function(e,t){return e[t.uri]=t.prefix,e}),{"http://www.w3.org/XML/1998/namespace":"xml"});return s.ns(d).on("openTag",(function(e,t,n,i){var r=e.attrs||{},a=Object.keys(r).reduce((function(e,n){var i=t(r[n]);return e[n]=i,e}),{});!function(e,t){var n=l.peek();try{l.push(n.handleNode(e))}catch(e){p(e,t,o)&&l.push(new Qi)}}({name:e.name,originalName:e.originalName,attributes:a,ns:e.ns},i)})).on("question",(function(e){if(u.test(e)){var t=h.exec(e),n=t&&t[1];n&&!f.test(n)&&a.addWarning({message:"unsupported document encoding <"+n+">, falling back to UTF-8"})}})).on("closeTag",(function(){l.pop().handleEnd()})).on("cdata",m).on("text",(function(e,t,n){!function(e,t){e.trim()&&m(e,t)}(t(e),n)})).on("error",p).on("warn",c),new Promise((function(t,n){var r;try{s.parse(e),function(){var e,t,n=a.elementsById,i=a.references;for(e=0;t=i[e];e++){var r=t.element,o=n[t.id],s=Xi(r).propertiesByName[t.property];if(o||a.addWarning({message:"unresolved reference <"+t.id+">",element:t.element,property:t.property,value:t.id}),s.isMany){var l=r.get(s.name),p=l.indexOf(t);-1===p&&(p=l.length),o?l[p]=o:l.splice(p,1)}else r.set(s.name,o)}}()}catch(e){r=e}var o=i.element;r||o||(r=Yi("failed to parse document as <"+i.type.$descriptor.name+">"));var l=a.warnings,p=a.references,c=a.elementsById;return r?(r.warnings=l,n(r)):t({rootElement:o,elementsById:c,references:p,warnings:l})}))},sr.prototype.handler=function(e){return new or(this.model,e)};var lr=/<|>|'|"|&|\n\r|\n/g,pr=/<|>|&/g;function cr(e){var t={},n={},i={},r=[],o=[];this.byUri=function(t){return n[t]||e&&e.byUri(t)},this.add=function(e,t){n[e.uri]=e,t?r.push(e):o.push(e),this.mapPrefix(e.prefix,e.uri)},this.uriByPrefix=function(e){return t[e||"xmlns"]},this.mapPrefix=function(e,n){t[e||"xmlns"]=n},this.getNSKey=function(e){return void 0!==e.prefix?e.uri+"|"+e.prefix:e.uri},this.logUsed=function(t){var n=t.uri,r=this.getNSKey(t);i[r]=this.byUri(n),e&&e.logUsed(t)},this.getUsed=function(e){var t=this;return[].concat(r,o).filter((function(e){var n=t.getNSKey(e);return i[n]}))}}function ur(e,t){return Gi(t)?(n=e).charAt(0).toLowerCase()+n.slice(1):e;var n}function hr(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function fr(e){return p(e)?e:(e.prefix?e.prefix+":":"")+e.localName}var mr={"\n":"#10","\n\r":"#10",'"':"#34","'":"#39","<":"#60",">":"#62","&":"#38"},dr={"<":"lt",">":"gt","&":"amp"};function yr(e,t,n){return(e=p(e)?e:""+e).replace(t,(function(e){return"&"+n[e]+";"}))}function gr(e){this.tagName=e}function vr(){}function xr(e){this.tagName=e}function wr(e,t){this.body=[],this.attrs=[],this.parent=e,this.propertyDescriptor=t}function br(e,t){wr.call(this,e,t)}function Er(){this.value="",this.write=function(e){this.value+=e}}function _r(e,t){var n=[""];this.append=function(t){return e.write(t),this},this.appendNewLine=function(){return t&&e.write("\n"),this},this.appendIndent=function(){return t&&e.write(n.join(" ")),this},this.indent=function(){return n.push(""),this},this.unindent=function(){return n.pop(),this}}function Ar(e){return e=E({format:!1,preamble:!0},e||{}),{toXML:function(t,n){var i=n||new Er,r=new _r(i,e.format);if(e.preamble&&r.append('\n'),(new wr).build(t).serializeTo(r),!n)return i.value}}}function Rr(e,t){Si.call(this,e,t)}gr.prototype.build=function(e){return this.element=e,this},gr.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"+this.element.id+"").appendNewLine()},vr.prototype.serializeValue=vr.prototype.serializeTo=function(e){e.append(this.escape?yr(this.value,pr,dr):this.value)},vr.prototype.build=function(e,t){return this.value=t,"String"===e.type&&-1!==t.search(pr)&&(this.escape=!0),this},hr(xr,vr),xr.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"),this.serializeValue(e),e.append("").appendNewLine()},wr.prototype.build=function(e){this.element=e;var t,n,i=e.$descriptor,r=this.propertyDescriptor,o=i.isGeneric;return t=o?this.parseGeneric(e):this.parseNsAttributes(e),this.ns=r?this.nsPropertyTagName(r):this.nsTagName(i),this.tagName=this.addTagName(this.ns),o||(n=function(e){return h(e.$descriptor.properties,(function(t){var n=t.name;if(t.isVirtual)return!1;if(!c(e,n))return!1;var i=e[n];return i!==t.default&&null!==i&&(!t.isMany||i.length)}))}(e),this.parseAttributes(h(n,(function(e){return e.isAttr}))),this.parseContainments(function(e){return h(e,(function(e){return!e.isAttr}))}(n))),this.parseGenericAttributes(e,t),this},wr.prototype.nsTagName=function(e){return function(e,t){return t.isGeneric?E({localName:t.ns.localName},e):E({localName:ur(t.ns.localName,t.$pkg)},e)}(this.logNamespaceUsed(e.ns),e)},wr.prototype.nsPropertyTagName=function(e){return function(e,t){return E({localName:t.ns.localName},e)}(this.logNamespaceUsed(e.ns),e)},wr.prototype.isLocalNs=function(e){return e.uri===this.ns.uri},wr.prototype.nsAttributeName=function(e){var t;if(t=p(e)?xi(e):e.ns,e.inherited)return{localName:t.localName};var n=this.logNamespaceUsed(t);return this.getNamespaces().logUsed(n),this.isLocalNs(n)?{localName:t.localName}:E({localName:t.localName},n)},wr.prototype.parseGeneric=function(e){var t=this,n=this.body,i=[];return f(e,(function(r,o){"$body"===o?n.push((new vr).build({type:"String"},r)):"$children"===o?f(r,(function(e){n.push(new wr(t).build(e))})):0!==o.indexOf("$")&&t.parseNsAttribute(e,o,r)&&i.push({name:o,value:r})})),i},wr.prototype.parseNsAttribute=function(e,t,n){var i,r=e.$model,o=xi(t);if("xmlns"===o.prefix&&(i={prefix:o.localName,uri:n}),o.prefix||"xmlns"!==o.localName||(i={uri:n}),!i)return{name:t,value:n};if(r&&r.getPackage(n))this.logNamespace(i,!0,!0);else{var a=this.logNamespaceUsed(i,!0);this.getNamespaces().logUsed(a)}},wr.prototype.parseNsAttributes=function(e,t){var n=this,i=e.$attrs,r=[];return f(i,(function(t,i){var o=n.parseNsAttribute(e,i,t);o&&r.push(o)})),r},wr.prototype.parseGenericAttributes=function(e,t){var n=this;f(t,(function(t){if(t.name!==Hi)try{n.addAttribute(n.nsAttributeName(t.name),t.value)}catch(n){console.warn("missing namespace information for ",t.name,"=",t.value,"on",e,n)}}))},wr.prototype.parseContainments=function(e){var t=this,n=this.body,i=this.element;f(e,(function(e){var r=i.get(e.name),o=e.isReference;if(e.isMany||(r=[r]),e.isBody)n.push((new vr).build(e,r[0]));else if(vi(e.type))f(r,(function(i){n.push(new xr(t.addTagName(t.nsPropertyTagName(e))).build(e,i))}));else if(o)f(r,(function(i){n.push(new gr(t.addTagName(t.nsPropertyTagName(e))).build(i))}));else{var a=Ui(e),s=function(e){return"property"===Ki(e)}(e);f(r,(function(i){var r;r=a?new br(t,e):s?new wr(t,e):new wr(t),n.push(r.build(i))}))}}))},wr.prototype.getNamespaces=function(e){var t,n=this.namespaces,i=this.parent;return n||(t=i&&i.getNamespaces(),e||!t?this.namespaces=n=new cr(t):n=t),n},wr.prototype.logNamespace=function(e,t,n){var i=this.getNamespaces(n),r=e.uri,o=e.prefix;return i.byUri(r)&&!n||i.add(e,t),i.mapPrefix(o,r),e},wr.prototype.logNamespaceUsed=function(e,t){var n,i,r,o=this.element.$model,a=this.getNamespaces(t),s=e.prefix,l=e.uri;if(!s&&!l)return{localName:e.localName};if(r=$i[s]||o&&(o.getPackage(s)||{}).uri,!(l=l||r||a.uriByPrefix(s)))throw new Error("no namespace uri given for prefix <"+s+">");if(!(e=a.byUri(l))){for(n=s,i=1;a.uriByPrefix(n);)n=s+"_"+i++;e=this.logNamespace({prefix:n,uri:l},r===l)}return s&&a.mapPrefix(s,l),e},wr.prototype.parseAttributes=function(e){var t=this,n=this.element;f(e,(function(e){var i=n.get(e.name);if(e.isReference)if(e.isMany){var r=[];f(i,(function(e){r.push(e.id)})),i=r.join(" ")}else i=i.id;t.addAttribute(t.nsAttributeName(e),i)}))},wr.prototype.addTagName=function(e){var t=this.logNamespaceUsed(e);return this.getNamespaces().logUsed(t),fr(e)},wr.prototype.addAttribute=function(e,t){var n=this.attrs;p(t)&&(t=yr(t,lr,mr));var i=function(e,t){const n=v(t);let i=o(e)?-1:void 0;return f(e,(function(e,t){if(n(e,t))return i=t,!1})),i}(n,(function(t){return t.name.localName===e.localName&&t.name.uri===e.uri&&t.name.prefix===e.prefix})),r={name:e,value:t};-1!==i?n.splice(i,1,r):n.push(r)},wr.prototype.serializeAttributes=function(e){var t=this.attrs,n=this.namespaces;n&&(t=function(e){return e.getUsed().filter((function(e){return"xml"!==e.prefix})).map((function(e){return{name:"xmlns"+(e.prefix?":"+e.prefix:""),value:e.uri}}))}(n).concat(t)),f(t,(function(t){e.append(" ").append(fr(t.name)).append('="').append(t.value).append('"')}))},wr.prototype.serializeTo=function(e){var t=this.body[0],n=t&&t.constructor!==vr;e.appendIndent().append("<"+this.tagName),this.serializeAttributes(e),e.append(t?">":" />"),t&&(n&&e.appendNewLine().indent(),f(this.body,(function(t){t.serializeTo(e)})),n&&e.unindent().appendIndent(),e.append("")),e.appendNewLine()},hr(br,wr),br.prototype.parseNsAttributes=function(e){var t=wr.prototype.parseNsAttributes.call(this,e),n=e.$descriptor;if(n.name===this.propertyDescriptor.type)return t;var i=this.typeNs=this.nsTagName(n);this.getNamespaces().logUsed(this.typeNs);var r=e.$model.getPackage(i.uri),o=r.xml&&r.xml.typePrefix||"";return this.addAttribute(this.nsAttributeName(Hi),(i.prefix?i.prefix+":":"")+o+n.ns.localName),t},br.prototype.isLocalNs=function(e){return e.uri===(this.typeNs||this.ns).uri},Rr.prototype=Object.create(Si.prototype),Rr.prototype.fromXML=function(e,t,n){p(t)||(n=t,t="bpmn:Definitions");var i=new sr(E({model:this,lax:!0},n)),r=i.handler(t);return i.fromXML(e,r)},Rr.prototype.toXML=function(e,t){var n=new Ar(t);return new Promise((function(t,i){try{return t({xml:n.toXML(e)})}catch(e){return i(e)}}))};var Sr={bpmn:{name:"BPMN20",uri:"http://www.omg.org/spec/BPMN/20100524/MODEL",prefix:"bpmn",associations:[],types:[{name:"Interface",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"operations",type:"Operation",isMany:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"Operation",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"inMessageRef",type:"Message",isReference:!0},{name:"outMessageRef",type:"Message",isReference:!0},{name:"errorRef",type:"Error",isMany:!0,isReference:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"EndPoint",superClass:["RootElement"]},{name:"Auditing",superClass:["BaseElement"]},{name:"GlobalTask",superClass:["CallableElement"],properties:[{name:"resources",type:"ResourceRole",isMany:!0}]},{name:"Monitoring",superClass:["BaseElement"]},{name:"Performer",superClass:["ResourceRole"]},{name:"Process",superClass:["FlowElementsContainer","CallableElement"],properties:[{name:"processType",type:"ProcessType",isAttr:!0},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"properties",type:"Property",isMany:!0},{name:"laneSets",isMany:!0,replaces:"FlowElementsContainer#laneSets",type:"LaneSet"},{name:"flowElements",isMany:!0,replaces:"FlowElementsContainer#flowElements",type:"FlowElement"},{name:"artifacts",type:"Artifact",isMany:!0},{name:"resources",type:"ResourceRole",isMany:!0},{name:"correlationSubscriptions",type:"CorrelationSubscription",isMany:!0},{name:"supports",type:"Process",isMany:!0,isReference:!0},{name:"definitionalCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"isExecutable",isAttr:!0,type:"Boolean"}]},{name:"LaneSet",superClass:["BaseElement"],properties:[{name:"lanes",type:"Lane",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Lane",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"partitionElementRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"partitionElement",type:"BaseElement"},{name:"flowNodeRef",type:"FlowNode",isMany:!0,isReference:!0},{name:"childLaneSet",type:"LaneSet",xml:{serialize:"xsi:type"}}]},{name:"GlobalManualTask",superClass:["GlobalTask"]},{name:"ManualTask",superClass:["Task"]},{name:"UserTask",superClass:["Task"],properties:[{name:"renderings",type:"Rendering",isMany:!0},{name:"implementation",isAttr:!0,type:"String"}]},{name:"Rendering",superClass:["BaseElement"]},{name:"HumanPerformer",superClass:["Performer"]},{name:"PotentialOwner",superClass:["HumanPerformer"]},{name:"GlobalUserTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"renderings",type:"Rendering",isMany:!0}]},{name:"Gateway",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"gatewayDirection",type:"GatewayDirection",default:"Unspecified",isAttr:!0}]},{name:"EventBasedGateway",superClass:["Gateway"],properties:[{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"eventGatewayType",type:"EventBasedGatewayType",isAttr:!0,default:"Exclusive"}]},{name:"ComplexGateway",superClass:["Gateway"],properties:[{name:"activationCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ExclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"InclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ParallelGateway",superClass:["Gateway"]},{name:"RootElement",isAbstract:!0,superClass:["BaseElement"]},{name:"Relationship",superClass:["BaseElement"],properties:[{name:"type",isAttr:!0,type:"String"},{name:"direction",type:"RelationshipDirection",isAttr:!0},{name:"source",isMany:!0,isReference:!0,type:"Element"},{name:"target",isMany:!0,isReference:!0,type:"Element"}]},{name:"BaseElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,type:"String",isId:!0},{name:"documentation",type:"Documentation",isMany:!0},{name:"extensionDefinitions",type:"ExtensionDefinition",isMany:!0,isReference:!0},{name:"extensionElements",type:"ExtensionElements"}]},{name:"Extension",properties:[{name:"mustUnderstand",default:!1,isAttr:!0,type:"Boolean"},{name:"definition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"extensionAttributeDefinitions",type:"ExtensionAttributeDefinition",isMany:!0}]},{name:"ExtensionAttributeDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"type",isAttr:!0,type:"String"},{name:"isReference",default:!1,isAttr:!0,type:"Boolean"},{name:"extensionDefinition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionElements",properties:[{name:"valueRef",isAttr:!0,isReference:!0,type:"Element"},{name:"values",type:"Element",isMany:!0},{name:"extensionAttributeDefinition",type:"ExtensionAttributeDefinition",isAttr:!0,isReference:!0}]},{name:"Documentation",superClass:["BaseElement"],properties:[{name:"text",type:"String",isBody:!0},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Event",isAbstract:!0,superClass:["FlowNode","InteractionNode"],properties:[{name:"properties",type:"Property",isMany:!0}]},{name:"IntermediateCatchEvent",superClass:["CatchEvent"]},{name:"IntermediateThrowEvent",superClass:["ThrowEvent"]},{name:"EndEvent",superClass:["ThrowEvent"]},{name:"StartEvent",superClass:["CatchEvent"],properties:[{name:"isInterrupting",default:!0,isAttr:!0,type:"Boolean"}]},{name:"ThrowEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"inputSet",type:"InputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"CatchEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"parallelMultiple",isAttr:!0,type:"Boolean",default:!1},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"outputSet",type:"OutputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"BoundaryEvent",superClass:["CatchEvent"],properties:[{name:"cancelActivity",default:!0,isAttr:!0,type:"Boolean"},{name:"attachedToRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"EventDefinition",isAbstract:!0,superClass:["RootElement"]},{name:"CancelEventDefinition",superClass:["EventDefinition"]},{name:"ErrorEventDefinition",superClass:["EventDefinition"],properties:[{name:"errorRef",type:"Error",isAttr:!0,isReference:!0}]},{name:"TerminateEventDefinition",superClass:["EventDefinition"]},{name:"EscalationEventDefinition",superClass:["EventDefinition"],properties:[{name:"escalationRef",type:"Escalation",isAttr:!0,isReference:!0}]},{name:"Escalation",properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"escalationCode",isAttr:!0,type:"String"}],superClass:["RootElement"]},{name:"CompensateEventDefinition",superClass:["EventDefinition"],properties:[{name:"waitForCompletion",isAttr:!0,type:"Boolean",default:!0},{name:"activityRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"TimerEventDefinition",superClass:["EventDefinition"],properties:[{name:"timeDate",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeCycle",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeDuration",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"LinkEventDefinition",superClass:["EventDefinition"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"target",type:"LinkEventDefinition",isReference:!0},{name:"source",type:"LinkEventDefinition",isMany:!0,isReference:!0}]},{name:"MessageEventDefinition",superClass:["EventDefinition"],properties:[{name:"messageRef",type:"Message",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"ConditionalEventDefinition",superClass:["EventDefinition"],properties:[{name:"condition",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"SignalEventDefinition",superClass:["EventDefinition"],properties:[{name:"signalRef",type:"Signal",isAttr:!0,isReference:!0}]},{name:"Signal",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ImplicitThrowEvent",superClass:["ThrowEvent"]},{name:"DataState",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"ItemAwareElement",superClass:["BaseElement"],properties:[{name:"itemSubjectRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"dataState",type:"DataState"}]},{name:"DataAssociation",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"ItemAwareElement",isMany:!0,isReference:!0},{name:"targetRef",type:"ItemAwareElement",isReference:!0},{name:"transformation",type:"FormalExpression",xml:{serialize:"property"}},{name:"assignment",type:"Assignment",isMany:!0}]},{name:"DataInput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"inputSetRef",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithOptional",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithWhileExecuting",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"DataOutput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"outputSetRef",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithOptional",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithWhileExecuting",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"InputSet",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"dataInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"optionalInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"whileExecutingInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"outputSetRefs",type:"OutputSet",isMany:!0,isReference:!0}]},{name:"OutputSet",superClass:["BaseElement"],properties:[{name:"dataOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"inputSetRefs",type:"InputSet",isMany:!0,isReference:!0},{name:"optionalOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"whileExecutingOutputRefs",type:"DataOutput",isMany:!0,isReference:!0}]},{name:"Property",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"DataInputAssociation",superClass:["DataAssociation"]},{name:"DataOutputAssociation",superClass:["DataAssociation"]},{name:"InputOutputSpecification",superClass:["BaseElement"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"inputSets",type:"InputSet",isMany:!0},{name:"outputSets",type:"OutputSet",isMany:!0}]},{name:"DataObject",superClass:["FlowElement","ItemAwareElement"],properties:[{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"}]},{name:"InputOutputBinding",properties:[{name:"inputDataRef",type:"InputSet",isAttr:!0,isReference:!0},{name:"outputDataRef",type:"OutputSet",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"Assignment",superClass:["BaseElement"],properties:[{name:"from",type:"Expression",xml:{serialize:"xsi:type"}},{name:"to",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"DataStore",superClass:["RootElement","ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"capacity",isAttr:!0,type:"Integer"},{name:"isUnlimited",default:!0,isAttr:!0,type:"Boolean"}]},{name:"DataStoreReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataStoreRef",type:"DataStore",isAttr:!0,isReference:!0}]},{name:"DataObjectReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataObjectRef",type:"DataObject",isAttr:!0,isReference:!0}]},{name:"ConversationLink",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ConversationAssociation",superClass:["BaseElement"],properties:[{name:"innerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0},{name:"outerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0}]},{name:"CallConversation",superClass:["ConversationNode"],properties:[{name:"calledCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"Conversation",superClass:["ConversationNode"]},{name:"SubConversation",superClass:["ConversationNode"],properties:[{name:"conversationNodes",type:"ConversationNode",isMany:!0}]},{name:"ConversationNode",isAbstract:!0,superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"messageFlowRefs",type:"MessageFlow",isMany:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0}]},{name:"GlobalConversation",superClass:["Collaboration"]},{name:"PartnerEntity",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"PartnerRole",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"CorrelationProperty",superClass:["RootElement"],properties:[{name:"correlationPropertyRetrievalExpression",type:"CorrelationPropertyRetrievalExpression",isMany:!0},{name:"name",isAttr:!0,type:"String"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Error",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"errorCode",isAttr:!0,type:"String"}]},{name:"CorrelationKey",superClass:["BaseElement"],properties:[{name:"correlationPropertyRef",type:"CorrelationProperty",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Expression",superClass:["BaseElement"],isAbstract:!1,properties:[{name:"body",isBody:!0,type:"String"}]},{name:"FormalExpression",superClass:["Expression"],properties:[{name:"language",isAttr:!0,type:"String"},{name:"evaluatesToTypeRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Message",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"itemRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"ItemDefinition",superClass:["RootElement"],properties:[{name:"itemKind",type:"ItemKind",isAttr:!0},{name:"structureRef",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"import",type:"Import",isAttr:!0,isReference:!0}]},{name:"FlowElement",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"categoryValueRef",type:"CategoryValue",isMany:!0,isReference:!0}]},{name:"SequenceFlow",superClass:["FlowElement"],properties:[{name:"isImmediate",isAttr:!0,type:"Boolean"},{name:"conditionExpression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"sourceRef",type:"FlowNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"FlowNode",isAttr:!0,isReference:!0}]},{name:"FlowElementsContainer",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"laneSets",type:"LaneSet",isMany:!0},{name:"flowElements",type:"FlowElement",isMany:!0}]},{name:"CallableElement",isAbstract:!0,superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"supportedInterfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"ioBinding",type:"InputOutputBinding",isMany:!0,xml:{serialize:"property"}}]},{name:"FlowNode",isAbstract:!0,superClass:["FlowElement"],properties:[{name:"incoming",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"outgoing",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"lanes",type:"Lane",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"CorrelationPropertyRetrievalExpression",superClass:["BaseElement"],properties:[{name:"messagePath",type:"FormalExpression"},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"CorrelationPropertyBinding",superClass:["BaseElement"],properties:[{name:"dataPath",type:"FormalExpression"},{name:"correlationPropertyRef",type:"CorrelationProperty",isAttr:!0,isReference:!0}]},{name:"Resource",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"resourceParameters",type:"ResourceParameter",isMany:!0}]},{name:"ResourceParameter",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isRequired",isAttr:!0,type:"Boolean"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"CorrelationSubscription",superClass:["BaseElement"],properties:[{name:"correlationKeyRef",type:"CorrelationKey",isAttr:!0,isReference:!0},{name:"correlationPropertyBinding",type:"CorrelationPropertyBinding",isMany:!0}]},{name:"MessageFlow",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"MessageFlowAssociation",superClass:["BaseElement"],properties:[{name:"innerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0},{name:"outerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0}]},{name:"InteractionNode",isAbstract:!0,properties:[{name:"incomingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0},{name:"outgoingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"Participant",superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"interfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"participantMultiplicity",type:"ParticipantMultiplicity"},{name:"endPointRefs",type:"EndPoint",isMany:!0,isReference:!0},{name:"processRef",type:"Process",isAttr:!0,isReference:!0}]},{name:"ParticipantAssociation",superClass:["BaseElement"],properties:[{name:"innerParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"outerParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"ParticipantMultiplicity",properties:[{name:"minimum",default:0,isAttr:!0,type:"Integer"},{name:"maximum",default:1,isAttr:!0,type:"Integer"}],superClass:["BaseElement"]},{name:"Collaboration",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"participants",type:"Participant",isMany:!0},{name:"messageFlows",type:"MessageFlow",isMany:!0},{name:"artifacts",type:"Artifact",isMany:!0},{name:"conversations",type:"ConversationNode",isMany:!0},{name:"conversationAssociations",type:"ConversationAssociation"},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0},{name:"messageFlowAssociations",type:"MessageFlowAssociation",isMany:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"choreographyRef",type:"Choreography",isMany:!0,isReference:!0},{name:"conversationLinks",type:"ConversationLink",isMany:!0}]},{name:"ChoreographyActivity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"loopType",type:"ChoreographyLoopType",default:"None",isAttr:!0}]},{name:"CallChoreography",superClass:["ChoreographyActivity"],properties:[{name:"calledChoreographyRef",type:"Choreography",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"SubChoreography",superClass:["ChoreographyActivity","FlowElementsContainer"],properties:[{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"ChoreographyTask",superClass:["ChoreographyActivity"],properties:[{name:"messageFlowRef",type:"MessageFlow",isMany:!0,isReference:!0}]},{name:"Choreography",superClass:["Collaboration","FlowElementsContainer"]},{name:"GlobalChoreographyTask",superClass:["Choreography"],properties:[{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"TextAnnotation",superClass:["Artifact"],properties:[{name:"text",type:"String"},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Group",superClass:["Artifact"],properties:[{name:"categoryValueRef",type:"CategoryValue",isAttr:!0,isReference:!0}]},{name:"Association",superClass:["Artifact"],properties:[{name:"associationDirection",type:"AssociationDirection",isAttr:!0},{name:"sourceRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"targetRef",type:"BaseElement",isAttr:!0,isReference:!0}]},{name:"Category",superClass:["RootElement"],properties:[{name:"categoryValue",type:"CategoryValue",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Artifact",isAbstract:!0,superClass:["BaseElement"]},{name:"CategoryValue",superClass:["BaseElement"],properties:[{name:"categorizedFlowElements",type:"FlowElement",isMany:!0,isVirtual:!0,isReference:!0},{name:"value",isAttr:!0,type:"String"}]},{name:"Activity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"isForCompensation",default:!1,isAttr:!0,type:"Boolean"},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"boundaryEventRefs",type:"BoundaryEvent",isMany:!0,isReference:!0},{name:"properties",type:"Property",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"startQuantity",default:1,isAttr:!0,type:"Integer"},{name:"resources",type:"ResourceRole",isMany:!0},{name:"completionQuantity",default:1,isAttr:!0,type:"Integer"},{name:"loopCharacteristics",type:"LoopCharacteristics"}]},{name:"ServiceTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"SubProcess",superClass:["Activity","FlowElementsContainer","InteractionNode"],properties:[{name:"triggeredByEvent",default:!1,isAttr:!0,type:"Boolean"},{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"LoopCharacteristics",isAbstract:!0,superClass:["BaseElement"]},{name:"MultiInstanceLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"isSequential",default:!1,isAttr:!0,type:"Boolean"},{name:"behavior",type:"MultiInstanceBehavior",default:"All",isAttr:!0},{name:"loopCardinality",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopDataInputRef",type:"ItemAwareElement",isReference:!0},{name:"loopDataOutputRef",type:"ItemAwareElement",isReference:!0},{name:"inputDataItem",type:"DataInput",xml:{serialize:"property"}},{name:"outputDataItem",type:"DataOutput",xml:{serialize:"property"}},{name:"complexBehaviorDefinition",type:"ComplexBehaviorDefinition",isMany:!0},{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"oneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0},{name:"noneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0}]},{name:"StandardLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"testBefore",default:!1,isAttr:!0,type:"Boolean"},{name:"loopCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopMaximum",type:"Integer",isAttr:!0}]},{name:"CallActivity",superClass:["Activity","InteractionNode"],properties:[{name:"calledElement",type:"String",isAttr:!0}]},{name:"Task",superClass:["Activity","InteractionNode"]},{name:"SendTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ReceiveTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ScriptTask",superClass:["Task"],properties:[{name:"scriptFormat",isAttr:!0,type:"String"},{name:"script",type:"String"}]},{name:"BusinessRuleTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"AdHocSubProcess",superClass:["SubProcess"],properties:[{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"ordering",type:"AdHocOrdering",isAttr:!0},{name:"cancelRemainingInstances",default:!0,isAttr:!0,type:"Boolean"}]},{name:"Transaction",superClass:["SubProcess"],properties:[{name:"protocol",isAttr:!0,type:"String"},{name:"method",isAttr:!0,type:"String"}]},{name:"GlobalScriptTask",superClass:["GlobalTask"],properties:[{name:"scriptLanguage",isAttr:!0,type:"String"},{name:"script",isAttr:!0,type:"String"}]},{name:"GlobalBusinessRuleTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"ComplexBehaviorDefinition",superClass:["BaseElement"],properties:[{name:"condition",type:"FormalExpression"},{name:"event",type:"ImplicitThrowEvent"}]},{name:"ResourceRole",superClass:["BaseElement"],properties:[{name:"resourceRef",type:"Resource",isReference:!0},{name:"resourceParameterBindings",type:"ResourceParameterBinding",isMany:!0},{name:"resourceAssignmentExpression",type:"ResourceAssignmentExpression"},{name:"name",isAttr:!0,type:"String"}]},{name:"ResourceParameterBinding",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"parameterRef",type:"ResourceParameter",isAttr:!0,isReference:!0}],superClass:["BaseElement"]},{name:"ResourceAssignmentExpression",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}}],superClass:["BaseElement"]},{name:"Import",properties:[{name:"importType",isAttr:!0,type:"String"},{name:"location",isAttr:!0,type:"String"},{name:"namespace",isAttr:!0,type:"String"}]},{name:"Definitions",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"targetNamespace",isAttr:!0,type:"String"},{name:"expressionLanguage",default:"http://www.w3.org/1999/XPath",isAttr:!0,type:"String"},{name:"typeLanguage",default:"http://www.w3.org/2001/XMLSchema",isAttr:!0,type:"String"},{name:"imports",type:"Import",isMany:!0},{name:"extensions",type:"Extension",isMany:!0},{name:"rootElements",type:"RootElement",isMany:!0},{name:"diagrams",isMany:!0,type:"bpmndi:BPMNDiagram"},{name:"exporter",isAttr:!0,type:"String"},{name:"relationships",type:"Relationship",isMany:!0},{name:"exporterVersion",isAttr:!0,type:"String"}]}],enumerations:[{name:"ProcessType",literalValues:[{name:"None"},{name:"Public"},{name:"Private"}]},{name:"GatewayDirection",literalValues:[{name:"Unspecified"},{name:"Converging"},{name:"Diverging"},{name:"Mixed"}]},{name:"EventBasedGatewayType",literalValues:[{name:"Parallel"},{name:"Exclusive"}]},{name:"RelationshipDirection",literalValues:[{name:"None"},{name:"Forward"},{name:"Backward"},{name:"Both"}]},{name:"ItemKind",literalValues:[{name:"Physical"},{name:"Information"}]},{name:"ChoreographyLoopType",literalValues:[{name:"None"},{name:"Standard"},{name:"MultiInstanceSequential"},{name:"MultiInstanceParallel"}]},{name:"AssociationDirection",literalValues:[{name:"None"},{name:"One"},{name:"Both"}]},{name:"MultiInstanceBehavior",literalValues:[{name:"None"},{name:"One"},{name:"All"},{name:"Complex"}]},{name:"AdHocOrdering",literalValues:[{name:"Parallel"},{name:"Sequential"}]}],xml:{tagAlias:"lowerCase",typePrefix:"t"}},bpmndi:{name:"BPMNDI",uri:"http://www.omg.org/spec/BPMN/20100524/DI",prefix:"bpmndi",types:[{name:"BPMNDiagram",properties:[{name:"plane",type:"BPMNPlane",redefines:"di:Diagram#rootElement"},{name:"labelStyle",type:"BPMNLabelStyle",isMany:!0}],superClass:["di:Diagram"]},{name:"BPMNPlane",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"}],superClass:["di:Plane"]},{name:"BPMNShape",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"isHorizontal",isAttr:!0,type:"Boolean"},{name:"isExpanded",isAttr:!0,type:"Boolean"},{name:"isMarkerVisible",isAttr:!0,type:"Boolean"},{name:"label",type:"BPMNLabel"},{name:"isMessageVisible",isAttr:!0,type:"Boolean"},{name:"participantBandKind",type:"ParticipantBandKind",isAttr:!0},{name:"choreographyActivityShape",type:"BPMNShape",isAttr:!0,isReference:!0}],superClass:["di:LabeledShape"]},{name:"BPMNEdge",properties:[{name:"label",type:"BPMNLabel"},{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"sourceElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#source"},{name:"targetElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#target"},{name:"messageVisibleKind",type:"MessageVisibleKind",isAttr:!0,default:"initiating"}],superClass:["di:LabeledEdge"]},{name:"BPMNLabel",properties:[{name:"labelStyle",type:"BPMNLabelStyle",isAttr:!0,isReference:!0,redefines:"di:DiagramElement#style"}],superClass:["di:Label"]},{name:"BPMNLabelStyle",properties:[{name:"font",type:"dc:Font"}],superClass:["di:Style"]}],enumerations:[{name:"ParticipantBandKind",literalValues:[{name:"top_initiating"},{name:"middle_initiating"},{name:"bottom_initiating"},{name:"top_non_initiating"},{name:"middle_non_initiating"},{name:"bottom_non_initiating"}]},{name:"MessageVisibleKind",literalValues:[{name:"initiating"},{name:"non_initiating"}]}],associations:[]},dc:{name:"DC",uri:"http://www.omg.org/spec/DD/20100524/DC",prefix:"dc",types:[{name:"Boolean"},{name:"Integer"},{name:"Real"},{name:"String"},{name:"Font",properties:[{name:"name",type:"String",isAttr:!0},{name:"size",type:"Real",isAttr:!0},{name:"isBold",type:"Boolean",isAttr:!0},{name:"isItalic",type:"Boolean",isAttr:!0},{name:"isUnderline",type:"Boolean",isAttr:!0},{name:"isStrikeThrough",type:"Boolean",isAttr:!0}]},{name:"Point",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0}]},{name:"Bounds",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0},{name:"width",type:"Real",isAttr:!0},{name:"height",type:"Real",isAttr:!0}]}],associations:[]},di:{name:"DI",uri:"http://www.omg.org/spec/DD/20100524/DI",prefix:"di",types:[{name:"DiagramElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"extension",type:"Extension"},{name:"owningDiagram",type:"Diagram",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"owningElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"modelElement",isReadOnly:!0,isVirtual:!0,isReference:!0,type:"Element"},{name:"style",type:"Style",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"ownedElement",type:"DiagramElement",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Node",isAbstract:!0,superClass:["DiagramElement"]},{name:"Edge",isAbstract:!0,superClass:["DiagramElement"],properties:[{name:"source",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"target",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"waypoint",isUnique:!1,isMany:!0,type:"dc:Point",xml:{serialize:"xsi:type"}}]},{name:"Diagram",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"rootElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0},{name:"name",isAttr:!0,type:"String"},{name:"documentation",isAttr:!0,type:"String"},{name:"resolution",isAttr:!0,type:"Real"},{name:"ownedStyle",type:"Style",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Shape",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Plane",isAbstract:!0,superClass:["Node"],properties:[{name:"planeElement",type:"DiagramElement",subsettedProperty:"DiagramElement-ownedElement",isMany:!0}]},{name:"LabeledEdge",isAbstract:!0,superClass:["Edge"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"LabeledShape",isAbstract:!0,superClass:["Shape"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"Label",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Style",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"}]},{name:"Extension",properties:[{name:"values",isMany:!0,type:"Element"}]}],associations:[],xml:{tagAlias:"lowerCase"}},bioc:{name:"bpmn.io colors for BPMN",uri:"http://bpmn.io/schema/bpmn/biocolor/1.0",prefix:"bioc",types:[{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]},color:{name:"BPMN in Color",uri:"http://www.omg.org/spec/BPMN/non-normative/color/1.0",prefix:"color",types:[{name:"ColoredLabel",extends:["bpmndi:BPMNLabel"],properties:[{name:"color",isAttr:!0,type:"String"}]},{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"background-color",isAttr:!0,type:"String"},{name:"border-color",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"border-color",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]}};function kr(e,t){return new Rr(E({},Sr,e),t)}var Cr="Tried to access di from the businessObject. The di is available through the diagram element only. For more information, see https://github.com/bpmn-io/bpmn-js/issues/1472";function Mr(e,t){return e.$instanceOf(t)}function Pr(e,t){var n={},i=[],r={};function o(e,t){return function(n){e(n,t)}}function a(e){n[e.id]=e}function s(n,i){try{var o=r[n.id]&&function(n,i){if(n.gfx)throw new Error(t("already rendered {element}",{element:At(n)}));return e.element(n,r[n.id],i)}(n,i);return a(n),o}catch(e){l(e.message,{element:n,error:e}),console.error(t("failed to import {element}",{element:At(n)})),console.error(e)}}function l(t,n){e.error(t,n)}var p=this.registerDi=function(e){var n,i=e.bpmnElement;i?r[i.id]?l(t("multiple DI elements defined for {element}",{element:At(i)}),{element:i}):(r[i.id]=e,c(n=i,"di")||Object.defineProperty(n,"di",{enumerable:!1,get:function(){throw new Error(Cr)}})):l(t("no bpmnElement referenced in {element}",{element:At(e)}),{element:e})};function m(e){var t;t=e.plane,p(t),f(t.planeElement,d)}function d(e){p(e)}this.handleDefinitions=function(a,s){var c=a.diagrams;if(s&&-1===c.indexOf(s))throw new Error(t("diagram not part of bpmn:Definitions"));if(!s&&c&&c.length&&(s=c[0]),!s)throw new Error(t("no diagram to display"));r={},m(s);var d=s.plane;if(!d)throw new Error(t("no plane for {element}",{element:At(s)}));var x=d.bpmnElement;if(!x){if(x=function(e){return u(e.rootElements,(function(e){return Mr(e,"bpmn:Process")||Mr(e,"bpmn:Collaboration")}))}(a),!x)throw new Error(t("no process or collaboration to display"));l(t("correcting missing bpmnElement on {plane} to {rootElement}",{plane:At(d),rootElement:At(x)})),d.bpmnElement=x,p(d)}var w,b,E=function(t,n){return e.root(t,r[t.id],n)}(x,d);if(Mr(x,"bpmn:Process")||Mr(x,"bpmn:SubProcess"))g(x,E);else{if(!Mr(x,"bpmn:Collaboration"))throw new Error(t("unsupported bpmnElement for {plane}: {rootElement}",{plane:At(d),rootElement:At(x)}));b=E,f((w=x).participants,o(N,b)),_(w.artifacts,b),i.push((function(){!function(e,t){f(e,o(v,t))}(w.messageFlows,b)})),function(e,t){var i=h(e,(function(e){return!n[e.id]&&Mr(e,"bpmn:Process")&&e.laneSets}));i.forEach(o(g,t))}(a.rootElements,E)}y(i)};var y=this.handleDeferred=function(){for(;i.length;)i.shift()()};function g(e,t){P(e,t),A(e.ioSpecification,t),_(e.artifacts,t),a(e)}function v(e,t){s(e,t)}function x(e,t){s(e,t)}function w(e,t){s(e,t)}function b(e,t){s(e,t)}function E(e,t){s(e,t)}function _(e,t){f(e,(function(e){Mr(e,"bpmn:Association")?i.push((function(){E(e,t)})):E(e,t)}))}function A(e,t){e&&(f(e.dataInputs,o(w,t)),f(e.dataOutputs,o(b,t)))}var R=this.handleSubProcess=function(e,t){P(e,t),_(e.artifacts,t)};function S(e,t){var n=s(e,t);Mr(e,"bpmn:SubProcess")&&R(e,n||t),Mr(e,"bpmn:Activity")&&A(e.ioSpecification,t),i.push((function(){f(e.dataInputAssociations,o(x,t)),f(e.dataOutputAssociations,o(x,t))}))}function k(e,t){s(e,t)}function C(e,t){i.push((function(){var n=s(e,t);e.childLaneSet&&M(e.childLaneSet,n||t),function(e){f(e.flowNodeRef,(function(t){var n=t.get("lanes");n&&n.push(e)}))}(e)}))}function M(e,t){f(e.lanes,o(C,t))}function P(e,n){!function(e,n){f(e,(function(e){Mr(e,"bpmn:SequenceFlow")?i.push((function(){!function(e,t){s(e,t)}(e,n)})):Mr(e,"bpmn:BoundaryEvent")?i.unshift((function(){S(e,n)})):Mr(e,"bpmn:FlowNode")?S(e,n):Mr(e,"bpmn:DataObject")||(Mr(e,"bpmn:DataStoreReference")||Mr(e,"bpmn:DataObjectReference")?k(e,n):l(t("unrecognized flowElement {element} in context {context}",{element:At(e),context:n?At(n.businessObject):"null"}),{element:e,context:n}))}))}(e.flowElements,n),e.laneSets&&function(e,t){f(e,o(M,t))}(e.laneSets,n)}function N(e,t){var n=s(e,t),i=e.processRef;i&&g(i,n||t)}}function Nr(e,t,n){var i,r,o,a,s=[];function l(e,t){var n=new Pr({root:function(e,t){return i.add(e,t)},element:function(e,t,n){return i.add(e,t,n)},error:function(e,t){s.push({message:e,context:t})}},o);t=t||e.diagrams&&e.diagrams[0];var r=function(e,t){if(!t)return;var n,i=t.plane.bpmnElement,r=i;R(i,"bpmn:Process")||R(i,"bpmn:Collaboration")||(r=function(e){var t=e;for(;t;){if(R(t,"bpmn:Process"))return t;t=t.$parent}} -/** - * This file must not be changed or exchanged. - * - * @see http://bpmn.io/license for more information. - */(i));n=R(r,"bpmn:Collaboration")?r:u(e.rootElements,(function(e){if(R(e,"bpmn:Collaboration"))return u(e.participants,(function(e){return e.processRef===r}))}));var o=[r];n&&(o=function(e,t){let n=[];return f(e,(function(e,i){n.push(t(e,i))})),n}(n.participants,(function(e){return e.processRef}))).push(n);var a=Tr(o),s=[t],l=[i];return f(e.diagrams,(function(e){var t=e.plane.bpmnElement;-1!==a.indexOf(t)&&-1===l.indexOf(t)&&(s.push(e),l.push(t))})),s}(e,t);if(!r)throw new Error(o("no diagram to display"));f(r,(function(t){n.handleDefinitions(e,t)}));var l=t.plane.bpmnElement.id;a.setRootElement(a.findRoot(l+"_plane")||a.findRoot(l))}return new Promise((function(p,c){try{return i=e.get("bpmnImporter"),r=e.get("eventBus"),o=e.get("translate"),a=e.get("canvas"),r.fire("import.render.start",{definitions:t}),l(t,n),r.fire("import.render.complete",{error:undefined,warnings:s}),p({warnings:s})}catch(e){return e.warnings=s,c(e)}}))}function Tr(e){var t=[];return f(e,(function(e){e&&(t.push(e),t=t.concat(Tr(e.flowElements)))})),t}var Or,Dr='',Br={verticalAlign:"middle"},Lr={color:"#404040"},Ir={zIndex:"1001",position:"fixed",top:"0",left:"0",right:"0",bottom:"0"},Fr={width:"100%",height:"100%",background:"rgba(40,40,40,0.2)"},jr={position:"absolute",left:"50%",top:"40%",transform:"translate(-50%)",width:"260px",padding:"10px",background:"white",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",display:"flex",lineHeight:"1.3"},Vr='
    '+Dr+'Web-based tooling for BPMN, DMN and forms powered by bpmn.io.
    ';function Wr(){Or||(Te(Or=Xe(Vr),Ir),Te(Ze("svg",Or),Br),Te(Ze(".backdrop",Or),Fr),Te(Ze(".notice",Or),jr),Te(Ze(".link",Or),Lr,{margin:"15px 20px 15px 10px",alignSelf:"center"}),Ke.bind(Or,".backdrop","click",(function(e){document.body.removeChild(Or)}))),document.body.appendChild(Or)} -/** - * The code in the area - * must not be changed. - * - * @see http://bpmn.io/license for more information. - */function zr(e){e=E({},$r,e),this._moddle=this._createModdle(e),this._container=this._createContainer(e), -/** - * Adds the project logo to the diagram container as - * required by the bpmn.io license. - * - * @see http://bpmn.io/license - * - * @param {Element} container - */ -function(e){const t=Xe(''+Dr+"");Te(Ze("svg",t),Br),Te(t,Lr,{position:"absolute",bottom:"15px",right:"15px",zIndex:"100"}),e.appendChild(t),Ge.bind(t,"click",(function(e){Wr(),e.preventDefault()}))}(this._container),this._init(this._container,this._moddle,e)}function Gr(e,t){return e.warnings=t,e}e(zr,ui),zr.prototype.importXML=async function(e,t){const n=this;let i=[];try{let o;e=this._emit("import.parse.start",{xml:e})||e;try{o=await this._moddle.fromXML(e,"bpmn:Definitions")}catch(e){throw this._emit("import.parse.complete",{error:e}),e}let a=o.rootElement;const s=o.references,l=o.warnings,p=o.elementsById;i=i.concat(l),a=this._emit("import.parse.complete",(r={error:null,definitions:a,elementsById:p,references:s,warnings:i},n.get("eventBus").createEvent(r)))||a;const c=await this.importDefinitions(a,t);return i=i.concat(c.warnings),this._emit("import.done",{error:null,warnings:i}),{warnings:i}}catch(e){let t=e;throw i=i.concat(t.warnings||[]),Gr(t,i),t=function(e){const t=/unparsable content <([^>]+)> detected([\s\S]*)$/.exec(e.message);t&&(e.message="unparsable content <"+t[1]+"> detected; this may indicate an invalid BPMN 2.0 diagram file"+t[2]);return e}(t),this._emit("import.done",{error:t,warnings:t.warnings}),t}var r},zr.prototype.importDefinitions=async function(e,t){this._setDefinitions(e);return{warnings:(await this.open(t)).warnings}},zr.prototype.open=async function(e){const t=this._definitions;let n=e;if(!t){const e=new Error("no XML imported");throw Gr(e,[]),e}if("string"==typeof e&&(n=function(e,t){if(!t)return null;return u(e.diagrams,(function(e){return e.id===t}))||null}(t,e),!n)){const t=new Error("BPMNDiagram <"+e+"> not found");throw Gr(t,[]),t}try{this.clear()}catch(e){throw Gr(e,[]),e}const{warnings:i}=await Nr(this,t,n);return{warnings:i}},zr.prototype.saveXML=async function(e){e=e||{};let t,n,i=this._definitions;try{if(!i)throw new Error("no definitions loaded");i=this._emit("saveXML.start",{definitions:i})||i;n=(await this._moddle.toXML(i,e)).xml,n=this._emit("saveXML.serialized",{xml:n})||n}catch(e){t=e}const r=t?{error:t}:{xml:n};if(this._emit("saveXML.done",r),t)throw t;return r},zr.prototype.saveSVG=async function(){let e,t;this._emit("saveSVG.start");try{const t=this.get("canvas"),n=t.getActiveLayer(),i=Ze("defs",t._svg),r=ae(n),o=i?""+ae(i)+"":"",a=n.getBBox();e='\n\x3c!-- created with bpmn-js / http://bpmn.io --\x3e\n\n'+o+r+""}catch(e){t=e}if(this._emit("saveSVG.done",{error:t,svg:e}),t)throw t;return{svg:e}},zr.prototype._setDefinitions=function(e){this._definitions=e},zr.prototype.getModules=function(){return this._modules},zr.prototype.clear=function(){this.getDefinitions()&&ui.prototype.clear.call(this)},zr.prototype.destroy=function(){ui.prototype.destroy.call(this),Je(this._container)},zr.prototype.on=function(e,t,n,i){return this.get("eventBus").on(e,t,n,i)},zr.prototype.off=function(e,t){this.get("eventBus").off(e,t)},zr.prototype.attachTo=function(e){if(!e)throw new Error("parentNode required");this.detach(),e.get&&e.constructor.prototype.jquery&&(e=e.get(0)),"string"==typeof e&&(e=Ze(e)),e.appendChild(this._container),this._emit("attach",{}),this.get("canvas").resized()},zr.prototype.getDefinitions=function(){return this._definitions},zr.prototype.detach=function(){const e=this._container,t=e.parentNode;t&&(this._emit("detach",{}),t.removeChild(e))},zr.prototype._init=function(e,t,n){const i=n.modules||this.getModules(n),r=n.additionalModules||[],o=[].concat([{bpmnjs:["value",this],moddle:["value",t]}],i,r),a=E(function(e,t){let n={};return f(Object(e),(function(e,i){-1===t.indexOf(i)&&(n[i]=e)})),n}(n,["additionalModules"]),{canvas:E({},n.canvas,{container:e}),modules:o});ui.call(this,a),n&&n.container&&this.attachTo(n.container)},zr.prototype._emit=function(e,t){return this.get("eventBus").fire(e,t)},zr.prototype._createContainer=function(e){const t=Xe('
    ');return Te(t,{width:Hr(e.width),height:Hr(e.height),position:e.position}),t},zr.prototype._createModdle=function(e){return new kr(E({},this._moddleExtensions,e.moddleExtensions))},zr.prototype._modules=[];const $r={width:"100%",height:"100%",position:"relative"};function Hr(e){return e+(s(e)?"px":"")}function Kr(e){zr.call(this,e)}return e(Kr,zr),Kr.prototype._modules=[Mt,xt,Yt,nn,En],Kr.prototype._moddleExtensions={},Kr})); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/assets/bpmn-js.css b/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/assets/bpmn-js.css similarity index 99% rename from src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/assets/bpmn-js.css rename to src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/assets/bpmn-js.css index f504803352065891f349b6c3715536b365604eff..ac1c97de980d199b419ee0c07cb06cdb95c02d59 100644 --- a/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/16.3.0/assets/bpmn-js.css +++ b/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/assets/bpmn-js.css @@ -142,4 +142,4 @@ margin: 0; height: 20px; width: 20px; -} \ No newline at end of file +} diff --git a/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/bpmn-viewer.production.min.js b/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/bpmn-viewer.production.min.js new file mode 100644 index 0000000000000000000000000000000000000000..d6b6d3bc2a17014d884a4335d0bd80a9ecf22dc6 --- /dev/null +++ b/src/main/resources/META-INF/resources/file/preview/static/bpmn-js/17.0.2/bpmn-viewer.production.min.js @@ -0,0 +1,22 @@ +/*! bpmn-js - bpmn-viewer v17.0.2 | Copyright (c) 2014-present, camunda Services GmbH | bpmn.io/license */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).BpmnJS=t()}(this,(function(){"use strict";function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}const t=Object.prototype.toString,n=Object.prototype.hasOwnProperty;function i(e){return void 0===e}function r(e){return void 0!==e}function o(e){return"[object Array]"===t.call(e)}function a(e){return"[object Object]"===t.call(e)}function s(e){return"[object Number]"===t.call(e)}function l(e){const n=t.call(e);return"[object Function]"===n||"[object AsyncFunction]"===n||"[object GeneratorFunction]"===n||"[object AsyncGeneratorFunction]"===n||"[object Proxy]"===n}function p(e){return"[object String]"===t.call(e)}function c(e,t){return n.call(e,t)}function u(e,t){const n=v(t);let i;return f(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function h(e,t){const n=v(t);let i=[];return f(e,(function(e,t){n(e,t)&&i.push(e)})),i}function f(e,t){let n,r;if(i(e))return;const a=o(e)?w:x;for(let i in e)if(c(e,i)&&(n=e[i],r=t(n,a(i)),!1===r))return n}function m(e,t,n){return f(e,(function(e,i){n=t(n,e,i)})),n}function d(e,t){return!!m(e,(function(e,n,i){return e&&t(n,i)}),!0)}function y(e,t){return!!u(e,t)}function g(e){return function(t){return d(e,(function(e,n){return t[n]===e}))}}function v(e){return l(e)?e:t=>t===e}function x(e){return e}function w(e){return Number(e)}function b(e,t){return e.bind(t)}function E(e,...t){return Object.assign(e,...t)}var _=1e3;function A(e,t){var n=this;t=t||_,e.on(["render.shape","render.connection"],t,(function(e,t){var i=e.type,r=t.element,o=t.gfx,a=t.attrs;if(n.canRender(r))return"render.shape"===i?n.drawShape(o,r,a):n.drawConnection(o,r,a)})),e.on(["render.getShapePath","render.getConnectionPath"],t,(function(e,t){if(n.canRender(t))return"render.getShapePath"===e.type?n.getShapePath(t):n.getConnectionPath(t)}))}function R(e,t){var n=S(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}function S(e){return e&&e.businessObject||e}function k(e){return e&&e.di}function C(e,t){return!R(e,"bpmn:CallActivity")&&(R(e,"bpmn:SubProcess")?!(!(t=t||k(e))||!R(t,"bpmndi:BPMNPlane"))||t&&!!t.isExpanded:!R(e,"bpmn:Participant")||!!S(e).processRef)}function M(e){if(R(e,"bpmn:Participant")||R(e,"bpmn:Lane")){var t=k(e).isHorizontal;return void 0===t||t}}A.prototype.canRender=function(e){},A.prototype.drawShape=function(e,t){},A.prototype.drawConnection=function(e,t){},A.prototype.getShapePath=function(e){},A.prototype.getConnectionPath=function(e){};var P={width:90,height:20},N=15;function T(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)],r=function(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)];return{x:n.x+(i.x-n.x)/2,y:n.y+(i.y-n.y)/2}}(e),o=Math.atan((i.y-n.y)/(i.x-n.x)),a=r.x,s=r.y;return Math.abs(o)"+e+"",t=!0);var n=function(e){var t;return(t=new DOMParser).async=!1,t.parseFromString(e,"text/xml")}(e);if(!t)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function Y(e,t){var n;return"<"===e.charAt(0)?(n=q(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(K.svg,e),t&&V(n,t),n}var X=null;function Z(){return null===X&&(X=Y("svg")),X}function J(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)e[i]=t[i];return e}function Q(e){return e?Z().createSVGTransformFromMatrix(e):Z().createSVGTransform()}var ee=/([&<>]{1})/g,te=/([\n\r"]{1})/g,ne={"&":"&","<":"<",">":">",'"':"'"};function ie(e,t){return e.replace(t,(function(e,t){return ne[t]||t}))}function re(e,t){var n,i,r,o,a;switch(e.nodeType){case 3:t.push(ie(e.textContent,ee));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(r=e.attributes).length;n"),n=0,i=(a=e.childNodes).length;n")}else t.push("/>");break;case 8:t.push("\x3c!--",ie(e.nodeValue,ee),"--\x3e");break;case 4:t.push("");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function oe(e,t){var n=q(t);if(H(e),t){(function(e){return"#document-fragment"===e.nodeName})(n)||(n=n.documentElement);for(var i,r=(i=n.childNodes,Array.prototype.slice.call(i)),o=0;o
    a',qe=!He.getElementsByTagName("link").length,He=void 0);var Ye={legend:[1,"
    ","
    "],tr:[2,"","
    "],col:[2,"","
    "],_default:qe?[1,"X
    ","
    "]:[0,"",""]};Ye.td=Ye.th=[3,"","
    "],Ye.option=Ye.optgroup=[1,'"],Ye.thead=Ye.tbody=Ye.colgroup=Ye.caption=Ye.tfoot=[1,"","
    "],Ye.polyline=Ye.ellipse=Ye.polygon=Ye.circle=Ye.text=Ye.line=Ye.path=Ye.rect=Ye.g=[1,'',""];var Xe=Ue;function Ze(e,t){return(t=t||document).querySelector(e)}function Je(e){e.parentNode&&e.parentNode.removeChild(e)}function Qe(e,t,n,i,r){var o=Q();o.setTranslate(t,n);var a=Q();a.setRotate(i||0,0,0);var s=Q();s.setScale(r||1,r||1),le(e,[o,a,s])}function et(e,t,n){var i=Q();i.setTranslate(t,n),le(e,i)}var tt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=e.exports=function(e,n){if(n||(n=16),void 0===e&&(e=128),e<=0)return"0";for(var i=Math.log(Math.pow(2,e))/Math.log(n),r=2;i===1/0;r*=2)i=Math.log(Math.pow(2,e/r))/Math.log(n)*r;var o=i-Math.floor(i),a="";for(r=0;r=Math.pow(2,e)?t(e,n):a};t.rack=function(e,n,i){var r=function(r){var a=0;do{if(a++>10){if(!i)throw new Error("too many ID collisions, use more bits");e+=i}var s=t(e,n)}while(Object.hasOwnProperty.call(o,s));return o[s]=r,s},o=r.hats={};return r.get=function(e){return r.hats[e]},r.set=function(e,t){return r.hats[e]=t,r},r.bits=e||128,r.base=n||16,r}}));function nt(e){if(!(this instanceof nt))return new nt(e);e=e||[128,36,1],this._seed=e.length?tt.rack(e[0],e[1],e[2]):e}nt.prototype.next=function(e){return this._seed(e||!0)},nt.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},nt.prototype.claim=function(e,t){this._seed.set(e,t||!0)},nt.prototype.assigned=function(e){return this._seed.get(e)||!1},nt.prototype.unclaim=function(e){delete this._seed.hats[e]},nt.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};var it=new nt,rt=.95;function ot(e,t,n,i,r,o,s){A.call(this,t,s);var l=e&&e.defaultFillColor,p=e&&e.defaultStrokeColor,c=e&&e.defaultLabelColor,u=it.next(),h={};function m(e){return n.computeStyle(e,{strokeLinecap:"round",strokeLinejoin:"round",stroke:ye,strokeWidth:2,fill:"white"})}function d(e){return n.computeStyle(e,["no-fill"],{strokeLinecap:"round",strokeLinejoin:"round",stroke:ye,strokeWidth:2})}function y(e,t){var{ref:n={x:0,y:0},scale:i=1,element:o}=t,a=Y("marker",{id:e,viewBox:"0 0 20 20",refX:n.x,refY:n.y,markerWidth:20*i,markerHeight:20*i,orient:"auto"});L(a,o);var s=Ze("defs",r._svg);s||(s=Y("defs"),L(r._svg,s)),L(s,a),h[e]=a}function g(e){return e.replace(/[^0-9a-zA-Z]+/g,"_")}function v(e,t,n){var i=e+"-"+g(t)+"-"+g(n)+"-"+u;return h[i]||function(e,t,n,i){if("sequenceflow-end"===t){y(e,{element:Y("path",{d:"M 1 5 L 11 10 L 1 15 Z",...m({fill:i,stroke:i,strokeWidth:1})}),ref:{x:11,y:10},scale:.5})}if("messageflow-start"===t){y(e,{element:Y("circle",{cx:6,cy:6,r:3.5,...m({fill:n,stroke:i,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:6,y:6}})}if("messageflow-end"===t){y(e,{element:Y("path",{d:"m 1 5 l 0 -3 l 7 3 l -7 3 z",...m({fill:n,stroke:i,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:8.5,y:5}})}if("association-start"===t){y(e,{element:Y("path",{d:"M 11 5 L 1 10 L 11 15",...d({fill:"none",stroke:i,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:1,y:10},scale:.5})}if("association-end"===t){y(e,{element:Y("path",{d:"M 1 5 L 11 10 L 1 15",...d({fill:"none",stroke:i,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:11,y:10},scale:.5})}if("conditional-flow-marker"===t){y(e,{element:Y("path",{d:"M 0 10 L 8 6 L 16 10 L 8 14 Z",...m({fill:n,stroke:i})}),ref:{x:-1,y:10},scale:.5})}if("conditional-default-flow-marker"===t){y(e,{element:Y("path",{d:"M 6 4 L 10 16",...m({stroke:i})}),ref:{x:0,y:10},scale:.5})}}(i,e,t,n),"url(#"+i+")"}function x(e,t,n,i,r={}){a(i)&&(r=i,i=0),i=i||0,r=m(r);var o=Y("circle",{cx:t/2,cy:n/2,r:Math.round((t+n)/4-i),...r});return L(e,o),o}function w(e,t,n,i,r,o){a(r)&&(o=r,r=0),r=r||0,o=m(o);var s=Y("rect",{x:r,y:r,width:t-2*r,height:n-2*r,rx:i,ry:i,...o});return L(e,s),s}function b(e,t,n,i){var r=me(t,n=d(n),i);return L(e,r),r}function _(e,t,n){return b(e,t,n,5)}function P(e,t,n){n=d(n);var i=Y("path",{...n,d:t});return L(e,i),i}function N(e,t,n,i){return P(t,n,E({"data-marker":e},i))}function T(e){return de[e]}function O(e){return function(t,n,i){return T(e)(t,n,i)}}var B=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_MESSAGE",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.235,my:.315}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:r?xe(t,l,n.fill):we(t,p,n.stroke),strokeWidth:1})},I=function(e,t,n={}){var r=x(e,t.width,t.height,.2*t.height,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:2});P(e,i.getScaledPath("EVENT_TIMER_WH",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),{stroke:we(t,p,n.stroke),strokeWidth:2});for(var o=0;o<12;o++){var a=i.getScaledPath("EVENT_TIMER_LINE",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),s=t.width/2,c=t.height/2;P(e,a,{strokeWidth:1,stroke:we(t,p,n.stroke),transform:"rotate("+30*o+","+c+","+s+")"})}return r},F=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_ESCALATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},j=function(e,t,n={}){return P(e,i.getScaledPath("EVENT_CONDITIONAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.222}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},W=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_LINK",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.57,my:.263}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},G=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_ERROR",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.2,my:.722}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},$=function(e,t,n={},r){var o=P(e,i.getScaledPath("EVENT_CANCEL_45",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.638,my:-.055}}),{fill:r?we(t,p,n.stroke):"none",stroke:we(t,p,n.stroke),strokeWidth:1});return function(e,t){var n=Q();n.setRotate(t,0,0),le(e,n)}(o,45),o},H=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.22,my:.5}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},K=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_SIGNAL",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{strokeWidth:1,fill:r?we(t,p,n.stroke):xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},U=function(e,t,n={},r){return P(e,i.getScaledPath("EVENT_MULTIPLE",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.222,my:.36}}),{fill:r?we(t,p,n.stroke):xe(t,l,n.fill),strokeWidth:1})},q=function(e,t,n={}){return P(e,i.getScaledPath("EVENT_PARALLEL_MULTIPLE",{xScaleFactor:1.2,yScaleFactor:1.2,containerWidth:t.width,containerHeight:t.height,position:{mx:.458,my:.194}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1})},X=function(e,t,n={}){return x(e,t.width,t.height,8,{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:4})};function Z(e,t,n={}){var i=S(e),r=function(e){return"bpmn:IntermediateThrowEvent"===e.$type||"bpmn:EndEvent"===e.$type}(i);return i.get("eventDefinitions")&&i.get("eventDefinitions").length>1?i.get("parallelMultiple")?q(t,e,n,r):U(t,e,n,r):ve(i,"bpmn:MessageEventDefinition")?B(t,e,n,r):ve(i,"bpmn:TimerEventDefinition")?I(t,e,n,r):ve(i,"bpmn:ConditionalEventDefinition")?j(t,e,n,r):ve(i,"bpmn:SignalEventDefinition")?K(t,e,n,r):ve(i,"bpmn:EscalationEventDefinition")?F(t,e,n,r):ve(i,"bpmn:LinkEventDefinition")?W(t,e,n,r):ve(i,"bpmn:ErrorEventDefinition")?G(t,e,n,r):ve(i,"bpmn:CancelEventDefinition")?$(t,e,n,r):ve(i,"bpmn:CompensateEventDefinition")?H(t,e,n,r):ve(i,"bpmn:TerminateEventDefinition")?X(t,e,n,r):null}var J={ParticipantMultiplicityMarker:function(e,t,n={}){var r=_e(t,n),o=Ae(t,n);N("participant-multiplicity",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2-6)/r,my:(o-15)/o}}),{strokeWidth:2,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},SubProcessMarker:function(e,t,n={}){et(w(e,14,14,0,{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)}),t.width/2-7.5,t.height-20),N("sub-process",e,i.getScaledPath("MARKER_SUB_PROCESS",{xScaleFactor:1.5,yScaleFactor:1.5,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2-7.5)/t.width,my:(t.height-20)/t.height}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},ParallelMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("parallel",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.parallel)/r,my:(o-20)/o}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},SequentialMarker:function(e,t,n){N("sequential",e,i.getScaledPath("MARKER_SEQUENTIAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.seq)/t.width,my:(t.height-19)/t.height}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},CompensationMarker:function(e,t,n){N("compensation",e,i.getScaledPath("MARKER_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.compensation)/t.width,my:(t.height-13)/t.height}}),{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})},LoopMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("loop",e,i.getScaledPath("MARKER_LOOP",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.loop)/r,my:(o-7)/o}}),{strokeWidth:1.5,fill:"none",stroke:we(t,p,n.stroke),strokeMiterlimit:.5})},AdhocMarker:function(e,t,n){var r=_e(t,n),o=Ae(t,n);N("adhoc",e,i.getScaledPath("MARKER_ADHOC",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:(r/2+n.adhoc)/r,my:(o-15)/o}}),{strokeWidth:1,fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke)})}};function ee(e,t,n,i){J[e](t,n,i)}function te(e,t,n,i={}){i={fill:i.fill,stroke:i.stroke,width:_e(t,i),height:Ae(t,i)};var r=S(t),o=n&&n.includes("SubProcessMarker");i=o?{...i,seq:-21,parallel:-22,compensation:-42,loop:-18,adhoc:10}:{...i,seq:-5,parallel:-6,compensation:-27,loop:0,adhoc:10},f(n,(function(n){ee(n,e,t,i)})),r.get("isForCompensation")&&ee("CompensationMarker",e,t,i),R(r,"bpmn:AdHocSubProcess")&&ee("AdhocMarker",e,t,i);var a=r.get("loopCharacteristics"),s=a&&a.get("isSequential");a&&(void 0===s&&ee("LoopMarker",e,t,i),!1===s&&ee("ParallelMarker",e,t,i),!0===s&&ee("SequentialMarker",e,t,i))}function ne(e,t,n={}){n=E({size:{width:100}},n);var i=o.createText(t||"",n);return z(i).add("djs-label"),L(e,i),i}function ie(e,t,n,i={}){var r=S(t),o=Ee({x:t.x,y:t.y,width:t.width,height:t.height},i);return ne(e,r.name,{align:n,box:o,padding:7,style:{fill:be(t,c,p,i.stroke)}})}function re(e,t,n,i={}){var r=M(n),o=ne(e,t,{box:{height:30,width:r?Ae(n,i):_e(n,i)},align:"center-middle",style:{fill:be(n,c,p,i.stroke)}});r&&Qe(o,0,-(-1*Ae(n,i)),270)}function oe(e,t,n={}){var{width:i,height:r}=Ee(t,n);return w(e,i,r,10,{...n,fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke)})}function ae(e,t,n={}){var i=S(t),r=xe(t,l,n.fill),o=we(t,p,n.stroke);return"One"!==i.get("associationDirection")&&"Both"!==i.get("associationDirection")||(n.markerEnd=v("association-end",r,o)),"Both"===i.get("associationDirection")&&(n.markerStart=v("association-start",r,o)),n=at(n,["markerStart","markerEnd"]),_(e,t.waypoints,{...n,stroke:o,strokeDasharray:"0, 5"})}function se(e,t,n={}){var r=xe(t,l,n.fill),o=we(t,p,n.stroke),a=P(e,i.getScaledPath("DATA_OBJECT_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}}),{fill:r,fillOpacity:rt,stroke:o});(function(e){var t=e.dataObjectRef;return e.isCollection||t&&t.isCollection})(S(t))&&P(e,i.getScaledPath("DATA_OBJECT_COLLECTION_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.33,my:(t.height-18)/t.height}}),{strokeWidth:2,fill:r,stroke:o});return a}function pe(e,t,n={}){return x(e,t.width,t.height,{fillOpacity:rt,...n,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)})}function ce(e,t,n={}){return function(e,t,n,i){var r=t/2,o=n/2,a=[{x:r,y:0},{x:t,y:o},{x:r,y:n},{x:0,y:o}].map((function(e){return e.x+","+e.y})).join(" ");i=m(i);var s=Y("polygon",{...i,points:a});return L(e,s),s}(e,t.width,t.height,{fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke)})}function ue(e,t,n={}){var i=w(e,_e(t,n),Ae(t,n),0,{fill:xe(t,l,n.fill),fillOpacity:n.fillOpacity||rt,stroke:we(t,p,n.stroke),strokeWidth:1.5}),r=S(t);R(r,"bpmn:Lane")&&re(e,r.get("name"),t,n);return i}function he(e,t,n={}){var i=oe(e,t,n);(function(e){return e&&!!S(e).triggeredByEvent})(t)&&V(i,{strokeDasharray:"0, 5.5",strokeWidth:2.5});var r=C(t);return ie(e,t,r?"center-top":"center-middle",n),te(e,t,r?void 0:["SubProcessMarker"],n),i}function fe(e,t,n={}){var i=oe(e,t,n);return ie(e,t,"center-middle",n),te(e,t,void 0,n),i}var de=this.handlers={"bpmn:AdHocSubProcess":function(e,t,n={}){return he(e,t,n=C(t)?at(n,["fill","stroke","width","height"]):at(n,["fill","stroke"]))},"bpmn:Association":function(e,t,n={}){return ae(e,t,n=at(n,["fill","stroke"]))},"bpmn:BoundaryEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=S(t).get("cancelActivity");n={strokeWidth:1.5,fill:xe(t,l,n.fill),fillOpacity:1,stroke:we(t,p,n.stroke)},r||(n.strokeDasharray="6");var o=pe(e,t,n);return x(e,t.width,t.height,3,{...n,fill:"none"}),i&&Z(t,e,n),o},"bpmn:BusinessRuleTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return V(P(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_MAIN",{abspos:{x:8,y:8}})),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),V(P(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_HEADER",{abspos:{x:8,y:8}})),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:CallActivity":function(e,t,n={}){return n=at(n,["fill","stroke"]),he(e,t,{strokeWidth:5,...n})},"bpmn:ComplexGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("GATEWAY_COMPLEX",{xScaleFactor:.5,yScaleFactor:.5,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.26}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:DataInput":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=i.getRawPath("DATA_ARROW"),o=se(e,t,n);return P(e,r,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1}),o},"bpmn:DataInputAssociation":function(e,t,n={}){return n=at(n,["fill","stroke"]),ae(e,t,{...n,markerEnd:v("association-end",xe(t,l,n.fill),we(t,p,n.stroke))})},"bpmn:DataObject":function(e,t,n={}){return se(e,t,n=at(n,["fill","stroke"]))},"bpmn:DataObjectReference":O("bpmn:DataObject"),"bpmn:DataOutput":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=i.getRawPath("DATA_ARROW"),o=se(e,t,n);return P(e,r,{strokeWidth:1,fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke)}),o},"bpmn:DataOutputAssociation":function(e,t,n={}){return n=at(n,["fill","stroke"]),ae(e,t,{...n,markerEnd:v("association-end",xe(t,l,n.fill),we(t,p,n.stroke))})},"bpmn:DataStoreReference":function(e,t,n={}){return n=at(n,["fill","stroke"]),P(e,i.getScaledPath("DATA_STORE",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:.133}}),{fill:xe(t,l,n.fill),fillOpacity:rt,stroke:we(t,p,n.stroke),strokeWidth:2})},"bpmn:EndEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=pe(e,t,{...n,strokeWidth:4});return i&&Z(t,e,n),r},"bpmn:EventBasedGateway":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=S(t),o=ce(e,t,n);x(e,t.width,t.height,.2*t.height,{fill:xe(t,"none",n.fill),stroke:we(t,p,n.stroke),strokeWidth:1});var a=r.get("eventGatewayType"),s=!!r.get("instantiate");if("Parallel"===a){var l=i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}});P(e,l,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1})}else"Exclusive"===a&&(s||x(e,t.width,t.height,.26*t.height,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1}),function(){var r=i.getScaledPath("GATEWAY_EVENT_BASED",{xScaleFactor:.18,yScaleFactor:.18,containerWidth:t.width,containerHeight:t.height,position:{mx:.36,my:.44}});P(e,r,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:2})}());return o},"bpmn:ExclusiveGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"])),o=i.getScaledPath("GATEWAY_EXCLUSIVE",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.32,my:.3}});return k(t).get("isMarkerVisible")&&P(e,o,{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:Gateway":function(e,t,n={}){return ce(e,t,n=at(n,["fill","stroke"]))},"bpmn:Group":function(e,t,n={}){return n=at(n,["fill","stroke","width","height"]),w(e,t.width,t.height,10,{stroke:we(t,p,n.stroke),strokeWidth:1.5,strokeDasharray:"10, 6, 0, 6",fill:"none",pointerEvents:"none",width:_e(t,n),height:Ae(t,n)})},"bpmn:InclusiveGateway":function(e,t,n={}){var i=ce(e,t,n=at(n,["fill","stroke"]));return x(e,t.width,t.height,.24*t.height,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:2.5}),i},"bpmn:IntermediateEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]);var r=pe(e,t,{...n,strokeWidth:1.5});return x(e,t.width,t.height,3,{fill:"none",stroke:we(t,p,n.stroke),strokeWidth:1.5}),i&&Z(t,e,n),r},"bpmn:IntermediateCatchEvent":O("bpmn:IntermediateEvent"),"bpmn:IntermediateThrowEvent":O("bpmn:IntermediateEvent"),"bpmn:Lane":function(e,t,n={}){return n=at(n,["fill","stroke","width","height"]),ue(e,t,{...n,fillOpacity:.25})},"bpmn:ManualTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_MANUAL",{abspos:{x:17,y:15}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),r},"bpmn:MessageFlow":function(e,t,n={}){n=at(n,["fill","stroke"]);var r=S(t),o=k(t),a=xe(t,l,n.fill),s=we(t,p,n.stroke),c=_(e,t.waypoints,{markerEnd:v("messageflow-end",a,s),markerStart:v("messageflow-start",a,s),stroke:s,strokeDasharray:"10, 11",strokeWidth:1.5});if(r.get("messageRef")){var u=c.getPointAtLength(c.getTotalLength()/2),h=i.getScaledPath("MESSAGE_FLOW_MARKER",{abspos:{x:u.x,y:u.y}}),f={strokeWidth:1};"initiating"===o.get("messageVisibleKind")?(f.fill=a,f.stroke=s):(f.fill=s,f.stroke=a);var m=P(e,h,f),d=ne(e,r.get("messageRef").get("name"),{align:"center-top",fitBox:!0,style:{fill:s}}),y=m.getBBox(),g=d.getBBox();Qe(d,u.x-g.width/2,u.y+y.height/2+10,0)}return c},"bpmn:ParallelGateway":function(e,t,n={}){var r=ce(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.6,yScaleFactor:.6,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.2}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:Participant":function(e,t,n={}){var i=ue(e,t,n=at(n,["fill","stroke","width","height"])),r=C(t),o=M(t),a=S(t),s=a.get("name");if(r){b(e,o?[{x:30,y:0},{x:30,y:Ae(t,n)}]:[{x:0,y:30},{x:_e(t,n),y:30}],{stroke:we(t,p,n.stroke),strokeWidth:1.5}),re(e,s,t,n)}else{var l=Ee(t,n);o||(l.height=_e(t,n),l.width=Ae(t,n));var u=ne(e,s,{box:l,align:"center-middle",style:{fill:be(t,c,p,n.stroke)}});if(!o)Qe(u,0,-(-1*Ae(t,n)),270)}return a.get("participantMultiplicity")&&ee("ParticipantMultiplicityMarker",e,t,n),i},"bpmn:ReceiveTask":function(e,t,n={}){n=at(n,["fill","stroke"]);var r,o=S(t),a=fe(e,t,n);return o.get("instantiate")?(x(e,28,28,4.4,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r=i.getScaledPath("TASK_TYPE_INSTANTIATING_SEND",{abspos:{x:7.77,y:9.52}})):r=i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:21,containerHeight:14,position:{mx:.3,my:.4}}),P(e,r,{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),a},"bpmn:ScriptTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_SCRIPT",{abspos:{x:15,y:20}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:SendTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:1,yScaleFactor:1,containerWidth:21,containerHeight:14,position:{mx:.285,my:.357}}),{fill:we(t,p,n.stroke),stroke:xe(t,l,n.fill),strokeWidth:1}),r},"bpmn:SequenceFlow":function(e,t,n={}){n=at(n,["fill","stroke"]);var i=xe(t,l,n.fill),r=we(t,p,n.stroke),o=_(e,t.waypoints,{markerEnd:v("sequenceflow-end",i,r),stroke:r}),a=S(t),{source:s}=t;if(s){var c=S(s);a.get("conditionExpression")&&R(c,"bpmn:Activity")&&V(o,{markerStart:v("conditional-flow-marker",i,r)}),c.get("default")&&(R(c,"bpmn:Gateway")||R(c,"bpmn:Activity"))&&c.get("default")===a&&V(o,{markerStart:v("conditional-default-flow-marker",i,r)})}return o},"bpmn:ServiceTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return x(e,10,10,{fill:xe(t,l,n.fill),stroke:"none",transform:"translate(6, 6)"}),P(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:12,y:18}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),x(e,10,10,{fill:xe(t,l,n.fill),stroke:"none",transform:"translate(11, 10)"}),P(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:17,y:22}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:1}),r},"bpmn:StartEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=at(n,["fill","stroke"]),S(t).get("isInterrupting")||(n={...n,strokeDasharray:"6"});var r=pe(e,t,n);return i&&Z(t,e,n),r},"bpmn:SubProcess":function(e,t,n={}){return he(e,t,n=C(t)?at(n,["fill","stroke","width","height"]):at(n,["fill","stroke"]))},"bpmn:Task":function(e,t,n={}){return fe(e,t,n=at(n,["fill","stroke"]))},"bpmn:TextAnnotation":function(e,t,n={}){n=at(n,["fill","stroke","width","height"]);var{width:r,height:o}=Ee(t,n),a=w(e,r,o,0,0,{fill:"none",stroke:"none"});return P(e,i.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:r,containerHeight:o,position:{mx:0,my:0}}),{stroke:we(t,p,n.stroke)}),ne(e,S(t).get("text")||"",{align:"left-top",box:Ee(t,n),padding:7,style:{fill:be(t,c,p,n.stroke)}}),a},"bpmn:Transaction":function(e,t,i={}){i=C(t)?at(i,["fill","stroke","width","height"]):at(i,["fill","stroke"]);var r=he(e,t,{strokeWidth:1.5,...i}),o=n.style(["no-fill","no-events"],{stroke:we(t,p,i.stroke),strokeWidth:1.5});return C(t)||(i={}),w(e,_e(t,i),Ae(t,i),7,3,o),r},"bpmn:UserTask":function(e,t,n={}){var r=fe(e,t,n=at(n,["fill","stroke"]));return P(e,i.getScaledPath("TASK_TYPE_USER_1",{abspos:{x:15,y:12}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),P(e,i.getScaledPath("TASK_TYPE_USER_2",{abspos:{x:15,y:12}}),{fill:xe(t,l,n.fill),stroke:we(t,p,n.stroke),strokeWidth:.5}),P(e,i.getScaledPath("TASK_TYPE_USER_3",{abspos:{x:15,y:12}}),{fill:we(t,p,n.stroke),stroke:we(t,p,n.stroke),strokeWidth:.5}),r},label:function(e,t,n={}){return function(e,t,n={}){var i={width:90,height:30,x:t.width/2+t.x,y:t.height/2+t.y};return ne(e,D(t),{box:i,fitBox:!0,style:E({},o.getExternalStyle(),{fill:be(t,c,p,n.stroke)})})}(e,t,n)}};this._drawPath=P,this._renderer=T}function at(e,t=[]){return t.reduce(((t,n)=>(e[n]&&(t[n]=e[n]),t)),{})}e(ot,A),ot.$inject=["config.bpmnRenderer","eventBus","styles","pathMap","canvas","textRenderer"],ot.prototype.canRender=function(e){return R(e,"bpmn:BaseElement")},ot.prototype.drawShape=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},ot.prototype.drawConnection=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},ot.prototype.getShapePath=function(e){return R(e,"bpmn:Event")?(n=(t=e).x+t.width/2,i=t.y+t.height/2,r=t.width/2,pe([["M",n,i],["m",0,-r],["a",r,r,0,1,1,0,2*r],["a",r,r,0,1,1,0,-2*r],["z"]])):R(e,"bpmn:Activity")?function(e,t){var n=e.x,i=e.y,r=e.width,o=e.height;return pe([["M",n+t,i],["l",r-2*t,0],["a",t,t,0,0,1,t,t],["l",0,o-2*t],["a",t,t,0,0,1,-t,t],["l",2*t-r,0],["a",t,t,0,0,1,-t,-t],["l",0,2*t-o],["a",t,t,0,0,1,t,-t],["z"]])}(e,10):R(e,"bpmn:Gateway")?function(e){var t=e.width/2,n=e.height/2;return pe([["M",e.x+t,e.y],["l",t,n],["l",-t,n],["l",-t,-n],["z"]])}(e):function(e){var t=e.x,n=e.y,i=e.width;return pe([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])}(e);var t,n,i,r};var st=0,lt={width:150,height:50};function pt(e,t){var n;t.textContent=e;try{var i,r=""===e;return t.textContent=r?"dummy":e,i={width:(n=t.getBBox()).width+2*n.x,height:n.height},r&&(i.width=0),i}catch(e){return{width:0,height:0}}}function ct(e,t,n){for(var i,r=e.shift(),o=r;;){if((i=pt(o,n)).width=o?i.width:0," "===o||""===o||i.width1)for(;n=i.shift();){if(!(n.length+oe?t.width:e}),0),g=o.top;"middle"===r.vertical&&(g+=(n.height-d)/2),g-=(l||c[0].height)/4;var v=Y("text");return V(v,i),f(c,(function(e){var t;switch(g+=l||e.height,r.horizontal){case"left":t=o.left;break;case"right":t=(s?y:u)-o.right-e.width;break;default:t=Math.max(((s?y:u)-e.width)/2+o.left,0)}var n=Y("tspan");V(n,{x:t,y:g}),n.textContent=e.text,L(v,n)})),$(h),{dimensions:{width:y,height:d},element:v}};function dt(e){var t=E({fontFamily:"Arial, sans-serif",fontSize:12,fontWeight:"normal",lineHeight:1.2},e&&e.defaultStyle||{}),n=parseInt(t.fontSize,10)-1,i=E({},t,{fontSize:n},e&&e.externalStyle||{}),r=new mt({style:t});this.getExternalLabelBounds=function(e,t){var n=r.getDimensions(t,{box:{width:90,height:30},style:i});return{x:Math.round(e.x+e.width/2-n.width/2),y:Math.round(e.y),width:Math.ceil(n.width),height:Math.ceil(n.height)}},this.getTextAnnotationBounds=function(e,n){var i=r.getDimensions(n,{box:e,style:t,align:"left-top",padding:5});return{x:e.x,y:e.y,width:e.width,height:Math.max(30,Math.round(i.height))}},this.createText=function(e,t){return r.createText(e,t||{})},this.getDefaultStyle=function(){return t},this.getExternalStyle=function(){return i}}dt.$inject=["config.textRenderer"];var yt=/\{([^{}]+)\}/g,gt=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g;var vt={__init__:["bpmnRenderer"],bpmnRenderer:["type",ot],textRenderer:["type",dt],pathMap:["type",function(){this.pathMap={EVENT_MESSAGE:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:36,width:36,heightElements:[6,14],widthElements:[10.5,21]},EVENT_SIGNAL:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z",height:36,width:36,heightElements:[18],widthElements:[10,20]},EVENT_ESCALATION:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z",height:36,width:36,heightElements:[20,7],widthElements:[8]},EVENT_CONDITIONAL:{d:"M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z M {e.x2},{e.y3} l {e.x0},0 M {e.x2},{e.y4} l {e.x0},0 M {e.x2},{e.y5} l {e.x0},0 M {e.x2},{e.y6} l {e.x0},0 M {e.x2},{e.y7} l {e.x0},0 M {e.x2},{e.y8} l {e.x0},0 ",height:36,width:36,heightElements:[8.5,14.5,18,11.5,14.5,17.5,20.5,23.5,26.5],widthElements:[10.5,14.5,12.5]},EVENT_LINK:{d:"m {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z",height:36,width:36,heightElements:[4.4375,6.75,7.8125],widthElements:[9.84375,13.5]},EVENT_ERROR:{d:"m {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z",height:36,width:36,heightElements:[.023,8.737,8.151,16.564,10.591,8.714],widthElements:[.085,6.672,6.97,4.273,5.337,6.636]},EVENT_CANCEL_45:{d:"m {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:36,width:36,heightElements:[4.75,8.5],widthElements:[4.75,8.5]},EVENT_COMPENSATION:{d:"m {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z",height:36,width:36,heightElements:[6.5,13,.4,6.1],widthElements:[9,9.3,8.7]},EVENT_TIMER_WH:{d:"M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ",height:36,width:36,heightElements:[10,2],widthElements:[3,7]},EVENT_TIMER_LINE:{d:"M {mx},{my} m {e.x0},{e.y0} l -{e.x1},{e.y1} ",height:36,width:36,heightElements:[10,3],widthElements:[0,0]},EVENT_MULTIPLE:{d:"m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z",height:36,width:36,heightElements:[6.28099,12.56199],widthElements:[3.1405,9.42149,12.56198]},EVENT_PARALLEL_MULTIPLE:{d:"m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} -{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z",height:36,width:36,heightElements:[2.56228,7.68683],widthElements:[2.56228,7.68683]},GATEWAY_EXCLUSIVE:{d:"m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} {e.x4},{e.y1} {e.x2},0 {e.x1},{e.y3} {e.x0},{e.y3} {e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z",height:17.5,width:17.5,heightElements:[8.5,6.5312,-6.5312,-8.5],widthElements:[6.5,-6.5,3,-3,5,-5]},GATEWAY_PARALLEL:{d:"m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:30,width:30,heightElements:[5,12.5],widthElements:[5,12.5]},GATEWAY_EVENT_BASED:{d:"m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z",height:11,width:11,heightElements:[-6,6,12,-12],widthElements:[9,-3,-12]},GATEWAY_COMPLEX:{d:"m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} {e.x2},0 -{e.x0},{e.y1} l {e.x1},{e.y2} {e.x0},-{e.y1} 0,{e.y0} {e.x3},0 0,-{e.y0} {e.x0},{e.y1} {e.x1},-{e.y2} -{e.x0},-{e.y1} {e.x2},0 0,-{e.y3} -{e.x2},0 {e.x0},-{e.y1} -{e.x1},-{e.y2} -{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z",height:17.125,width:17.125,heightElements:[4.875,3.4375,2.125,3],widthElements:[3.4375,2.125,4.875,3]},DATA_OBJECT_PATH:{d:"m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0",height:61,width:51,heightElements:[10,50,60],widthElements:[10,40,50,60]},DATA_OBJECT_COLLECTION_PATH:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},DATA_ARROW:{d:"m 5,9 9,0 0,-3 5,5 -5,5 0,-3 -9,0 z",height:61,width:51,heightElements:[],widthElements:[]},DATA_STORE:{d:"m {mx},{my} l 0,{e.y2} c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 l 0,-{e.y2} c -{e.x0},-{e.y1} -{e.x1},-{e.y1} -{e.x2},0c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0",height:61,width:61,heightElements:[7,10,45],widthElements:[2,58,60]},TEXT_ANNOTATION:{d:"m {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0",height:30,width:10,heightElements:[30],widthElements:[10]},MARKER_SUB_PROCESS:{d:"m{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_PARALLEL:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},MARKER_SEQUENTIAL:{d:"m{mx},{my} m 0,3 l 10,0 m -10,3 l 10,0 m -10,3 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_COMPENSATION:{d:"m {mx},{my} 7,-5 0,10 z m 7.1,-0.3 6.9,-4.7 0,10 -6.9,-4.7 z",height:10,width:21,heightElements:[],widthElements:[]},MARKER_LOOP:{d:"m {mx},{my} c 3.526979,0 6.386161,-2.829858 6.386161,-6.320661 0,-3.490806 -2.859182,-6.320661 -6.386161,-6.320661 -3.526978,0 -6.38616,2.829855 -6.38616,6.320661 0,1.745402 0.714797,3.325567 1.870463,4.469381 0.577834,0.571908 1.265885,1.034728 2.029916,1.35457 l -0.718163,-3.909793 m 0.718163,3.909793 -3.885211,0.802902",height:13.9,width:13.7,heightElements:[],widthElements:[]},MARKER_ADHOC:{d:"m {mx},{my} m 0.84461,2.64411 c 1.05533,-1.23780996 2.64337,-2.07882 4.29653,-1.97997996 2.05163,0.0805 3.85579,1.15803 5.76082,1.79107 1.06385,0.34139996 2.24454,0.1438 3.18759,-0.43767 0.61743,-0.33642 1.2775,-0.64078 1.7542,-1.17511 0,0.56023 0,1.12046 0,1.6807 -0.98706,0.96237996 -2.29792,1.62393996 -3.6918,1.66181996 -1.24459,0.0927 -2.46671,-0.2491 -3.59505,-0.74812 -1.35789,-0.55965 -2.75133,-1.33436996 -4.27027,-1.18121996 -1.37741,0.14601 -2.41842,1.13685996 -3.44288,1.96782996 z",height:4,width:15,heightElements:[],widthElements:[]},TASK_TYPE_SEND:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:14,width:21,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_SCRIPT:{d:"m {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 c -10.969894,7.01868 6.997585,8.66524 -2.968967,14.938 z m -7,-12 l 5,0 m -4.5,3 l 4.5,0 m -3,3 l 5,0m -4,3 l 5,0",height:15,width:12.6,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_USER_1:{d:"m {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 -4.357,-4.62199999 -2.55199998,0 -4.28799998,2.06799999 -4.28799998,4.62199999 0,1.348 0.974,2.562 1.89599998,3.405 -0.52899998,0.187 -5.669,2.097 -5.794,4.7560005 v 6.718 h 17 v -6.718 c 0,-2.2980005 -5.5279996,-4.5950005 -6.0509996,-4.7760005 zm -8,6 l 0,5.5 m 11,0 l 0,-5"},TASK_TYPE_USER_2:{d:"m {mx},{my} m 2.162,1.009 c 0,2.4470005 -2.158,4.4310005 -4.821,4.4310005 -2.66499998,0 -4.822,-1.981 -4.822,-4.4310005 "},TASK_TYPE_USER_3:{d:"m {mx},{my} m -6.9,-3.80 c 0,0 2.25099998,-2.358 4.27399998,-1.177 2.024,1.181 4.221,1.537 4.124,0.965 -0.098,-0.57 -0.117,-3.79099999 -4.191,-4.13599999 -3.57499998,0.001 -4.20799998,3.36699999 -4.20699998,4.34799999 z"},TASK_TYPE_MANUAL:{d:"m {mx},{my} c 0.234,-0.01 5.604,0.008 8.029,0.004 0.808,0 1.271,-0.172 1.417,-0.752 0.227,-0.898 -0.334,-1.314 -1.338,-1.316 -2.467,-0.01 -7.886,-0.004 -8.108,-0.004 -0.014,-0.079 0.016,-0.533 0,-0.61 0.195,-0.042 8.507,0.006 9.616,0.002 0.877,-0.007 1.35,-0.438 1.353,-1.208 0.003,-0.768 -0.479,-1.09 -1.35,-1.091 -2.968,-0.002 -9.619,-0.013 -9.619,-0.013 v -0.591 c 0,0 5.052,-0.016 7.225,-0.016 0.888,-0.002 1.354,-0.416 1.351,-1.193 -0.006,-0.761 -0.492,-1.196 -1.361,-1.196 -3.473,-0.005 -10.86,-0.003 -11.0829995,-0.003 -0.022,-0.047 -0.045,-0.094 -0.069,-0.139 0.3939995,-0.319 2.0409995,-1.626 2.4149995,-2.017 0.469,-0.4870005 0.519,-1.1650005 0.162,-1.6040005 -0.414,-0.511 -0.973,-0.5 -1.48,-0.236 -1.4609995,0.764 -6.5999995,3.6430005 -7.7329995,4.2710005 -0.9,0.499 -1.516,1.253 -1.882,2.19 -0.37000002,0.95 -0.17,2.01 -0.166,2.979 0.004,0.718 -0.27300002,1.345 -0.055,2.063 0.629,2.087 2.425,3.312 4.859,3.318 4.6179995,0.014 9.2379995,-0.139 13.8569995,-0.158 0.755,-0.004 1.171,-0.301 1.182,-1.033 0.012,-0.754 -0.423,-0.969 -1.183,-0.973 -1.778,-0.01 -5.824,-0.004 -6.04,-0.004 10e-4,-0.084 0.003,-0.586 10e-4,-0.67 z"},TASK_TYPE_INSTANTIATING_SEND:{d:"m {mx},{my} l 0,8.4 l 12.6,0 l 0,-8.4 z l 6.3,3.6 l 6.3,-3.6"},TASK_TYPE_SERVICE:{d:"m {mx},{my} v -1.71335 c 0.352326,-0.0705 0.703932,-0.17838 1.047628,-0.32133 0.344416,-0.14465 0.665822,-0.32133 0.966377,-0.52145 l 1.19431,1.18005 1.567487,-1.57688 -1.195028,-1.18014 c 0.403376,-0.61394 0.683079,-1.29908 0.825447,-2.01824 l 1.622133,-0.01 v -2.2196 l -1.636514,0.01 c -0.07333,-0.35153 -0.178319,-0.70024 -0.323564,-1.04372 -0.145244,-0.34406 -0.321407,-0.6644 -0.522735,-0.96217 l 1.131035,-1.13631 -1.583305,-1.56293 -1.129598,1.13589 c -0.614052,-0.40108 -1.302883,-0.68093 -2.022633,-0.82247 l 0.0093,-1.61852 h -2.241173 l 0.0042,1.63124 c -0.353763,0.0736 -0.705369,0.17977 -1.049785,0.32371 -0.344415,0.14437 -0.665102,0.32092 -0.9635006,0.52046 l -1.1698628,-1.15823 -1.5667691,1.5792 1.1684265,1.15669 c -0.4026573,0.61283 -0.68308,1.29797 -0.8247287,2.01713 l -1.6588041,0.003 v 2.22174 l 1.6724648,-0.006 c 0.073327,0.35077 0.1797598,0.70243 0.3242851,1.04472 0.1452428,0.34448 0.3214064,0.6644 0.5227339,0.96066 l -1.1993431,1.19723 1.5840256,1.56011 1.1964668,-1.19348 c 0.6140517,0.40346 1.3028827,0.68232 2.0233517,0.82331 l 7.19e-4,1.69892 h 2.226848 z m 0.221462,-3.9957 c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_SERVICE_FILL:{d:"m {mx},{my} c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_BUSINESS_RULE_HEADER:{d:"m {mx},{my} 0,4 20,0 0,-4 z"},TASK_TYPE_BUSINESS_RULE_MAIN:{d:"m {mx},{my} 0,12 20,0 0,-12 zm 0,8 l 20,0 m -13,-4 l 0,8"},MESSAGE_FLOW_MARKER:{d:"m {mx},{my} m -10.5 ,-7 l 0,14 l 21,0 l 0,-14 z l 10.5,6 l 10.5,-6"}},this.getRawPath=function(e){return this.pathMap[e].d},this.getScaledPath=function(e,t){var n,i,r=this.pathMap[e];t.abspos?(n=t.abspos.x,i=t.abspos.y):(n=t.containerWidth*t.position.mx,i=t.containerHeight*t.position.my);var o={};if(t.position){for(var a=t.containerHeight/r.height*t.yScaleFactor,s=t.containerWidth/r.width*t.xScaleFactor,l=0;l':""}function Rt(e,t,n){return E({id:e.id,type:e.$type,businessObject:e,di:t},n)}function St(e,t,n){var i=e.waypoint;return!i||i.length<2?[_t(t),_t(n)]:i.map((function(e){return{x:e.x,y:e.y}}))}function kt(e,t,n,i){return new Error(e("element {element} referenced by {referenced}#{property} not yet drawn",{element:At(n),referenced:At(t),property:i}))}function Ct(e,t,n,i,r,o){this._eventBus=e,this._canvas=t,this._elementFactory=n,this._elementRegistry=i,this._translate=r,this._textRenderer=o}Ct.$inject=["eventBus","canvas","elementFactory","elementRegistry","translate","textRenderer"],Ct.prototype.add=function(e,t,n){var i,r,o,a,s,l,p,c=this._translate;if(R(t,"bpmndi:BPMNPlane")){var u=R(e,"bpmn:SubProcess")?{id:e.id+"_plane"}:{};i=this._elementFactory.createRoot(Rt(e,t,u)),this._canvas.addRootElement(i)}else if(R(t,"bpmndi:BPMNShape")){var h=!C(e,t),f=function(e){return R(e,"bpmn:Group")}(e);r=n&&(n.hidden||n.collapsed);var m=t.bounds;i=this._elementFactory.createShape(Rt(e,t,{collapsed:h,hidden:r,x:Math.round(m.x),y:Math.round(m.y),width:Math.round(m.width),height:Math.round(m.height),isFrame:f})),R(e,"bpmn:BoundaryEvent")&&this._attachBoundary(e,i),R(e,"bpmn:Lane")&&(o=0),R(e,"bpmn:DataStoreReference")&&(a=n,s=_t(m),l=s.x,p=s.y,l>=a.x&&l<=a.x+a.width&&p>=a.y&&p<=a.y+a.height||(n=this._canvas.findRoot(n))),this._canvas.addShape(i,n,o)}else{if(!R(t,"bpmndi:BPMNEdge"))throw new Error(c("unknown di {di} for element {semantic}",{di:At(t),semantic:At(e)}));var d=this._getSource(e),y=this._getTarget(e);r=n&&(n.hidden||n.collapsed),i=this._elementFactory.createConnection(Rt(e,t,{hidden:r,source:d,target:y,waypoints:St(t,d,y)})),R(e,"bpmn:DataAssociation")&&(n=this._canvas.findRoot(n)),this._canvas.addConnection(i,n,o)}return function(e){return R(e,"bpmn:Event")||R(e,"bpmn:Gateway")||R(e,"bpmn:DataStoreReference")||R(e,"bpmn:DataObjectReference")||R(e,"bpmn:DataInput")||R(e,"bpmn:DataOutput")||R(e,"bpmn:SequenceFlow")||R(e,"bpmn:MessageFlow")||R(e,"bpmn:Group")}(e)&&D(i)&&this.addLabel(e,t,i),this._eventBus.fire("bpmnElement.added",{element:i}),i},Ct.prototype._attachBoundary=function(e,t){var n=this._translate,i=e.attachedToRef;if(!i)throw new Error(n("missing {semantic}#attachedToRef",{semantic:At(e)}));var r=this._elementRegistry.get(i.id),o=r&&r.attachers;if(!r)throw kt(n,e,i,"attachedToRef");t.host=r,o||(r.attachers=o=[]),-1===o.indexOf(t)&&o.push(t)},Ct.prototype.addLabel=function(e,t,n){var i,r,o;return i=O(t,n),(r=D(n))&&(i=this._textRenderer.getExternalLabelBounds(i,r)),o=this._elementFactory.createLabel(Rt(e,t,{id:e.id+"_label",labelTarget:n,type:"label",hidden:n.hidden||!D(n),x:Math.round(i.x),y:Math.round(i.y),width:Math.round(i.width),height:Math.round(i.height)})),this._canvas.addShape(o,n.parent)},Ct.prototype._getConnectedElement=function(e,t){var n,i,r=e.$type,o=this._translate;if(i=e[t+"Ref"],"source"===t&&"bpmn:DataInputAssociation"===r&&(i=i&&i[0]),("source"===t&&"bpmn:DataOutputAssociation"===r||"target"===t&&"bpmn:DataInputAssociation"===r)&&(i=e.$parent),n=i&&this._getElement(i))return n;throw i?kt(o,e,i,t+"Ref"):new Error(o("{semantic}#{side} Ref not specified",{semantic:At(e),side:t}))},Ct.prototype._getSource=function(e){return this._getConnectedElement(e,"source")},Ct.prototype._getTarget=function(e){return this._getConnectedElement(e,"target")},Ct.prototype._getElement=function(e){return this._elementRegistry.get(e.id)};var Mt={__depends__:[vt,{__depends__:[xt],bpmnImporter:["type",Ct]}]};function Pt(e){return e.originalEvent||e.srcEvent}function Nt(e,t){return(Pt(e)||e).button===t}function Tt(e){return Nt(e,0)}function Ot(e){return!0}function Dt(e){return Tt(e)||function(e){return Nt(e,1)}(e)}function Bt(e,t,n){var i=this;function r(n,i,r){var o,a;(function(e,t){var n=l[e]||Tt;return!n(t)})(n,i)||(r?a=t.getGraphics(r):(o=i.delegateTarget||i.target)&&(a=o,r=t.get(a)),a&&r&&!1===e.fire(n,{element:r,gfx:a,originalEvent:i})&&(i.stopPropagation(),i.preventDefault()))}var o={};function a(e){return o[e]}var s={click:"element.click",contextmenu:"element.contextmenu",dblclick:"element.dblclick",mousedown:"element.mousedown",mousemove:"element.mousemove",mouseover:"element.hover",mouseout:"element.out",mouseup:"element.mouseup"},l={"element.contextmenu":Ot,"element.mousedown":Dt,"element.mouseup":Dt,"element.click":Dt,"element.dblclick":Dt};var p="svg, .djs-element";function c(e,t,n,i){var a=o[n]=function(e){r(n,e)};i&&(l[n]=i),a.$delegate=Ke.bind(e,p,t,a)}function u(e,t,n){var i=a(n);i&&Ke.unbind(e,t,i.$delegate)}e.on("canvas.destroy",(function(e){var t;t=e.svg,f(s,(function(e,n){u(t,n,e)}))})),e.on("canvas.init",(function(e){var t;t=e.svg,f(s,(function(e,n){c(t,n,e)}))})),e.on(["shape.added","connection.added"],(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.createHit",{element:n,gfx:i})})),e.on(["shape.changed","connection.changed"],500,(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.updateHit",{element:n,gfx:i})})),e.on("interactionEvents.createHit",500,(function(e){var t=e.element,n=e.gfx;i.createDefaultHit(t,n)})),e.on("interactionEvents.updateHit",(function(e){var t=e.element,n=e.gfx;i.updateDefaultHit(t,n)}));var h=y("djs-hit djs-hit-stroke"),m=y("djs-hit djs-hit-click-stroke"),d={all:y("djs-hit djs-hit-all"),"click-stroke":m,stroke:h,"no-move":y("djs-hit djs-hit-no-move")};function y(e,t){return t=E({stroke:"white",strokeWidth:15},t||{}),n.cls(e,["no-fill","no-border"],t)}function g(e,t){var n=d[t];if(!n)throw new Error("invalid hit type <"+t+">");return V(e,n),e}function v(e,t){L(e,t)}this.removeHits=function(e){var t;f((t=".djs-hit",(e||document).querySelectorAll(t)),$)},this.createDefaultHit=function(e,t){var n,i=e.waypoints,r=e.isFrame;return i?this.createWaypointsHit(t,i):(n=r?"stroke":"all",this.createBoxHit(t,n,{width:e.width,height:e.height}))},this.createWaypointsHit=function(e,t){var n=me(t);return g(n,"stroke"),v(e,n),n},this.createBoxHit=function(e,t,n){n=E({x:0,y:0},n);var i=Y("rect");return g(i,t),V(i,n),v(e,i),i},this.updateDefaultHit=function(e,t){var n=Ze(".djs-hit",t);if(n)return e.waypoints?de(n,e.waypoints):V(n,{width:e.width,height:e.height}),n},this.fire=r,this.triggerMouseEvent=function(e,t,n){var i=s[e];if(!i)throw new Error("unmapped DOM event name <"+e+">");return r(i,t,n)},this.mouseHandler=a,this.registerEvent=c,this.unregisterEvent=u}Bt.$inject=["eventBus","elementRegistry","styles"];var Lt={__init__:["interactionEvents"],interactionEvents:["type",Bt]};function It(e,t){var n,i,r,a;return t=!!t,o(e)||(e=[e]),f(e,(function(e){var o=e;e.waypoints&&!t&&(o=It(e.waypoints,!0));var s=o.x,l=o.y,p=o.height||0,c=o.width||0;(sr||void 0===r)&&(r=s+c),(l+p>a||void 0===a)&&(a=l+p)})),{x:n,y:i,height:a-i,width:r-n}}function Ft(e){return"waypoints"in e?"connection":"x"in e?"shape":"root"}function jt(e){return!(!e||!e.isFrame)}function Vt(e,t){this._eventBus=e,this.offset=5;var n=t.cls("djs-outline",["no-fill"]),i=this;function r(e){var t=Y("rect");return V(t,E({x:0,y:0,rx:4,width:100,height:100},n)),t}e.on(["shape.added","shape.changed"],500,(function(e){var t=e.element,n=e.gfx,o=Ze(".djs-outline",n);o||L(n,o=i.getOutline(t)||r()),i.updateShapeOutline(o,t)})),e.on(["connection.added","connection.changed"],(function(e){var t=e.element,n=e.gfx,o=Ze(".djs-outline",n);o||L(n,o=r()),i.updateConnectionOutline(o,t)}))}Vt.prototype.updateShapeOutline=function(e,t){var n=!1,i=this._getProviders();i.length&&f(i,(function(i){n=n||i.updateOutline(t,e)})),n||V(e,{x:-this.offset,y:-this.offset,width:t.width+2*this.offset,height:t.height+2*this.offset})},Vt.prototype.updateConnectionOutline=function(e,t){var n=It(t);V(e,{x:n.x-this.offset,y:n.y-this.offset,width:n.width+2*this.offset,height:n.height+2*this.offset})},Vt.prototype.registerProvider=function(e,t){t||(t=e,e=1e3),this._eventBus.on("outline.getProviders",e,(function(e){e.providers.push(t)}))},Vt.prototype._getProviders=function(){var e=this._eventBus.createEvent({type:"outline.getProviders",providers:[]});return this._eventBus.fire(e),e.providers},Vt.prototype.getOutline=function(e){var t;return f(this._getProviders(),(function(n){l(n.getOutline)&&(t=t||n.getOutline(e))})),t},Vt.$inject=["eventBus","styles","elementRegistry"];var Wt={__init__:["outline"],outline:["type",Vt]};function zt(e,t){this._eventBus=e,this._canvas=t,this._selectedElements=[];var n=this;e.on(["shape.remove","connection.remove"],(function(e){var t=e.element;n.deselect(t)})),e.on(["diagram.clear","root.set"],(function(e){n.select(null)}))}zt.$inject=["eventBus","canvas"],zt.prototype.deselect=function(e){var t=this._selectedElements,n=t.indexOf(e);if(-1!==n){var i=t.slice();t.splice(n,1),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:t})}},zt.prototype.get=function(){return this._selectedElements},zt.prototype.isSelected=function(e){return-1!==this._selectedElements.indexOf(e)},zt.prototype.select=function(e,t){var n=this._selectedElements,i=n.slice();o(e)||(e=e?[e]:[]);var r=this._canvas,a=r.getRootElement();e=e.filter((function(e){var t=r.findRoot(e);return a===t})),t?f(e,(function(e){-1===n.indexOf(e)&&n.push(e)})):this._selectedElements=n=e.slice(),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:n})};var Gt="hover",$t="selected";function Ht(e,t,n){this._canvas=e;var i=this;function r(t,n){e.addMarker(t,n)}function o(t,n){e.removeMarker(t,n)}this._multiSelectionBox=null,t.on("element.hover",(function(e){r(e.element,Gt)})),t.on("element.out",(function(e){o(e.element,Gt)})),t.on("selection.changed",(function(e){var t=e.oldSelection,n=e.newSelection;f(t,(function(e){-1===n.indexOf(e)&&o(e,$t)})),f(n,(function(e){-1===t.indexOf(e)&&r(e,$t)})),i._updateSelectionOutline(n)})),t.on("element.changed",(function(e){n.isSelected(e.element)&&i._updateSelectionOutline(n.get())}))}function Kt(e,t,n,i){e.on("create.end",500,(function(e){var n=e.context,i=n.canExecute,r=n.elements,a=(n.hints||{}).autoSelect;if(i){if(!1===a)return;o(a)?t.select(a):t.select(r.filter(Ut))}})),e.on("connect.end",500,(function(e){var n=e.context.connection;n&&t.select(n)})),e.on("shape.move.end",500,(function(e){var n=e.previousSelection||[],r=i.get(e.context.shape.id);u(n,(function(e){return r.id===e.id}))||t.select(r)})),e.on("element.click",(function(e){if(Tt(e)){var i=e.element;i===n.getRootElement()&&(i=null);var r=t.isSelected(i),o=t.get().length>1,a=function(e){var t=Pt(e)||e;return Tt(e)&&t.shiftKey}(e);if(r&&o)return a?t.deselect(i):t.select(i);r?t.deselect(i):t.select(i,a)}}))}function Ut(e){return!e.hidden}Ht.$inject=["canvas","eventBus","selection"],Ht.prototype._updateSelectionOutline=function(e){var t=this._canvas.getLayer("selectionOutline");H(t);var n=e.length>1;if(z(this._canvas.getContainer())[n?"add":"remove"]("djs-multi-select"),n){var i=function(e){return{x:e.x-6,y:e.y-6,width:e.width+12,height:e.height+12}}(It(e)),r=Y("rect");V(r,E({rx:3},i)),z(r).add("djs-selection-outline"),L(t,r)}},Kt.$inject=["eventBus","selection","canvas","elementRegistry"];var qt={__init__:["selectionVisuals","selectionBehavior"],__depends__:[Lt,Wt],selection:["type",zt],selectionVisuals:["type",Ht],selectionBehavior:["type",Kt]};function Yt(e){this._counter=0,this._prefix=(e?e+"-":"")+Math.floor(1e9*Math.random())+"-"}Yt.prototype.next=function(){return this._prefix+ ++this._counter};var Xt=new Yt("ov");function Zt(e,t,n,i){var r,o;this._eventBus=t,this._canvas=n,this._elementRegistry=i,this._ids=Xt,this._overlayDefaults=E({show:null,scale:!0},e&&e.defaults),this._overlays={},this._overlayContainers=[],this._overlayRoot=(r=n.getContainer(),Te(o=Xe('
    '),{position:"absolute",width:0,height:0}),r.insertBefore(o,r.firstChild),o),this._init()}function Jt(e,t,n){Te(e,{left:t+"px",top:n+"px"})}function Qt(e,t){e.style.display=!1===t?"none":""}function en(e,t){e.style["transform-origin"]="top left",["","-ms-","-webkit-"].forEach((function(n){e.style[n+"transform"]=t}))}Zt.$inject=["config.overlays","eventBus","canvas","elementRegistry"],Zt.prototype.get=function(e){if(p(e)&&(e={id:e}),p(e.element)&&(e.element=this._elementRegistry.get(e.element)),e.element){var t=this._getOverlayContainer(e.element,!0);return t?e.type?h(t.overlays,g({type:e.type})):t.overlays.slice():[]}return e.type?h(this._overlays,g({type:e.type})):e.id?this._overlays[e.id]:null},Zt.prototype.add=function(e,t,n){if(a(t)&&(n=t,t=null),e.id||(e=this._elementRegistry.get(e)),!n.position)throw new Error("must specifiy overlay position");if(!n.html)throw new Error("must specifiy overlay html");if(!e)throw new Error("invalid element specified");var i=this._ids.next();return n=E({},this._overlayDefaults,n,{id:i,type:t,element:e,html:n.html}),this._addOverlay(n),i},Zt.prototype.remove=function(e){var t=this.get(e)||[];o(t)||(t=[t]);var n=this;f(t,(function(e){var t=n._getOverlayContainer(e.element,!0);if(e&&(Je(e.html),Je(e.htmlContainer),delete e.htmlContainer,delete e.element,delete n._overlays[e.id]),t){var i=t.overlays.indexOf(e);-1!==i&&t.overlays.splice(i,1)}}))},Zt.prototype.isShown=function(){return"none"!==this._overlayRoot.style.display},Zt.prototype.show=function(){Qt(this._overlayRoot)},Zt.prototype.hide=function(){Qt(this._overlayRoot,!1)},Zt.prototype.clear=function(){this._overlays={},this._overlayContainers=[],Le(this._overlayRoot)},Zt.prototype._updateOverlayContainer=function(e){var t=e.element,n=e.html,i=t.x,r=t.y;if(t.waypoints){var o=It(t);i=o.x,r=o.y}Jt(n,i,r),function(e,t,n){2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):e.setAttribute(t,n)}(e.html,"data-container-id",t.id)},Zt.prototype._updateOverlay=function(e){var t,n,i=e.position,r=e.htmlContainer,o=e.element,a=i.left,s=i.top;void 0!==i.right&&(t=o.waypoints?It(o).width:o.width,a=-1*i.right+t);void 0!==i.bottom&&(n=o.waypoints?It(o).height:o.height,s=-1*i.bottom+n);Jt(r,a||0,s||0),this._updateOverlayVisibilty(e,this._canvas.viewbox())},Zt.prototype._createOverlayContainer=function(e){var t=Xe('
    ');Te(t,{position:"absolute"}),this._overlayRoot.appendChild(t);var n={html:t,element:e,overlays:[]};return this._updateOverlayContainer(n),this._overlayContainers.push(n),n},Zt.prototype._updateRoot=function(e){var t=e.scale||1,n="matrix("+[t,0,0,t,-1*e.x*t,-1*e.y*t].join(",")+")";en(this._overlayRoot,n)},Zt.prototype._getOverlayContainer=function(e,t){var n=u(this._overlayContainers,(function(t){return t.element===e}));return n||t?n:this._createOverlayContainer(e)},Zt.prototype._addOverlay=function(e){var t,n,i=e.id,r=e.element,o=e.html;o.get&&o.constructor.prototype.jquery&&(o=o.get(0)),p(o)&&(o=Xe(o)),n=this._getOverlayContainer(r),Te(t=Xe('
    '),{position:"absolute"}),t.appendChild(o),e.type&&De(t).add("djs-overlay-"+e.type),Qt(t,this._canvas.findRoot(r)===this._canvas.getRootElement()),e.htmlContainer=t,n.overlays.push(e),n.html.appendChild(t),this._overlays[i]=e,this._updateOverlay(e),this._updateOverlayVisibilty(e,this._canvas.viewbox())},Zt.prototype._updateOverlayVisibilty=function(e,t){var n=e.show,i=this._canvas.findRoot(e.element),o=n&&n.minZoom,a=n&&n.maxZoom,s=e.htmlContainer,l=!0;(i!==this._canvas.getRootElement()||n&&(r(o)&&o>t.scale||r(a)&&ai&&(o=(1/t.scale||1)*i)),r(o)&&(l="scale("+o+","+o+")"),en(s,l)},Zt.prototype._updateOverlaysVisibilty=function(e){var t=this;f(this._overlays,(function(n){t._updateOverlayVisibilty(n,e)}))},Zt.prototype._init=function(){var e=this._eventBus,t=this;e.on("canvas.viewbox.changing",(function(e){t.hide()})),e.on("canvas.viewbox.changed",(function(e){var n;n=e.viewbox,t._updateRoot(n),t._updateOverlaysVisibilty(n),t.show()})),e.on(["shape.remove","connection.remove"],(function(e){var n=e.element;f(t.get({element:n}),(function(e){t.remove(e.id)}));var i=t._getOverlayContainer(n);if(i){Je(i.html);var r=t._overlayContainers.indexOf(i);-1!==r&&t._overlayContainers.splice(r,1)}})),e.on("element.changed",500,(function(e){var n=e.element,i=t._getOverlayContainer(n,!0);i&&(f(i.overlays,(function(e){t._updateOverlay(e)})),t._updateOverlayContainer(i))})),e.on("element.marker.update",(function(e){var n=t._getOverlayContainer(e.element,!0);n&&De(n.html)[e.add?"add":"remove"](e.marker)})),e.on("root.set",(function(){t._updateOverlaysVisibilty(t._canvas.viewbox())})),e.on("diagram.clear",this.clear,this)};var tn={__init__:["overlays"],overlays:["type",Zt]};function nn(e,t,n,i){e.on("element.changed",(function(i){var r=i.element;(r.parent||r===t.getRootElement())&&(i.gfx=n.getGraphics(r)),i.gfx&&e.fire(Ft(r)+".changed",i)})),e.on("elements.changed",(function(t){var n=t.elements;n.forEach((function(t){e.fire("element.changed",{element:t})})),i.updateContainments(n)})),e.on("shape.changed",(function(e){i.update("shape",e.element,e.gfx)})),e.on("connection.changed",(function(e){i.update("connection",e.element,e.gfx)}))}nn.$inject=["eventBus","canvas","elementRegistry","graphicsFactory"];var rn={__init__:["changeSupport"],changeSupport:["type",nn]};function on(e){this._eventBus=e}function an(e){return function(t,n,i,r,o){(l(t)||s(t))&&(o=r,r=i,i=n,n=t,t=null),this.on(t,e,n,i,r,o)}}function sn(e,t){t.invoke(on,this),this.executed((function(t){var n=t.context;n.rootElement?e.setRootElement(n.rootElement):n.rootElement=e.getRootElement()})),this.revert((function(t){var n=t.context;n.rootElement&&e.setRootElement(n.rootElement)}))}on.$inject=["eventBus"],on.prototype.on=function(e,t,n,i,r,p){if((l(t)||s(t))&&(p=r,r=i,i=n,n=t,t=null),l(n)&&(p=r,r=i,i=n,n=1e3),a(r)&&(p=r,r=!1),!l(i))throw new Error("handlerFn must be a function");o(e)||(e=[e]);var c=this._eventBus;f(e,(function(e){var o=["commandStack",e,t].filter((function(e){return e})).join(".");c.on(o,n,r?function(e,t){return function(n){return e.call(t||null,n.context,n.command,n)}}(i,p):i,p)}))},on.prototype.canExecute=an("canExecute"),on.prototype.preExecute=an("preExecute"),on.prototype.preExecuted=an("preExecuted"),on.prototype.execute=an("execute"),on.prototype.executed=an("executed"),on.prototype.postExecute=an("postExecute"),on.prototype.postExecuted=an("postExecuted"),on.prototype.revert=an("revert"),on.prototype.reverted=an("reverted"),e(sn,on),sn.$inject=["canvas","injector"];var ln={__init__:["rootElementsBehavior"],rootElementsBehavior:["type",sn]},pn={"&":"&","<":"<",">":">",'"':""","'":"'"};var cn="_plane";function un(e){var t=e.id;return R(e,"bpmn:SubProcess")?function(e){return e+cn}(t):t}function hn(e,t,n){var i=Xe('
      '),r=n.getContainer(),o=De(r);r.appendChild(i);var a=[];function s(e){e&&(a=function(e){for(var t=S(e),n=[],i=t;i;i=i.$parent)(R(i,"bpmn:SubProcess")||R(i,"bpmn:Process"))&&n.push(i);return n.reverse()}(e));var r=a.map((function(e){var i,r=(i=""+(i=e.name||e.id))&&i.replace(/[&<>"']/g,(function(e){return pn[e]})),o=Xe('
    • '+r+"
    • "),a=n.findRoot(un(e))||n.findRoot(e.id);if(!a&&R(e,"bpmn:Process")){var s=t.find((function(t){var n=S(t);return n&&n.get("processRef")&&n.get("processRef")===e}));a=n.findRoot(s.id)}return o.addEventListener("click",(function(){n.setRootElement(a)})),o}));i.innerHTML="";var s=r.length>1;o.toggle("bjs-breadcrumbs-shown",s),r.forEach((function(e){i.appendChild(e)}))}e.on("element.changed",(function(e){var t=S(e.element);u(a,(function(e){return e===t}))&&s()})),e.on("root.set",(function(e){s(e.element)}))}function fn(e,t){var n=null,i=new mn;e.on("root.set",(function(e){var r=e.element,o=t.viewbox(),a=i.get(r);if(i.set(n,{x:o.x,y:o.y,zoom:o.scale}),n=r,!R(r,"bpmn:Collaboration")||a){a=a||{x:0,y:0,zoom:1};var s=(o.x-a.x)*o.scale,l=(o.y-a.y)*o.scale;0===s&&0===l||t.scroll({dx:s,dy:l}),a.zoom!==o.scale&&t.zoom(a.zoom,{x:0,y:0})}})),e.on("diagram.clear",(function(){i.clear(),n=null}))}function mn(){this._entries=[],this.set=function(e,t){var n=!1;for(var i in this._entries)if(this._entries[i][0]===e){this._entries[i][1]=t,n=!0;break}n||this._entries.push([e,t])},this.get=function(e){for(var t in this._entries)if(this._entries[t][0]===e)return this._entries[t][1];return null},this.clear=function(){this._entries.length=0},this.remove=function(e){var t=-1;for(var n in this._entries)if(this._entries[n][0]===e){t=n;break}-1!==t&&this._entries.splice(t,1)}}hn.$inject=["eventBus","elementRegistry","canvas"],fn.$inject=["eventBus","canvas"];var dn=180,yn=160;function gn(e,t){this._eventBus=e,this._moddle=t;var n=this;e.on("import.render.start",1500,(function(e,t){n._handleImport(t.definitions)}))}function vn(e){return R(e,"bpmndi:BPMNDiagram")?e:vn(e.$parent)}gn.prototype._handleImport=function(e){if(e.diagrams){var t=this;this._definitions=e,this._processToDiagramMap={},e.diagrams.forEach((function(e){e.plane&&e.plane.bpmnElement&&(t._processToDiagramMap[e.plane.bpmnElement.id]=e)}));var n=[];e.diagrams.forEach((function(e){var i=t._createNewDiagrams(e.plane);Array.prototype.push.apply(n,i)})),n.forEach((function(e){t._movePlaneElementsToOrigin(e.plane)}))}},gn.prototype._createNewDiagrams=function(e){var t=this,n=[],i=[];e.get("planeElement").forEach((function(t){var r=t.bpmnElement;if(r){var o=r.$parent;R(r,"bpmn:SubProcess")&&!t.isExpanded&&n.push(r),function(e,t){var n=e.$parent;if(!R(n,"bpmn:SubProcess")||n===t.bpmnElement)return!1;if(function(e,t){return y(t,(function(t){return R(e,t)}))}(e,["bpmn:DataInputAssociation","bpmn:DataOutputAssociation"]))return!1;return!0}(r,e)&&i.push({diElement:t,parent:o})}}));var r=[];return n.forEach((function(e){if(!t._processToDiagramMap[e.id]){var n=t._createDiagram(e);t._processToDiagramMap[e.id]=n,r.push(n)}})),i.forEach((function(e){for(var i=e.diElement,r=e.parent;r&&-1===n.indexOf(r);)r=r.$parent;if(r){var o=t._processToDiagramMap[r.id];t._moveToDiPlane(i,o.plane)}})),r},gn.prototype._movePlaneElementsToOrigin=function(e){var t=e.get("planeElement"),n=function(e){var t={top:1/0,right:-1/0,bottom:-1/0,left:1/0};return e.planeElement.forEach((function(e){if(e.bounds){var n=wt(e.bounds);t.top=Math.min(n.top,t.top),t.left=Math.min(n.left,t.left)}})),function(e){return{x:e.left,y:e.top,width:e.right-e.left,height:e.bottom-e.top}}(t)}(e),i=n.x-dn,r=n.y-yn;t.forEach((function(e){e.waypoint?e.waypoint.forEach((function(e){e.x=e.x-i,e.y=e.y-r})):e.bounds&&(e.bounds.x=e.bounds.x-i,e.bounds.y=e.bounds.y-r)}))},gn.prototype._moveToDiPlane=function(e,t){var n=vn(e).plane.get("planeElement");n.splice(n.indexOf(e),1),t.get("planeElement").push(e)},gn.prototype._createDiagram=function(e){var t=this._moddle.create("bpmndi:BPMNPlane",{bpmnElement:e}),n=this._moddle.create("bpmndi:BPMNDiagram",{plane:t});return t.$parent=n,t.bpmnElement=e,n.$parent=this._definitions,this._definitions.diagrams.push(n),n},gn.$inject=["eventBus","moddle"];var xn=250;function wn(e,t,n,i){on.call(this,t),this._canvas=e,this._eventBus=t,this._elementRegistry=n,this._overlays=i;var r=this;this.executed("shape.toggleCollapse",xn,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.reverted("shape.toggleCollapse",xn,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.executed(["shape.create","shape.move","shape.delete"],xn,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),this.reverted(["shape.create","shape.move","shape.delete"],xn,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),t.on("import.render.complete",(function(){n.filter((function(e){return r._canDrillDown(e)})).map((function(e){r._addOverlay(e)}))}))}e(wn,on),wn.prototype._updateDrilldownOverlay=function(e){var t=this._canvas;if(e){var n=t.findRoot(e);n&&this._updateOverlayVisibility(n)}},wn.prototype._canDrillDown=function(e){var t=this._canvas;return R(e,"bpmn:SubProcess")&&t.findRoot(un(e))},wn.prototype._updateOverlayVisibility=function(e){var t=this._overlays,n=S(e),i=t.get({element:n.id,type:"drilldown"})[0];if(i){var r=n&&n.get("flowElements")&&n.get("flowElements").length;De(i.html).toggle("bjs-drilldown-empty",!r)}},wn.prototype._addOverlay=function(e){var t=this._canvas,n=this._overlays;n.get({element:e,type:"drilldown"}).length&&this._removeOverlay(e);var i=Xe('');i.addEventListener("click",(function(){t.setRootElement(t.findRoot(un(e)))})),n.add(e,"drilldown",{position:{bottom:-7,right:-8},html:i}),this._updateOverlayVisibility(e)},wn.prototype._removeOverlay=function(e){this._overlays.remove({element:e,type:"drilldown"})},wn.$inject=["canvas","eventBus","elementRegistry","overlays"];var bn={__depends__:[tn,rn,ln],__init__:["drilldownBreadcrumbs","drilldownOverlayBehavior","drilldownCentering","subprocessCompatibility"],drilldownBreadcrumbs:["type",hn],drilldownCentering:["type",fn],drilldownOverlayBehavior:["type",wn],subprocessCompatibility:["type",gn]};const En=/^class[ {]/;function _n(e){return Array.isArray(e)}function An(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Rn(...e){1===e.length&&_n(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const Sn=/constructor\s*[^(]*\(\s*([^)]*)\)/m,kn=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,Cn=/\/\*([^*]*)\*\//m;function Mn(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return En.test(e.toString())}(e)?Sn:kn);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map((e=>{const t=e.match(Cn);return(t&&t[1]||e).trim()}))||[]}function Pn(e,t){t=t||{get:function(e,t){if(n.push(e),!1===t)return null;throw a(`No provider for "${e}"!`)}};const n=[],i=this._providers=Object.create(t._providers||null),r=this._instances=Object.create(null),o=r.injector=this,a=function(e){const t=n.join(" -> ");return n.length=0,new Error(t?`${e} (Resolving: ${t})`:e)};function s(e,o){if(!i[e]&&-1!==e.indexOf(".")){const t=e.split(".");let n=s(t.shift());for(;t.length;)n=n[t.shift()];return n}if(An(r,e))return r[e];if(An(i,e)){if(-1!==n.indexOf(e))throw n.push(e),a("Cannot resolve circular dependency!");return n.push(e),r[e]=i[e][0](i[e][1]),n.pop(),r[e]}return t.get(e,o)}function l(e,t){if(void 0===t&&(t={}),"function"!=typeof e){if(!_n(e))throw a(`Cannot invoke "${e}". Expected a function!`);e=Rn(e.slice())}return{fn:e,dependencies:(e.$inject||Mn(e)).map((e=>An(t,e)?t[e]:s(e)))}}function p(e){const{fn:t,dependencies:n}=l(e);return new(Function.prototype.bind.apply(t,[null].concat(n)))}function c(e,t,n){const{fn:i,dependencies:r}=l(e,n);return i.apply(t,r)}function u(e){return Rn((t=>e.get(t)))}function h(e,t){if(t&&t.length){const n=Object.create(null),r=Object.create(null),o=[],a=[],s=[];let l,p,c,h;for(let e in i)l=i[e],-1!==t.indexOf(e)&&("private"===l[2]?(p=o.indexOf(l[3]),-1===p?(c=l[3].createChild([],t),h=u(c),o.push(l[3]),a.push(c),s.push(h),n[e]=[h,e,"private",c]):n[e]=[s[p],e,"private",a[p]]):n[e]=[l[2],l[1]],r[e]=!0),"factory"!==l[2]&&"type"!==l[2]||!l[1].$scope||t.forEach((t=>{-1!==l[1].$scope.indexOf(t)&&(n[e]=[l[2],l[1]],r[t]=!0)}));t.forEach((e=>{if(!r[e])throw new Error('No provider for "'+e+'". Cannot use provider from the parent!')})),e.unshift(n)}return new Pn(e,o)}const f={factory:c,type:p,value:function(e){return e}};function m(e,t){const n=e.__init__||[];return function(){n.forEach((e=>{"string"==typeof e?t.get(e):t.invoke(e)}))}}function d(e){const t=e.__exports__;if(t){const n=e.__modules__,r=Object.keys(e).reduce(((t,n)=>("__exports__"!==n&&"__modules__"!==n&&"__init__"!==n&&"__depends__"!==n&&(t[n]=e[n]),t)),Object.create(null)),o=h((n||[]).concat(r)),a=Rn((function(e){return o.get(e)}));t.forEach((function(e){i[e]=[a,e,"private",o]}));const s=(e.__init__||[]).slice();return s.unshift((function(){o.init()})),m(e=Object.assign({},e,{__init__:s}),o)}return Object.keys(e).forEach((function(t){if("__init__"===t||"__depends__"===t)return;if("private"===e[t][2])return void(i[t]=e[t]);const n=e[t][0],r=e[t][1];i[t]=[f[n],Nn(n,r),n]})),m(e,o)}function y(e,t){return-1!==e.indexOf(t)||-1!==(e=(t.__depends__||[]).reduce(y,e)).indexOf(t)?e:e.concat(t)}this.get=s,this.invoke=c,this.instantiate=p,this.createChild=h,this.init=function(e){const t=e.reduce(y,[]).map(d);let n=!1;return function(){n||(n=!0,t.forEach((e=>e())))}}(e)}function Nn(e,t){return"value"!==e&&_n(t)&&(t=Rn(t.slice())),t}function Tn(e,t){A.call(this,e,1),this.CONNECTION_STYLE=t.style(["no-fill"],{strokeWidth:5,stroke:"fuchsia"}),this.SHAPE_STYLE=t.style({fill:"white",stroke:"fuchsia",strokeWidth:2}),this.FRAME_STYLE=t.style(["no-fill"],{stroke:"fuchsia",strokeDasharray:4,strokeWidth:2})}e(Tn,A),Tn.prototype.canRender=function(){return!0},Tn.prototype.drawShape=function(e,t,n){var i=Y("rect");return V(i,{x:0,y:0,width:t.width||0,height:t.height||0}),jt(t)?V(i,E({},this.FRAME_STYLE,n||{})):V(i,E({},this.SHAPE_STYLE,n||{})),L(e,i),i},Tn.prototype.drawConnection=function(e,t,n){var i=me(t.waypoints,E({},this.CONNECTION_STYLE,n||{}));return L(e,i),i},Tn.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return pe([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},Tn.prototype.getConnectionPath=function(e){var t,n,i=e.waypoints,r=[];for(t=0;n=i[t];t++)n=n.original||n,r.push([0===t?"M":"L",n.x,n.y]);return pe(r)},Tn.$inject=["eventBus","styles"];var On={__init__:["defaultRenderer"],defaultRenderer:["type",Tn],styles:["type",function(){var e={"no-fill":{fill:"none"},"no-border":{strokeOpacity:0},"no-events":{pointerEvents:"none"}},t=this;this.cls=function(e,t,n){return E(this.style(t,n),{class:e})},this.style=function(t,n){o(t)||n||(n=t,t=[]);var i=m(t,(function(t,n){return E(t,e[n]||{})}),{});return n?E(i,n):i},this.computeStyle=function(e,n,i){return o(n)||(i=n,n=[]),t.style(n||[],E({},i,e||{}))}}]};function Dn(e,t){return Math.round(e*t)/t}function Bn(e){return s(e)?e+"px":e}function Ln(e,t,n){const i=Y("g");z(i).add(t);const r=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[r]||null),i}const In={shape:["x","y","width","height"],connection:["waypoints"]};function Fn(e,t,n,i){this._eventBus=t,this._elementRegistry=i,this._graphicsFactory=n,this._rootsIdx=0,this._layers={},this._planes=[],this._rootElement=null,this._init(e||{})}function jn(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}Fn.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],Fn.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=E({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),Te(n,{position:"relative",overflow:"hidden",width:Bn(e.width),height:Bn(e.height)}),t.appendChild(n),n}(e),i=this._svg=Y("svg");V(i,{width:"100%",height:"100%"}),L(n,i);const r=this._viewport=Ln(i,"viewport");e.deferUpdate&&(this._viewboxChanged=function(e,t){let n,i,r,o;function a(n){let a=Date.now(),p=n?0:o+t-a;if(p>0)return s(p);e.apply(r,i),l()}function s(e){n=setTimeout(a,e)}function l(){n&&clearTimeout(n),n=o=i=r=void 0}function p(...e){o=Date.now(),i=e,r=this,n||s(t)}return p.flush=function(){n&&a(!0),l()},p.cancel=l,p}(b(this._viewboxChanged,this),300)),t.on("diagram.init",(()=>{t.fire("canvas.init",{svg:i,viewport:r})})),t.on(["shape.added","connection.added","shape.removed","connection.removed","elements.changed","root.set"],(()=>{delete this._cachedViewbox})),t.on("diagram.destroy",500,this._destroy,this),t.on("diagram.clear",500,this._clear,this)},Fn.prototype._destroy=function(){this._eventBus.fire("canvas.destroy",{svg:this._svg,viewport:this._viewport});const e=this._container.parentNode;e&&e.removeChild(this._container),delete this._svg,delete this._container,delete this._layers,delete this._planes,delete this._rootElement,delete this._viewport},Fn.prototype._clear=function(){this._elementRegistry.getAll().forEach((e=>{const t=Ft(e);"root"===t?this.removeRootElement(e):this._removeElement(e,t)})),this._planes=[],this._rootElement=null,delete this._cachedViewbox},Fn.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},Fn.prototype.getLayer=function(e,t){if(!e)throw new Error("must specify a name");let n=this._layers[e];if(n||(n=this._layers[e]=this._createLayer(e,t)),void 0!==t&&n.index!==t)throw new Error("layer <"+e+"> already created at index <"+t+">");return n.group},Fn.prototype._getChildIndex=function(e){return m(this._layers,(function(t,n){return n.visible&&e>=n.index&&t++,t}),0)},Fn.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:Ln(this._viewport,"layer-"+e,n),index:t,visible:!0}},Fn.prototype.showLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=this._viewport,i=t.group,r=t.index;if(t.visible)return i;const o=this._getChildIndex(r);return n.insertBefore(i,n.childNodes[o]||null),t.visible=!0,i},Fn.prototype.hideLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=t.group;return t.visible?($(n),t.visible=!1,n):n},Fn.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],$(t.group))},Fn.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},Fn.prototype.findRoot=function(e){if("string"==typeof e&&(e=this._elementRegistry.get(e)),!e)return;const t=this._findPlaneForRoot(function(e){for(;e.parent;)e=e.parent;return e}(e))||{};return t.rootElement},Fn.prototype.getRootElements=function(){return this._planes.map((function(e){return e.rootElement}))},Fn.prototype._findPlaneForRoot=function(e){return u(this._planes,(function(t){return t.rootElement===e}))},Fn.prototype.getContainer=function(){return this._container},Fn.prototype._updateMarker=function(e,t,n){let i;e.id||(e=this._elementRegistry.get(e)),i=this._elementRegistry._elements[e.id],i&&(f([i.gfx,i.secondaryGfx],(function(e){e&&(n?z(e).add(t):z(e).remove(t))})),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},Fn.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},Fn.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},Fn.prototype.hasMarker=function(e,t){e.id||(e=this._elementRegistry.get(e));return z(this.getGraphics(e)).has(t)},Fn.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},Fn.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},Fn.prototype.addRootElement=function(e){const t=this._rootsIdx++;e||(e={id:"__implicitroot_"+t,children:[],isImplicit:!0});const n=e.layer="root-"+t;this._ensureValid("root",e);const i=this.getLayer(n,0);return this.hideLayer(n),this._addRoot(e,i),this._planes.push({rootElement:e,layer:i}),e},Fn.prototype.removeRootElement=function(e){"string"==typeof e&&(e=this._elementRegistry.get(e));if(this._findPlaneForRoot(e))return this._removeRoot(e),this._removeLayer(e.layer),this._planes=this._planes.filter((function(t){return t.rootElement!==e})),this._rootElement===e&&(this._rootElement=null),e},Fn.prototype.setRootElement=function(e){if(e===this._rootElement)return;let t;if(!e)throw new Error("rootElement required");return t=this._findPlaneForRoot(e),t||(e=this.addRootElement(e)),this._setRoot(e),e},Fn.prototype._removeRoot=function(e){const t=this._elementRegistry,n=this._eventBus;n.fire("root.remove",{element:e}),n.fire("root.removed",{element:e}),t.remove(e)},Fn.prototype._addRoot=function(e,t){const n=this._elementRegistry,i=this._eventBus;i.fire("root.add",{element:e}),n.add(e,t),i.fire("root.added",{element:e,gfx:t})},Fn.prototype._setRoot=function(e,t){const n=this._rootElement;n&&(this._elementRegistry.updateGraphics(n,null,!0),this.hideLayer(n.layer)),e&&(t||(t=this._findPlaneForRoot(e).layer),this._elementRegistry.updateGraphics(e,this._svg,!0),this.showLayer(e.layer)),this._rootElement=e,this._eventBus.fire("root.set",{element:e})},Fn.prototype._ensureValid=function(e,t){if(!t.id)throw new Error("element must have an id");if(this._elementRegistry.get(t.id))throw new Error("element <"+t.id+"> already exists");const n=In[e],i=d(n,(function(e){return void 0!==t[e]}));if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},Fn.prototype._setParent=function(e,t,n){!function(e,t,n){if(e&&t){"number"!=typeof n&&(n=-1);var i=e.indexOf(t);if(-1!==i){if(i===n)return;if(-1===n)return;e.splice(i,1)}-1!==n?e.splice(n,0,t):e.push(t)}}(t.children,e,n),e.parent=t},Fn.prototype._addElement=function(e,t,n,i){n=n||this.getRootElement();const r=this._eventBus,o=this._graphicsFactory;this._ensureValid(e,t),r.fire(e+".add",{element:t,parent:n}),this._setParent(t,n,i);const a=o.create(e,t,i);return this._elementRegistry.add(t,a),o.update(e,t,a),r.fire(e+".added",{element:t,gfx:a}),t},Fn.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},Fn.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},Fn.prototype._removeElement=function(e,t){const n=this._elementRegistry,i=this._graphicsFactory,r=this._eventBus;if(e=n.get(e.id||e))return r.fire(t+".remove",{element:e}),i.remove(e),function(e,t){if(!e||!t)return-1;var n=e.indexOf(t);-1!==n&&e.splice(n,1)}(e.parent&&e.parent.children,e),e.parent=null,r.fire(t+".removed",{element:e}),n.remove(e),e},Fn.prototype.removeShape=function(e){return this._removeElement(e,"shape")},Fn.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},Fn.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},Fn.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},Fn.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},Fn.prototype.viewbox=function(e){if(void 0===e&&this._cachedViewbox)return this._cachedViewbox;const t=this._viewport,n=this.getSize();let i,r,o,a,s,l,p;return e?(this._changeViewbox((function(){s=Math.min(n.width/e.width,n.height/e.height);const i=this._svg.createSVGMatrix().scale(s).translate(-e.x,-e.y);le(t,i)})),e):(o=this._rootElement?this.getActiveLayer():null,i=o&&o.getBBox()||{},a=le(t),r=a?a.matrix:function(e,t,n,i,r,o){var a=Z().createSVGMatrix();switch(arguments.length){case 0:return a;case 1:return J(a,e);case 6:return J(a,{a:e,b:t,c:n,d:i,e:r,f:o})}}(),s=Dn(r.a,1e3),l=Dn(-r.e||0,1e3),p=Dn(-r.f||0,1e3),e=this._cachedViewbox={x:l?l/s:0,y:p?p/s:0,width:n.width/s,height:n.height/s,scale:s,inner:{width:i.width||0,height:i.height||0,x:i.x||0,y:i.y||0},outer:n})},Fn.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox((function(){e=E({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),jn(t,n)})),{x:n.e,y:n.f}},Fn.prototype.scrollToElement=function(e,t){let n=100;"string"==typeof e&&(e=this._elementRegistry.get(e));const i=this.findRoot(e);if(i!==this.getRootElement()&&this.setRootElement(i),i===e)return;t||(t={}),"number"==typeof t&&(n=t),t={top:t.top||n,right:t.right||n,bottom:t.bottom||n,left:t.left||n};const r=It(e),o=wt(r),a=this.viewbox(),s=this.zoom();let l,p;a.y+=t.top/s,a.x+=t.left/s,a.width-=(t.right+t.left)/s,a.height-=(t.bottom+t.top)/s;const c=wt(a);if(r.width=0&&i.y>=0&&i.x+i.width<=n.width&&i.y+i.height<=n.height&&!e?o={x:0,y:0,width:Math.max(i.width+i.x,n.width),height:Math.max(i.height+i.y,n.height)}:(r=Math.min(1,n.width/i.width,n.height/i.height),o={x:i.x+(e?i.width/2-n.width/r/2:0),y:i.y+(e?i.height/2-n.height/r/2:0),width:n.width/r,height:n.height/r}),this.viewbox(o),this.viewbox(!1).scale},Fn.prototype._setZoom=function(e,t){const n=this._svg,i=this._viewport,r=n.createSVGMatrix(),o=n.createSVGPoint();let a,s,l,p,c;l=i.getCTM();const u=l.a;return t?(a=E(o,t),s=a.matrixTransform(l.inverse()),p=r.translate(s.x,s.y).scale(1/u*e).translate(-s.x,-s.y),c=l.multiply(p)):c=r.scale(e),jn(this._viewport,c),c},Fn.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},Fn.prototype.getAbsoluteBBox=function(e){const t=this.viewbox();let n;if(e.waypoints){n=this.getGraphics(e).getBBox()}else n=e;return{x:n.x*t.scale-t.x*t.scale,y:n.y*t.scale-t.y*t.scale,width:n.width*t.scale,height:n.height*t.scale}},Fn.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var Vn="data-element-id";function Wn(e){this._elements={},this._eventBus=e}function zn(e,t,n){var i=function(e,t,n,i){var r=n.inverse;return Object.defineProperty(e,"remove",{value:function(e){var n=this.indexOf(e);return-1!==n&&(this.splice(n,1),t.unset(e,r,i)),e}}),Object.defineProperty(e,"contains",{value:function(e){return-1!==this.indexOf(e)}}),Object.defineProperty(e,"add",{value:function(e,n){var o=this.indexOf(e);if(void 0===n){if(-1!==o)return;n=this.length}-1!==o&&this.splice(o,1),this.splice(n,0,e),-1===o&&t.set(e,r,i)}}),Object.defineProperty(e,"__refs_collection",{value:!0}),e}(n[t.name]||[],e,t,n);Object.defineProperty(n,t.name,{enumerable:t.enumerable,value:i}),i.length&&i.forEach((function(i){e.set(i,t.inverse,n)}))}function Gn(e,t){if(!(this instanceof Gn))return new Gn(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}Wn.$inject=["eventBus"],Wn.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),V(t,Vn,i),n&&V(n,Vn,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},Wn.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&(V(i.gfx,Vn,""),i.secondaryGfx&&V(i.secondaryGfx,Vn,""),delete t[n])},Wn.prototype.updateId=function(e,t){this._validateId(t),"string"==typeof e&&(e=this.get(e)),this._eventBus.fire("element.updateId",{element:e,newId:t});var n=this.getGraphics(e),i=this.getGraphics(e,!0);this.remove(e),e.id=t,this.add(e,n,i)},Wn.prototype.updateGraphics=function(e,t,n){var i=e.id||e,r=this._elements[i];return n?r.secondaryGfx=t:r.gfx=t,t&&V(t,Vn,i),t},Wn.prototype.get=function(e){var t;t="string"==typeof e?e:e&&V(e,Vn);var n=this._elements[t];return n&&n.element},Wn.prototype.filter=function(e){var t=[];return this.forEach((function(n,i){e(n,i)&&t.push(n)})),t},Wn.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i in ref");t=this.props[t]}t.collection?zn(this,t,e):function(e,t,n){var i=t.inverse,r=n[t.name];Object.defineProperty(n,t.name,{configurable:t.configurable,enumerable:t.enumerable,get:function(){return r},set:function(t){if(t!==r){var o=r;r=null,o&&e.unset(o,i,n),r=t,e.set(r,i,n)}}})}(this,t,e)},Gn.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||zn(this,t,e),n},Gn.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},Gn.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},Gn.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var $n=new Gn({name:"children",enumerable:!0,collection:!0},{name:"parent"}),Hn=new Gn({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),Kn=new Gn({name:"attachers",collection:!0},{name:"host"}),Un=new Gn({name:"outgoing",collection:!0},{name:"source"}),qn=new Gn({name:"incoming",collection:!0},{name:"target"});function Yn(){Object.defineProperty(this,"businessObject",{writable:!0}),Object.defineProperty(this,"label",{get:function(){return this.labels[0]},set:function(e){var t=this.label,n=this.labels;!e&&t?n.remove(t):n.add(e,0)}}),$n.bind(this,"parent"),Hn.bind(this,"labels"),Un.bind(this,"outgoing"),qn.bind(this,"incoming")}function Xn(){Yn.call(this),$n.bind(this,"children"),Kn.bind(this,"host"),Kn.bind(this,"attachers")}function Zn(){Yn.call(this),$n.bind(this,"children")}function Jn(){Xn.call(this),Hn.bind(this,"labelTarget")}function Qn(){Yn.call(this),Un.bind(this,"source"),qn.bind(this,"target")}e(Xn,Yn),e(Zn,Xn),e(Jn,Xn),e(Qn,Yn);var ei={connection:Qn,shape:Xn,label:Jn,root:Zn};function ti(){this._uid=12}ti.prototype.createRoot=function(e){return this.create("root",e)},ti.prototype.createLabel=function(e){return this.create("label",e)},ti.prototype.createShape=function(e){return this.create("shape",e)},ti.prototype.createConnection=function(e){return this.create("connection",e)},ti.prototype.create=function(e,t){return(t=E({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=ei[e];if(!n)throw new Error("unknown type: <"+e+">");return E(new n,t)}(e,t)};var ni="__fn",ii=Array.prototype.slice;function ri(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function oi(){}function ai(e,t){this._eventBus=e,this._elementRegistry=t}function si(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}ri.prototype.on=function(e,t,n,i){if(e=o(e)?e:[e],l(t)&&(i=n,n=t,t=1e3),!s(t))throw new Error("priority must be a number");var r=n;i&&((r=b(n,i))[ni]=n[ni]||n);var a=this;e.forEach((function(e){a._addListener(e,{priority:t,callback:r,next:null})}))},ri.prototype.once=function(e,t,n,i){var r=this;if(l(t)&&(i=n,n=t,t=1e3),!s(t))throw new Error("priority must be a number");function o(){o.__isTomb=!0;var t=n.apply(i,arguments);return r.off(e,o),t}o[ni]=n,this.on(e,t,o)},ri.prototype.off=function(e,t){e=o(e)?e:[e];var n=this;e.forEach((function(e){n._removeListener(e,t)}))},ri.prototype.createEvent=function(e){var t=new oi;return t.init(e),t},ri.prototype.fire=function(e,t){var n,i,r,o;if(o=ii.call(arguments),"object"==typeof e&&(e=(t=e).type),!e)throw new Error("no event type specified");if(i=this._listeners[e]){n=t instanceof oi?t:this.createEvent(t),o[0]=n;var a=n.type;e!==a&&(n.type=e);try{r=this._invokeListeners(n,o,i)}finally{e!==a&&(n.type=a)}return void 0===r&&n.defaultPrevented&&(r=!1),r}},ri.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},ri.prototype._destroy=function(){this._listeners={}},ri.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},ri.prototype._invokeListener=function(e,t,n){var i;if(n.callback.__isTomb)return i;try{i=function(e,t){return e.apply(null,t)}(n.callback,t),void 0!==i&&(e.returnValue=i,e.stopPropagation()),!1===i&&e.preventDefault()}catch(e){if(!this.handleError(e))throw console.error("unhandled error in event listener",e),e}return i},ri.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority or , got "+e);n=r[1],i=r[0]}return{name:e=(i?i+":":"")+n,prefix:i,localName:n}}function xi(e){this.ns=e,this.name=e.name,this.allTypes=[],this.allTypesByName={},this.properties=[],this.propertiesByName={}}function wi(e,t){this.packageMap={},this.typeMap={},this.packages=[],this.properties=t,f(e,b(this.registerPackage,this))}function bi(e,t,n){var i=t[n];if(i in e)throw new Error("package with "+n+" <"+i+"> already defined")}function Ei(e){this.model=e}function _i(e,t,n){Object.defineProperty(e,t.name,{enumerable:!t.isReference,writable:!0,value:n,configurable:!0})}function Ai(e){return e.replace(/^:/,"")}function Ri(e,t={}){this.properties=new Ei(this),this.factory=new hi(this,this.properties),this.registry=new wi(e,this.properties),this.typeCache={},this.config=t}xi.prototype.build=function(){return function(e,t){let n={},i=Object(e);return f(t,(function(t){t in i&&(n[t]=e[t])})),n}(this,["ns","name","allTypes","allTypesByName","properties","propertiesByName","bodyProperty","idProperty"])},xi.prototype.addProperty=function(e,t,n){"boolean"==typeof t&&(n=t,t=void 0),this.addNamedProperty(e,!1!==n);var i=this.properties;void 0!==t?i.splice(t,0,e):i.push(e)},xi.prototype.replaceProperty=function(e,t,n){var i=e.ns,r=this.properties,o=this.propertiesByName,a=e.name!==t.name;if(e.isId){if(!t.isId)throw new Error("property <"+t.ns.name+"> must be id property to refine <"+e.ns.name+">");this.setIdProperty(t,!1)}if(e.isBody){if(!t.isBody)throw new Error("property <"+t.ns.name+"> must be body property to refine <"+e.ns.name+">");this.setBodyProperty(t,!1)}var s=r.indexOf(e);if(-1===s)throw new Error("property <"+i.name+"> not found in property list");r.splice(s,1),this.addProperty(t,n?void 0:s,a),o[i.name]=o[i.localName]=t},xi.prototype.redefineProperty=function(e,t,n){var i=e.ns.prefix,r=t.split("#"),o=vi(r[0],i),a=vi(r[1],o.prefix).name,s=this.propertiesByName[a];if(!s)throw new Error("refined property <"+a+"> not found");this.replaceProperty(s,e,n),delete e.redefines},xi.prototype.addNamedProperty=function(e,t){var n=e.ns,i=this.propertiesByName;t&&(this.assertNotDefined(e,n.name),this.assertNotDefined(e,n.localName)),i[n.name]=i[n.localName]=e},xi.prototype.removeNamedProperty=function(e){var t=e.ns,n=this.propertiesByName;delete n[t.name],delete n[t.localName]},xi.prototype.setBodyProperty=function(e,t){if(t&&this.bodyProperty)throw new Error("body property defined multiple times (<"+this.bodyProperty.ns.name+">, <"+e.ns.name+">)");this.bodyProperty=e},xi.prototype.setIdProperty=function(e,t){if(t&&this.idProperty)throw new Error("id property defined multiple times (<"+this.idProperty.ns.name+">, <"+e.ns.name+">)");this.idProperty=e},xi.prototype.assertNotTrait=function(e){if((e.extends||[]).length)throw new Error(`cannot create <${e.name}> extending <${e.extends}>`)},xi.prototype.assertNotDefined=function(e,t){var n=e.name,i=this.propertiesByName[n];if(i)throw new Error("property <"+n+"> already defined; override of <"+i.definedBy.ns.name+"#"+i.ns.name+"> by <"+e.definedBy.ns.name+"#"+e.ns.name+"> not allowed without redefines")},xi.prototype.hasProperty=function(e){return this.propertiesByName[e]},xi.prototype.addTrait=function(e,t){t&&this.assertNotTrait(e);var n=this.allTypesByName,i=this.allTypes,r=e.name;r in n||(f(e.properties,b((function(n){n=E({},n,{name:n.ns.localName,inherited:t}),Object.defineProperty(n,"definedBy",{value:e});var i=n.replaces,r=n.redefines;i||r?this.redefineProperty(n,i||r,i):(n.isBody&&this.setBodyProperty(n),n.isId&&this.setIdProperty(n),this.addProperty(n))}),this)),i.push(e),n[r]=e)},wi.prototype.getPackage=function(e){return this.packageMap[e]},wi.prototype.getPackages=function(){return this.packages},wi.prototype.registerPackage=function(e){e=E({},e);var t=this.packageMap;bi(t,e,"prefix"),bi(t,e,"uri"),f(e.types,b((function(t){this.registerType(t,e)}),this)),t[e.uri]=t[e.prefix]=e,this.packages.push(e)},wi.prototype.registerType=function(e,t){var n=vi((e=E({},e,{superClass:(e.superClass||[]).slice(),extends:(e.extends||[]).slice(),properties:(e.properties||[]).slice(),meta:E(e.meta||{})})).name,t.prefix),i=n.name,r={};f(e.properties,b((function(e){var t=vi(e.name,n.prefix),i=t.name;yi(e.type)||(e.type=vi(e.type,t.prefix).name),E(e,{ns:t,name:i}),r[i]=e}),this)),E(e,{ns:n,name:i,propertiesByName:r}),f(e.extends,b((function(e){var t=vi(e,n.prefix),r=this.typeMap[t.name];r.traits=r.traits||[],r.traits.push(i)}),this)),this.definePackage(e,t),this.typeMap[i]=e},wi.prototype.mapTypes=function(e,t,n){var i=yi(e.name)?{name:e.name}:this.typeMap[e.name],r=this;function o(n,i){var o=vi(n,yi(n)?"":e.prefix);r.mapTypes(o,t,i)}function a(e){return o(e,!0)}if(!i)throw new Error("unknown type <"+e.name+">");f(i.superClass,n?a:function(e){return o(e,!1)}),t(i,!n),f(i.traits,a)},wi.prototype.getEffectiveDescriptor=function(e){var t=vi(e),n=new xi(t);this.mapTypes(t,(function(e,t){n.addTrait(e,t)}));var i=n.build();return this.definePackage(i,i.allTypes[i.allTypes.length-1].$pkg),i},wi.prototype.definePackage=function(e,t){this.properties.define(e,"$pkg",{value:t})},Ei.prototype.set=function(e,t,n){if(!p(t)||!t.length)throw new TypeError("property name must be a non-empty string");var i=this.getProperty(e,t),r=i&&i.name;void 0===n?i?delete e[r]:delete e.$attrs[Ai(t)]:i?r in e?e[r]=n:_i(e,i,n):e.$attrs[Ai(t)]=n},Ei.prototype.get=function(e,t){var n=this.getProperty(e,t);if(!n)return e.$attrs[Ai(t)];var i=n.name;return!e[i]&&n.isMany&&_i(e,n,[]),e[i]},Ei.prototype.define=function(e,t,n){if(!n.writable){var i=n.value;delete(n=E({},n,{get:function(){return i}})).value}Object.defineProperty(e,t,n)},Ei.prototype.defineDescriptor=function(e,t){this.define(e,"$descriptor",{value:t})},Ei.prototype.defineModel=function(e,t){this.define(e,"$model",{value:t})},Ei.prototype.getProperty=function(e,t){var n=this.model,i=n.getPropertyDescriptor(e,t);if(i)return i;if(t.includes(":"))return null;const r=n.config.strict;if(void 0!==r){const n=new TypeError(`unknown property <${t}> on <${e.$type}>`);if(r)throw n;"undefined"!=typeof console&&console.warn(n)}return null},Ri.prototype.create=function(e,t){var n=this.getType(e);if(!n)throw new Error("unknown type <"+e+">");return new n(t)},Ri.prototype.getType=function(e){var t=this.typeCache,n=p(e)?e:e.ns.name,i=t[n];return i||(e=this.registry.getEffectiveDescriptor(n),i=t[n]=this.factory.createType(e)),i},Ri.prototype.createAny=function(e,t,n){var o=vi(e),s={$type:e,$instanceOf:function(e){return e===this.$type},get:function(e){return this[e]},set:function(e,t){!function(e,t,n){let o=e;f(t,(function(e,a){if("number"!=typeof e&&"string"!=typeof e)throw new Error("illegal key type: "+typeof e+". Key should be of type number or string.");if("constructor"===e)throw new Error("illegal key: constructor");if("__proto__"===e)throw new Error("illegal key: __proto__");let s=t[a+1],l=o[e];r(s)&&null==l&&(l=o[e]=isNaN(+s)?{}:[]),i(s)?i(n)?delete o[e]:o[e]=n:o=l}))}(this,[e],t)}},l={name:e,isGeneric:!0,ns:{prefix:o.prefix,localName:o.localName,uri:t}};return this.properties.defineDescriptor(s,l),this.properties.defineModel(s,this),this.properties.define(s,"get",{enumerable:!1,writable:!0}),this.properties.define(s,"set",{enumerable:!1,writable:!0}),this.properties.define(s,"$parent",{enumerable:!1,writable:!0}),this.properties.define(s,"$instanceOf",{enumerable:!1,writable:!0}),f(n,(function(e,t){a(e)&&void 0!==e.value?s[e.name]=e.value:s[t]=e})),s},Ri.prototype.getPackage=function(e){return this.registry.getPackage(e)},Ri.prototype.getPackages=function(){return this.registry.getPackages()},Ri.prototype.getElementDescriptor=function(e){return e.$descriptor},Ri.prototype.hasType=function(e,t){return void 0===t&&(t=e,e=this),t in e.$model.getElementDescriptor(e).allTypesByName},Ri.prototype.getPropertyDescriptor=function(e,t){return this.getElementDescriptor(e).propertiesByName[t]},Ri.prototype.getTypeDescriptor=function(e){return this.registry.typeMap[e]};var Si=String.fromCharCode,ki=Object.prototype.hasOwnProperty,Ci=/&#(\d+);|&#x([0-9a-f]+);|&(\w+);/gi,Mi={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function Pi(e,t,n,i){return i?ki.call(Mi,i)?Mi[i]:"&"+i+";":Si(t||parseInt(n,16))}function Ni(e){return e.length>3&&-1!==e.indexOf("&")?e.replace(Ci,Pi):e}Object.keys(Mi).forEach((function(e){Mi[e.toUpperCase()]=Mi[e]}));var Ti="xsi:type",Oi="non-whitespace outside of root node";function Di(e){return new Error(e)}function Bi(e){return"missing namespace for prefix <"+e+">"}function Li(e){return{get:e,enumerable:!0}}function Ii(e){var t,n={};for(t in e)n[t]=e[t];return n}function Fi(e){return e+"$uri"}function ji(){return{line:0,column:0}}function Vi(e){throw e}function Wi(e){if(!this)return new Wi(e);var t,n,i,r,o,a,s,l,p,c=e&&e.proxy,u=Vi,h=ji,f=!1,m=!1,d=null,y=!1;function g(e){e instanceof Error||(e=Di(e)),d=e,u(e,h)}function v(e){o&&(e instanceof Error||(e=Di(e)),o(e,h))}this.on=function(e,p){if("function"!=typeof p)throw Di("required args ");switch(e){case"openTag":n=p;break;case"text":t=p;break;case"closeTag":i=p;break;case"error":u=p;break;case"warn":o=p;break;case"cdata":r=p;break;case"attention":l=p;break;case"question":s=p;break;case"comment":a=p;break;default:throw Di("unsupported event: "+e)}return this},this.ns=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw Di("required args ");var t,n={};for(t in e)n[t]=e[t];return n["http://www.w3.org/2001/XMLSchema-instance"]="xsi",m=!0,p=n,this},this.parse=function(e){if("string"!=typeof e)throw Di("required args ");return d=null,function(e){var o,u,d,x,w,b,E,_,A,R,S,k=m?[]:null,C=m?function(e){var t,n,i={};for(t in e)i[n=e[t]]=n,i[Fi(n)]=t;return i}(p):null,M=[],P=0,N=!1,T=!1,O=0,D=0,B="",L=0;function I(){if(null!==S)return S;var e,t,n,i,r,o,a,s,l,c,u,h=m&&C.xmlns,d=m&&f?[]:null,y=L,g=B,x=g.length,w={},b={};e:for(;y8)){for((c<65||c>122||c>90&&c<97)&&95!==c&&58!==c&&(v("illegal first char attribute name"),l=!0),u=y+1;u96&&c<123||c>64&&c<91||c>47&&c<59||46===c||45===c||95===c)){if(32===c||c<14&&c>8){v("missing attribute value"),y=u;continue e}if(61===c)break;v("illegal attribute name char"),l=!0}if("xmlns:xmlns"===(s=g.substring(y,u))&&(v("illegal declaration of xmlns"),l=!0),34===(c=g.charCodeAt(u+1)))-1===(u=g.indexOf('"',y=u+2))&&-1!==(u=g.indexOf("'",y))&&(v("attribute value quote missmatch"),l=!0);else if(39===c)-1===(u=g.indexOf("'",y=u+2))&&-1!==(u=g.indexOf('"',y))&&(v("attribute value quote missmatch"),l=!0);else for(v("missing attribute value quotes"),l=!0,u+=1;u8);u++);for(-1===u&&(v("missing closing quotes"),u=x,l=!0),l||(o=g.substring(y,u)),y=u;u+18);u++)y===u&&(v("illegal character after attribute end"),l=!0);if(y=u+1,!l)if(s in b)v("attribute <"+s+"> already defined");else if(b[s]=!0,m)if(f){if(null!==(r="xmlns"===s?"xmlns":120===s.charCodeAt(0)&&"xmlns:"===s.substr(0,6)?s.substr(6):null)){if(e=Ni(o),t=Fi(r),!(a=p[e])){if("xmlns"===r||t in C&&C[t]!==e)do{a="ns"+P++}while(void 0!==C[a]);else a=r;p[e]=a}C[r]!==a&&(i||(C=Ii(C),i=!0),C[r]=a,"xmlns"===r&&(C[Fi(a)]=e,h=a),C[t]=e),w[s]=o;continue}d.push(s,o)}else-1!==(c=s.indexOf(":"))?(n=C[s.substring(0,c)])?((s=h===n?s.substr(c+1):n+s.substr(c))===Ti&&(-1!==(c=o.indexOf(":"))?(n=o.substring(0,c),o=(n=C[n]||n)+o.substring(c)):o=h+":"+o),w[s]=o):v(Bi(s.substring(0,c))):w[s]=o;else w[s]=o}if(f)for(y=0,x=d.length;y=a&&(t=i.exec(e))&&!((s=t[0].length+t.index)>O);)r+=1,a=s;return-1==O?(o=s,n=e.substring(D)):0===D?n=e.substring(D,O):(o=O-a,n=-1==D?e.substring(O):e.substring(O,D+1)),{data:n,line:r,column:o}}h=F,c&&(R=Object.create({},{name:Li((function(){return _})),originalName:Li((function(){return A})),attrs:Li(I),ns:Li((function(){return C}))}));for(;-1!==D;){if(-1===(O=60===e.charCodeAt(D)?D:e.indexOf("<",D)))return M.length?g("unexpected end of file"):0===D?g("missing start tag"):void(D",O)))return g("unclosed cdata");if(r&&(r(e.substring(O+9,D),h),y))return;D+=3;continue}if(45===x&&45===e.charCodeAt(O+3)){if(-1===(D=e.indexOf("--\x3e",O)))return g("unclosed comment");if(a&&(a(e.substring(O+4,D),Ni,h),y))return;D+=3;continue}}if(63!==w){for(u=O+1;;u++){if(b=e.charCodeAt(u),isNaN(b))return D=-1,g("unclosed tag");if(34===b)u=-1!==(x=e.indexOf('"',u+1))?x:u;else if(39===b)u=-1!==(x=e.indexOf("'",u+1))?x:u;else if(62===b){D=u;break}}if(33!==w){if(S={},47===w){if(N=!1,T=!0,!M.length)return g("missing open tag");if(u=_=M.pop(),x=O+2+u.length,e.substring(O+2,x)!==u)return g("closing tag mismatch");for(;x8&&w<14))return g("close tag")}else{if(47===e.charCodeAt(D-1)?(u=_=e.substring(O+1,D-1),N=!0,T=!0):(u=_=e.substring(O+1,D),N=!0,T=!1),!(w>96&&w<123||w>64&&w<91||95===w||58===w))return g("illegal first char nodeName");for(x=1,d=u.length;x96&&w<123||w>64&&w<91||w>47&&w<59||45===w||95===w||46==w)){if(32===w||w<14&&w>8){_=u.substring(0,x),S=null;break}return g("invalid nodeName")}T||M.push(_)}if(m){if(o=C,N&&(T||k.push(o),null===S&&(f=-1!==u.indexOf("xmlns",x))&&(L=x,B=u,I(),f=!1)),A=_,-1!==(w=_.indexOf(":"))){if(!(E=C[_.substring(0,w)]))return g("missing namespace on <"+A+">");_=_.substr(w+1)}else E=C.xmlns;E&&(_=E+":"+_)}if(N&&(L=x,B=u,n&&(c?n(R,Ni,T,h):n(_,I,Ni,T,h),y)))return;if(T){if(i&&(i(c?R:_,Ni,N,h),y))return;m&&(C=N?o:k.pop())}D+=1}else{if(l&&(l(e.substring(O,D+1),Ni,h),y))return;D+=1}}else{if(-1===(D=e.indexOf("?>",O)))return g("unclosed question");if(s&&(s(e.substring(O,D+2),h),y))return;D+=2}}}(e),h=ji,y=!1,d},this.stop=function(){y=!0}}function zi(e){return e.xml&&"lowerCase"===e.xml.tagAlias}var Gi={xsi:"http://www.w3.org/2001/XMLSchema-instance",xml:"http://www.w3.org/XML/1998/namespace"},$i="xsi:type";function Hi(e){return e.xml&&e.xml.serialize}function Ki(e){return Hi(e)===$i}function Ui(e,t){return zi(t)?e.prefix+":"+((n=e.localName).charAt(0).toUpperCase()+n.slice(1)):e.name;var n}function qi(e){return new Error(e)}function Yi(e){return e.$descriptor}function Xi(e){E(this,e),this.elementsById={},this.references=[],this.warnings=[],this.addReference=function(e){this.references.push(e)},this.addElement=function(e){if(!e)throw qi("expected element");var t,n=this.elementsById,i=Yi(e).idProperty;if(i&&(t=e.get(i.name))){if(!/^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i.test(t))throw new Error("illegal ID <"+t+">");if(n[t])throw qi("duplicate ID <"+t+">");n[t]=e}},this.addWarning=function(e){this.warnings.push(e)}}function Zi(){}function Ji(){}function Qi(){}function er(e,t){this.property=e,this.context=t}function tr(e,t){this.element=t,this.propertyDesc=e}function nr(){}function ir(e,t,n){this.model=e,this.type=e.getType(t),this.context=n}function rr(e,t,n){ir.call(this,e,t,n)}function or(e,t,n){this.model=e,this.context=n}function ar(e){e instanceof Ri&&(e={model:e}),E(this,{lax:!1},e)}Zi.prototype.handleEnd=function(){},Zi.prototype.handleText=function(){},Zi.prototype.handleNode=function(){},Ji.prototype=Object.create(Zi.prototype),Ji.prototype.handleNode=function(){return this},Qi.prototype=Object.create(Zi.prototype),Qi.prototype.handleText=function(e){this.body=(this.body||"")+e},er.prototype=Object.create(Qi.prototype),er.prototype.handleNode=function(e){if(this.element)throw qi("expected no sub nodes");return this.element=this.createReference(e),this},er.prototype.handleEnd=function(){this.element.id=this.body},er.prototype.createReference=function(e){return{property:this.property.ns.name,id:""}},tr.prototype=Object.create(Qi.prototype),tr.prototype.handleEnd=function(){var e=this.body||"",t=this.element,n=this.propertyDesc;e=di(n.type,e),n.isMany?t.get(n.name).push(e):t.set(n.name,e)},nr.prototype=Object.create(Qi.prototype),nr.prototype.handleNode=function(e){var t=this,n=this.element;return n?t=this.handleChild(e):(n=this.element=this.createElement(e),this.context.addElement(n)),t},ir.prototype=Object.create(nr.prototype),ir.prototype.addReference=function(e){this.context.addReference(e)},ir.prototype.handleText=function(e){if(!Yi(this.element).bodyProperty)throw qi("unexpected body text <"+e+">");Qi.prototype.handleText.call(this,e)},ir.prototype.handleEnd=function(){var e=this.body,t=this.element,n=Yi(t).bodyProperty;n&&void 0!==e&&(e=di(n.type,e),t.set(n.name,e))},ir.prototype.createElement=function(e){var t,n=e.attributes,i=this.type,r=Yi(i),o=this.context,a=new i({}),s=this.model;return f(n,(function(e,n){var i=r.propertiesByName[n];i&&i.isReference?i.isMany?f(e.split(" "),(function(e){o.addReference({element:a,property:i.ns.name,id:e})})):o.addReference({element:a,property:i.ns.name,id:e}):(i?e=di(i.type,e):"xmlns"!==n&&(t=vi(n,r.ns.prefix),s.getPackage(t.prefix)&&o.addWarning({message:"unknown attribute <"+n+">",element:a,property:n,value:e})),a.set(n,e))})),a},ir.prototype.getPropertyForNode=function(e){var t,n,i=vi(e.name),r=this.type,o=this.model,a=Yi(r),s=i.name,l=a.propertiesByName[s];if(l&&!l.isAttr)return Ki(l)&&(t=e.attributes[$i])?(t=function(e,t){var n=vi(e);return function(e,t){var n=e.name,i=e.localName,r=t.xml&&t.xml.typePrefix;return r&&0===i.indexOf(r)?e.prefix+":"+i.slice(r.length):n}(n,t.getPackage(n.prefix))}(t,o),E({},l,{effectiveType:Yi(n=o.getType(t)).name})):l;var p=o.getPackage(i.prefix);if(p){if(t=Ui(i,p),n=o.getType(t),l=u(a.properties,(function(e){return!e.isVirtual&&!e.isReference&&!e.isAttribute&&n.hasType(e.type)})))return E({},l,{effectiveType:Yi(n).name})}else if(l=u(a.properties,(function(e){return!e.isReference&&!e.isAttribute&&"Element"===e.type})))return l;throw qi("unrecognized element <"+i.name+">")},ir.prototype.toString=function(){return"ElementDescriptor["+Yi(this.type).name+"]"},ir.prototype.valueHandler=function(e,t){return new tr(e,t)},ir.prototype.referenceHandler=function(e){return new er(e,this.context)},ir.prototype.handler=function(e){return"Element"===e?new or(this.model,e,this.context):new ir(this.model,e,this.context)},ir.prototype.handleChild=function(e){var t,n,i,r;if(t=this.getPropertyForNode(e),i=this.element,gi(n=t.effectiveType||t.type))return this.valueHandler(t,i);var o=(r=t.isReference?this.referenceHandler(t).handleNode(e):this.handler(n).handleNode(e)).element;return void 0!==o&&(t.isMany?i.get(t.name).push(o):i.set(t.name,o),t.isReference?(E(o,{element:i}),this.context.addReference(o)):o.$parent=i),r},rr.prototype=Object.create(ir.prototype),rr.prototype.createElement=function(e){var t=e.name,n=vi(t),i=this.model,r=this.type,o=i.getPackage(n.prefix),a=o&&Ui(n,o)||t;if(!r.hasType(a))throw qi("unexpected element <"+e.originalName+">");return ir.prototype.createElement.call(this,e)},or.prototype=Object.create(nr.prototype),or.prototype.createElement=function(e){var t=e.name,n=vi(t).prefix,i=e.ns[n+"$uri"],r=e.attributes;return this.model.createAny(t,i,r)},or.prototype.handleChild=function(e){var t=new or(this.model,"Element",this.context).handleNode(e),n=this.element,i=t.element;return void 0!==i&&((n.$children=n.$children||[]).push(i),i.$parent=n),t},or.prototype.handleEnd=function(){this.body&&(this.element.$body=this.body)},ar.prototype.fromXML=function(e,t,n){var i=t.rootHandler;t instanceof ir?(i=t,t={}):"string"==typeof t?(i=this.handler(t),t={}):"string"==typeof i&&(i=this.handler(i));var r=this.model,o=this.lax,a=new Xi(E({},t,{rootHandler:i})),s=new Wi({proxy:!0}),l=function(){var e=[];return Object.defineProperty(e,"peek",{value:function(){return this[this.length-1]}}),e}();function p(e,t,n){var i=t(),r=i.line,o=i.column,s=i.data;"<"===s.charAt(0)&&-1!==s.indexOf(" ")&&(s=s.slice(0,s.indexOf(" "))+">");var l="unparsable content "+(s?s+" ":"")+"detected\n\tline: "+r+"\n\tcolumn: "+o+"\n\tnested error: "+e.message;if(n)return a.addWarning({message:l,error:e}),!0;throw qi(l)}function c(e,t){return p(e,t,!0)}i.context=a,l.push(i);var u=/^<\?xml /i,h=/ encoding="([^"]+)"/i,f=/^utf-8$/i;function m(e,t){try{l.peek().handleText(e)}catch(e){c(e,t)}}var d=r.getPackages().reduce((function(e,t){return e[t.uri]=t.prefix,e}),{"http://www.w3.org/XML/1998/namespace":"xml"});return s.ns(d).on("openTag",(function(e,t,n,i){var r=e.attrs||{},a=Object.keys(r).reduce((function(e,n){var i=t(r[n]);return e[n]=i,e}),{});!function(e,t){var n=l.peek();try{l.push(n.handleNode(e))}catch(e){p(e,t,o)&&l.push(new Ji)}}({name:e.name,originalName:e.originalName,attributes:a,ns:e.ns},i)})).on("question",(function(e){if(u.test(e)){var t=h.exec(e),n=t&&t[1];n&&!f.test(n)&&a.addWarning({message:"unsupported document encoding <"+n+">, falling back to UTF-8"})}})).on("closeTag",(function(){l.pop().handleEnd()})).on("cdata",m).on("text",(function(e,t,n){!function(e,t){e.trim()&&m(e,t)}(t(e),n)})).on("error",p).on("warn",c),new Promise((function(t,n){var r;try{s.parse(e),function(){var e,t,n=a.elementsById,i=a.references;for(e=0;t=i[e];e++){var r=t.element,o=n[t.id],s=Yi(r).propertiesByName[t.property];if(o||a.addWarning({message:"unresolved reference <"+t.id+">",element:t.element,property:t.property,value:t.id}),s.isMany){var l=r.get(s.name),p=l.indexOf(t);-1===p&&(p=l.length),o?l[p]=o:l.splice(p,1)}else r.set(s.name,o)}}()}catch(e){r=e}var o=i.element;r||o||(r=qi("failed to parse document as <"+i.type.$descriptor.name+">"));var l=a.warnings,p=a.references,c=a.elementsById;return r?(r.warnings=l,n(r)):t({rootElement:o,elementsById:c,references:p,warnings:l})}))},ar.prototype.handler=function(e){return new rr(this.model,e)};var sr=/<|>|'|"|&|\n\r|\n/g,lr=/<|>|&/g;function pr(e){var t={},n={},i={},r=[],o=[];this.byUri=function(t){return n[t]||e&&e.byUri(t)},this.add=function(e,t){n[e.uri]=e,t?r.push(e):o.push(e),this.mapPrefix(e.prefix,e.uri)},this.uriByPrefix=function(e){return t[e||"xmlns"]},this.mapPrefix=function(e,n){t[e||"xmlns"]=n},this.getNSKey=function(e){return void 0!==e.prefix?e.uri+"|"+e.prefix:e.uri},this.logUsed=function(t){var n=t.uri,r=this.getNSKey(t);i[r]=this.byUri(n),e&&e.logUsed(t)},this.getUsed=function(e){var t=this;return[].concat(r,o).filter((function(e){var n=t.getNSKey(e);return i[n]}))}}function cr(e,t){return zi(t)?(n=e).charAt(0).toLowerCase()+n.slice(1):e;var n}function ur(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function hr(e){return p(e)?e:(e.prefix?e.prefix+":":"")+e.localName}var fr={"\n":"#10","\n\r":"#10",'"':"#34","'":"#39","<":"#60",">":"#62","&":"#38"},mr={"<":"lt",">":"gt","&":"amp"};function dr(e,t,n){return(e=p(e)?e:""+e).replace(t,(function(e){return"&"+n[e]+";"}))}function yr(e){this.tagName=e}function gr(){}function vr(e){this.tagName=e}function xr(e,t){this.body=[],this.attrs=[],this.parent=e,this.propertyDescriptor=t}function wr(e,t){xr.call(this,e,t)}function br(){this.value="",this.write=function(e){this.value+=e}}function Er(e,t){var n=[""];this.append=function(t){return e.write(t),this},this.appendNewLine=function(){return t&&e.write("\n"),this},this.appendIndent=function(){return t&&e.write(n.join(" ")),this},this.indent=function(){return n.push(""),this},this.unindent=function(){return n.pop(),this}}function _r(e){return e=E({format:!1,preamble:!0},e||{}),{toXML:function(t,n){var i=n||new br,r=new Er(i,e.format);if(e.preamble&&r.append('\n'),(new xr).build(t).serializeTo(r),!n)return i.value}}}function Ar(e,t){Ri.call(this,e,t)}yr.prototype.build=function(e){return this.element=e,this},yr.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"+this.element.id+"").appendNewLine()},gr.prototype.serializeValue=gr.prototype.serializeTo=function(e){e.append(this.escape?dr(this.value,lr,mr):this.value)},gr.prototype.build=function(e,t){return this.value=t,"String"===e.type&&-1!==t.search(lr)&&(this.escape=!0),this},ur(vr,gr),vr.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"),this.serializeValue(e),e.append("").appendNewLine()},xr.prototype.build=function(e){this.element=e;var t,n,i=e.$descriptor,r=this.propertyDescriptor,o=i.isGeneric;return t=o?this.parseGeneric(e):this.parseNsAttributes(e),this.ns=r?this.nsPropertyTagName(r):this.nsTagName(i),this.tagName=this.addTagName(this.ns),o||(n=function(e){return h(e.$descriptor.properties,(function(t){var n=t.name;if(t.isVirtual)return!1;if(!c(e,n))return!1;var i=e[n];return i!==t.default&&null!==i&&(!t.isMany||i.length)}))}(e),this.parseAttributes(h(n,(function(e){return e.isAttr}))),this.parseContainments(function(e){return h(e,(function(e){return!e.isAttr}))}(n))),this.parseGenericAttributes(e,t),this},xr.prototype.nsTagName=function(e){return function(e,t){return t.isGeneric?E({localName:t.ns.localName},e):E({localName:cr(t.ns.localName,t.$pkg)},e)}(this.logNamespaceUsed(e.ns),e)},xr.prototype.nsPropertyTagName=function(e){return function(e,t){return E({localName:t.ns.localName},e)}(this.logNamespaceUsed(e.ns),e)},xr.prototype.isLocalNs=function(e){return e.uri===this.ns.uri},xr.prototype.nsAttributeName=function(e){var t;if(t=p(e)?vi(e):e.ns,e.inherited)return{localName:t.localName};var n=this.logNamespaceUsed(t);return this.getNamespaces().logUsed(n),this.isLocalNs(n)?{localName:t.localName}:E({localName:t.localName},n)},xr.prototype.parseGeneric=function(e){var t=this,n=this.body,i=[];return f(e,(function(r,o){"$body"===o?n.push((new gr).build({type:"String"},r)):"$children"===o?f(r,(function(e){n.push(new xr(t).build(e))})):0!==o.indexOf("$")&&t.parseNsAttribute(e,o,r)&&i.push({name:o,value:r})})),i},xr.prototype.parseNsAttribute=function(e,t,n){var i,r=e.$model,o=vi(t);if("xmlns"===o.prefix&&(i={prefix:o.localName,uri:n}),o.prefix||"xmlns"!==o.localName||(i={uri:n}),!i)return{name:t,value:n};if(r&&r.getPackage(n))this.logNamespace(i,!0,!0);else{var a=this.logNamespaceUsed(i,!0);this.getNamespaces().logUsed(a)}},xr.prototype.parseNsAttributes=function(e,t){var n=this,i=e.$attrs,r=[];return f(i,(function(t,i){var o=n.parseNsAttribute(e,i,t);o&&r.push(o)})),r},xr.prototype.parseGenericAttributes=function(e,t){var n=this;f(t,(function(t){if(t.name!==$i)try{n.addAttribute(n.nsAttributeName(t.name),t.value)}catch(n){console.warn("missing namespace information for ",t.name,"=",t.value,"on",e,n)}}))},xr.prototype.parseContainments=function(e){var t=this,n=this.body,i=this.element;f(e,(function(e){var r=i.get(e.name),o=e.isReference;if(e.isMany||(r=[r]),e.isBody)n.push((new gr).build(e,r[0]));else if(gi(e.type))f(r,(function(i){n.push(new vr(t.addTagName(t.nsPropertyTagName(e))).build(e,i))}));else if(o)f(r,(function(i){n.push(new yr(t.addTagName(t.nsPropertyTagName(e))).build(i))}));else{var a=Ki(e),s=function(e){return"property"===Hi(e)}(e);f(r,(function(i){var r;r=a?new wr(t,e):s?new xr(t,e):new xr(t),n.push(r.build(i))}))}}))},xr.prototype.getNamespaces=function(e){var t,n=this.namespaces,i=this.parent;return n||(t=i&&i.getNamespaces(),e||!t?this.namespaces=n=new pr(t):n=t),n},xr.prototype.logNamespace=function(e,t,n){var i=this.getNamespaces(n),r=e.uri,o=e.prefix;return i.byUri(r)&&!n||i.add(e,t),i.mapPrefix(o,r),e},xr.prototype.logNamespaceUsed=function(e,t){var n,i,r,o=this.element.$model,a=this.getNamespaces(t),s=e.prefix,l=e.uri;if(!s&&!l)return{localName:e.localName};if(r=Gi[s]||o&&(o.getPackage(s)||{}).uri,!(l=l||r||a.uriByPrefix(s)))throw new Error("no namespace uri given for prefix <"+s+">");if(!(e=a.byUri(l))){for(n=s,i=1;a.uriByPrefix(n);)n=s+"_"+i++;e=this.logNamespace({prefix:n,uri:l},r===l)}return s&&a.mapPrefix(s,l),e},xr.prototype.parseAttributes=function(e){var t=this,n=this.element;f(e,(function(e){var i=n.get(e.name);if(e.isReference)if(e.isMany){var r=[];f(i,(function(e){r.push(e.id)})),i=r.join(" ")}else i=i.id;t.addAttribute(t.nsAttributeName(e),i)}))},xr.prototype.addTagName=function(e){var t=this.logNamespaceUsed(e);return this.getNamespaces().logUsed(t),hr(e)},xr.prototype.addAttribute=function(e,t){var n=this.attrs;p(t)&&(t=dr(t,sr,fr));var i=function(e,t){const n=v(t);let i=o(e)?-1:void 0;return f(e,(function(e,t){if(n(e,t))return i=t,!1})),i}(n,(function(t){return t.name.localName===e.localName&&t.name.uri===e.uri&&t.name.prefix===e.prefix})),r={name:e,value:t};-1!==i?n.splice(i,1,r):n.push(r)},xr.prototype.serializeAttributes=function(e){var t=this.attrs,n=this.namespaces;n&&(t=function(e){return e.getUsed().filter((function(e){return"xml"!==e.prefix})).map((function(e){return{name:"xmlns"+(e.prefix?":"+e.prefix:""),value:e.uri}}))}(n).concat(t)),f(t,(function(t){e.append(" ").append(hr(t.name)).append('="').append(t.value).append('"')}))},xr.prototype.serializeTo=function(e){var t=this.body[0],n=t&&t.constructor!==gr;e.appendIndent().append("<"+this.tagName),this.serializeAttributes(e),e.append(t?">":" />"),t&&(n&&e.appendNewLine().indent(),f(this.body,(function(t){t.serializeTo(e)})),n&&e.unindent().appendIndent(),e.append("")),e.appendNewLine()},ur(wr,xr),wr.prototype.parseNsAttributes=function(e){var t=xr.prototype.parseNsAttributes.call(this,e),n=e.$descriptor;if(n.name===this.propertyDescriptor.type)return t;var i=this.typeNs=this.nsTagName(n);this.getNamespaces().logUsed(this.typeNs);var r=e.$model.getPackage(i.uri),o=r.xml&&r.xml.typePrefix||"";return this.addAttribute(this.nsAttributeName($i),(i.prefix?i.prefix+":":"")+o+n.ns.localName),t},wr.prototype.isLocalNs=function(e){return e.uri===(this.typeNs||this.ns).uri},Ar.prototype=Object.create(Ri.prototype),Ar.prototype.fromXML=function(e,t,n){p(t)||(n=t,t="bpmn:Definitions");var i=new ar(E({model:this,lax:!0},n)),r=i.handler(t);return i.fromXML(e,r)},Ar.prototype.toXML=function(e,t){var n=new _r(t);return new Promise((function(t,i){try{return t({xml:n.toXML(e)})}catch(e){return i(e)}}))};var Rr={bpmn:{name:"BPMN20",uri:"http://www.omg.org/spec/BPMN/20100524/MODEL",prefix:"bpmn",associations:[],types:[{name:"Interface",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"operations",type:"Operation",isMany:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"Operation",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"inMessageRef",type:"Message",isReference:!0},{name:"outMessageRef",type:"Message",isReference:!0},{name:"errorRef",type:"Error",isMany:!0,isReference:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"EndPoint",superClass:["RootElement"]},{name:"Auditing",superClass:["BaseElement"]},{name:"GlobalTask",superClass:["CallableElement"],properties:[{name:"resources",type:"ResourceRole",isMany:!0}]},{name:"Monitoring",superClass:["BaseElement"]},{name:"Performer",superClass:["ResourceRole"]},{name:"Process",superClass:["FlowElementsContainer","CallableElement"],properties:[{name:"processType",type:"ProcessType",isAttr:!0},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"properties",type:"Property",isMany:!0},{name:"laneSets",isMany:!0,replaces:"FlowElementsContainer#laneSets",type:"LaneSet"},{name:"flowElements",isMany:!0,replaces:"FlowElementsContainer#flowElements",type:"FlowElement"},{name:"artifacts",type:"Artifact",isMany:!0},{name:"resources",type:"ResourceRole",isMany:!0},{name:"correlationSubscriptions",type:"CorrelationSubscription",isMany:!0},{name:"supports",type:"Process",isMany:!0,isReference:!0},{name:"definitionalCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"isExecutable",isAttr:!0,type:"Boolean"}]},{name:"LaneSet",superClass:["BaseElement"],properties:[{name:"lanes",type:"Lane",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Lane",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"partitionElementRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"partitionElement",type:"BaseElement"},{name:"flowNodeRef",type:"FlowNode",isMany:!0,isReference:!0},{name:"childLaneSet",type:"LaneSet",xml:{serialize:"xsi:type"}}]},{name:"GlobalManualTask",superClass:["GlobalTask"]},{name:"ManualTask",superClass:["Task"]},{name:"UserTask",superClass:["Task"],properties:[{name:"renderings",type:"Rendering",isMany:!0},{name:"implementation",isAttr:!0,type:"String"}]},{name:"Rendering",superClass:["BaseElement"]},{name:"HumanPerformer",superClass:["Performer"]},{name:"PotentialOwner",superClass:["HumanPerformer"]},{name:"GlobalUserTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"renderings",type:"Rendering",isMany:!0}]},{name:"Gateway",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"gatewayDirection",type:"GatewayDirection",default:"Unspecified",isAttr:!0}]},{name:"EventBasedGateway",superClass:["Gateway"],properties:[{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"eventGatewayType",type:"EventBasedGatewayType",isAttr:!0,default:"Exclusive"}]},{name:"ComplexGateway",superClass:["Gateway"],properties:[{name:"activationCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ExclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"InclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ParallelGateway",superClass:["Gateway"]},{name:"RootElement",isAbstract:!0,superClass:["BaseElement"]},{name:"Relationship",superClass:["BaseElement"],properties:[{name:"type",isAttr:!0,type:"String"},{name:"direction",type:"RelationshipDirection",isAttr:!0},{name:"source",isMany:!0,isReference:!0,type:"Element"},{name:"target",isMany:!0,isReference:!0,type:"Element"}]},{name:"BaseElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,type:"String",isId:!0},{name:"documentation",type:"Documentation",isMany:!0},{name:"extensionDefinitions",type:"ExtensionDefinition",isMany:!0,isReference:!0},{name:"extensionElements",type:"ExtensionElements"}]},{name:"Extension",properties:[{name:"mustUnderstand",default:!1,isAttr:!0,type:"Boolean"},{name:"definition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"extensionAttributeDefinitions",type:"ExtensionAttributeDefinition",isMany:!0}]},{name:"ExtensionAttributeDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"type",isAttr:!0,type:"String"},{name:"isReference",default:!1,isAttr:!0,type:"Boolean"},{name:"extensionDefinition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionElements",properties:[{name:"valueRef",isAttr:!0,isReference:!0,type:"Element"},{name:"values",type:"Element",isMany:!0},{name:"extensionAttributeDefinition",type:"ExtensionAttributeDefinition",isAttr:!0,isReference:!0}]},{name:"Documentation",superClass:["BaseElement"],properties:[{name:"text",type:"String",isBody:!0},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Event",isAbstract:!0,superClass:["FlowNode","InteractionNode"],properties:[{name:"properties",type:"Property",isMany:!0}]},{name:"IntermediateCatchEvent",superClass:["CatchEvent"]},{name:"IntermediateThrowEvent",superClass:["ThrowEvent"]},{name:"EndEvent",superClass:["ThrowEvent"]},{name:"StartEvent",superClass:["CatchEvent"],properties:[{name:"isInterrupting",default:!0,isAttr:!0,type:"Boolean"}]},{name:"ThrowEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"inputSet",type:"InputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"CatchEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"parallelMultiple",isAttr:!0,type:"Boolean",default:!1},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"outputSet",type:"OutputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"BoundaryEvent",superClass:["CatchEvent"],properties:[{name:"cancelActivity",default:!0,isAttr:!0,type:"Boolean"},{name:"attachedToRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"EventDefinition",isAbstract:!0,superClass:["RootElement"]},{name:"CancelEventDefinition",superClass:["EventDefinition"]},{name:"ErrorEventDefinition",superClass:["EventDefinition"],properties:[{name:"errorRef",type:"Error",isAttr:!0,isReference:!0}]},{name:"TerminateEventDefinition",superClass:["EventDefinition"]},{name:"EscalationEventDefinition",superClass:["EventDefinition"],properties:[{name:"escalationRef",type:"Escalation",isAttr:!0,isReference:!0}]},{name:"Escalation",properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"escalationCode",isAttr:!0,type:"String"}],superClass:["RootElement"]},{name:"CompensateEventDefinition",superClass:["EventDefinition"],properties:[{name:"waitForCompletion",isAttr:!0,type:"Boolean",default:!0},{name:"activityRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"TimerEventDefinition",superClass:["EventDefinition"],properties:[{name:"timeDate",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeCycle",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeDuration",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"LinkEventDefinition",superClass:["EventDefinition"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"target",type:"LinkEventDefinition",isReference:!0},{name:"source",type:"LinkEventDefinition",isMany:!0,isReference:!0}]},{name:"MessageEventDefinition",superClass:["EventDefinition"],properties:[{name:"messageRef",type:"Message",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"ConditionalEventDefinition",superClass:["EventDefinition"],properties:[{name:"condition",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"SignalEventDefinition",superClass:["EventDefinition"],properties:[{name:"signalRef",type:"Signal",isAttr:!0,isReference:!0}]},{name:"Signal",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ImplicitThrowEvent",superClass:["ThrowEvent"]},{name:"DataState",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"ItemAwareElement",superClass:["BaseElement"],properties:[{name:"itemSubjectRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"dataState",type:"DataState"}]},{name:"DataAssociation",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"ItemAwareElement",isMany:!0,isReference:!0},{name:"targetRef",type:"ItemAwareElement",isReference:!0},{name:"transformation",type:"FormalExpression",xml:{serialize:"property"}},{name:"assignment",type:"Assignment",isMany:!0}]},{name:"DataInput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"inputSetRef",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithOptional",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithWhileExecuting",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"DataOutput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"outputSetRef",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithOptional",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithWhileExecuting",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"InputSet",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"dataInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"optionalInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"whileExecutingInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"outputSetRefs",type:"OutputSet",isMany:!0,isReference:!0}]},{name:"OutputSet",superClass:["BaseElement"],properties:[{name:"dataOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"inputSetRefs",type:"InputSet",isMany:!0,isReference:!0},{name:"optionalOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"whileExecutingOutputRefs",type:"DataOutput",isMany:!0,isReference:!0}]},{name:"Property",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"DataInputAssociation",superClass:["DataAssociation"]},{name:"DataOutputAssociation",superClass:["DataAssociation"]},{name:"InputOutputSpecification",superClass:["BaseElement"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"inputSets",type:"InputSet",isMany:!0},{name:"outputSets",type:"OutputSet",isMany:!0}]},{name:"DataObject",superClass:["FlowElement","ItemAwareElement"],properties:[{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"}]},{name:"InputOutputBinding",properties:[{name:"inputDataRef",type:"InputSet",isAttr:!0,isReference:!0},{name:"outputDataRef",type:"OutputSet",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"Assignment",superClass:["BaseElement"],properties:[{name:"from",type:"Expression",xml:{serialize:"xsi:type"}},{name:"to",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"DataStore",superClass:["RootElement","ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"capacity",isAttr:!0,type:"Integer"},{name:"isUnlimited",default:!0,isAttr:!0,type:"Boolean"}]},{name:"DataStoreReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataStoreRef",type:"DataStore",isAttr:!0,isReference:!0}]},{name:"DataObjectReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataObjectRef",type:"DataObject",isAttr:!0,isReference:!0}]},{name:"ConversationLink",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ConversationAssociation",superClass:["BaseElement"],properties:[{name:"innerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0},{name:"outerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0}]},{name:"CallConversation",superClass:["ConversationNode"],properties:[{name:"calledCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"Conversation",superClass:["ConversationNode"]},{name:"SubConversation",superClass:["ConversationNode"],properties:[{name:"conversationNodes",type:"ConversationNode",isMany:!0}]},{name:"ConversationNode",isAbstract:!0,superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"messageFlowRefs",type:"MessageFlow",isMany:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0}]},{name:"GlobalConversation",superClass:["Collaboration"]},{name:"PartnerEntity",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"PartnerRole",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"CorrelationProperty",superClass:["RootElement"],properties:[{name:"correlationPropertyRetrievalExpression",type:"CorrelationPropertyRetrievalExpression",isMany:!0},{name:"name",isAttr:!0,type:"String"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Error",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"errorCode",isAttr:!0,type:"String"}]},{name:"CorrelationKey",superClass:["BaseElement"],properties:[{name:"correlationPropertyRef",type:"CorrelationProperty",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Expression",superClass:["BaseElement"],isAbstract:!1,properties:[{name:"body",isBody:!0,type:"String"}]},{name:"FormalExpression",superClass:["Expression"],properties:[{name:"language",isAttr:!0,type:"String"},{name:"evaluatesToTypeRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Message",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"itemRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"ItemDefinition",superClass:["RootElement"],properties:[{name:"itemKind",type:"ItemKind",isAttr:!0},{name:"structureRef",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"import",type:"Import",isAttr:!0,isReference:!0}]},{name:"FlowElement",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"categoryValueRef",type:"CategoryValue",isMany:!0,isReference:!0}]},{name:"SequenceFlow",superClass:["FlowElement"],properties:[{name:"isImmediate",isAttr:!0,type:"Boolean"},{name:"conditionExpression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"sourceRef",type:"FlowNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"FlowNode",isAttr:!0,isReference:!0}]},{name:"FlowElementsContainer",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"laneSets",type:"LaneSet",isMany:!0},{name:"flowElements",type:"FlowElement",isMany:!0}]},{name:"CallableElement",isAbstract:!0,superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"supportedInterfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"ioBinding",type:"InputOutputBinding",isMany:!0,xml:{serialize:"property"}}]},{name:"FlowNode",isAbstract:!0,superClass:["FlowElement"],properties:[{name:"incoming",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"outgoing",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"lanes",type:"Lane",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"CorrelationPropertyRetrievalExpression",superClass:["BaseElement"],properties:[{name:"messagePath",type:"FormalExpression"},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"CorrelationPropertyBinding",superClass:["BaseElement"],properties:[{name:"dataPath",type:"FormalExpression"},{name:"correlationPropertyRef",type:"CorrelationProperty",isAttr:!0,isReference:!0}]},{name:"Resource",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"resourceParameters",type:"ResourceParameter",isMany:!0}]},{name:"ResourceParameter",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isRequired",isAttr:!0,type:"Boolean"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"CorrelationSubscription",superClass:["BaseElement"],properties:[{name:"correlationKeyRef",type:"CorrelationKey",isAttr:!0,isReference:!0},{name:"correlationPropertyBinding",type:"CorrelationPropertyBinding",isMany:!0}]},{name:"MessageFlow",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"MessageFlowAssociation",superClass:["BaseElement"],properties:[{name:"innerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0},{name:"outerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0}]},{name:"InteractionNode",isAbstract:!0,properties:[{name:"incomingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0},{name:"outgoingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"Participant",superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"interfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"participantMultiplicity",type:"ParticipantMultiplicity"},{name:"endPointRefs",type:"EndPoint",isMany:!0,isReference:!0},{name:"processRef",type:"Process",isAttr:!0,isReference:!0}]},{name:"ParticipantAssociation",superClass:["BaseElement"],properties:[{name:"innerParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"outerParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"ParticipantMultiplicity",properties:[{name:"minimum",default:0,isAttr:!0,type:"Integer"},{name:"maximum",default:1,isAttr:!0,type:"Integer"}],superClass:["BaseElement"]},{name:"Collaboration",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"participants",type:"Participant",isMany:!0},{name:"messageFlows",type:"MessageFlow",isMany:!0},{name:"artifacts",type:"Artifact",isMany:!0},{name:"conversations",type:"ConversationNode",isMany:!0},{name:"conversationAssociations",type:"ConversationAssociation"},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0},{name:"messageFlowAssociations",type:"MessageFlowAssociation",isMany:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"choreographyRef",type:"Choreography",isMany:!0,isReference:!0},{name:"conversationLinks",type:"ConversationLink",isMany:!0}]},{name:"ChoreographyActivity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"loopType",type:"ChoreographyLoopType",default:"None",isAttr:!0}]},{name:"CallChoreography",superClass:["ChoreographyActivity"],properties:[{name:"calledChoreographyRef",type:"Choreography",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"SubChoreography",superClass:["ChoreographyActivity","FlowElementsContainer"],properties:[{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"ChoreographyTask",superClass:["ChoreographyActivity"],properties:[{name:"messageFlowRef",type:"MessageFlow",isMany:!0,isReference:!0}]},{name:"Choreography",superClass:["Collaboration","FlowElementsContainer"]},{name:"GlobalChoreographyTask",superClass:["Choreography"],properties:[{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"TextAnnotation",superClass:["Artifact"],properties:[{name:"text",type:"String"},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Group",superClass:["Artifact"],properties:[{name:"categoryValueRef",type:"CategoryValue",isAttr:!0,isReference:!0}]},{name:"Association",superClass:["Artifact"],properties:[{name:"associationDirection",type:"AssociationDirection",isAttr:!0},{name:"sourceRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"targetRef",type:"BaseElement",isAttr:!0,isReference:!0}]},{name:"Category",superClass:["RootElement"],properties:[{name:"categoryValue",type:"CategoryValue",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Artifact",isAbstract:!0,superClass:["BaseElement"]},{name:"CategoryValue",superClass:["BaseElement"],properties:[{name:"categorizedFlowElements",type:"FlowElement",isMany:!0,isVirtual:!0,isReference:!0},{name:"value",isAttr:!0,type:"String"}]},{name:"Activity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"isForCompensation",default:!1,isAttr:!0,type:"Boolean"},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"boundaryEventRefs",type:"BoundaryEvent",isMany:!0,isReference:!0},{name:"properties",type:"Property",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"startQuantity",default:1,isAttr:!0,type:"Integer"},{name:"resources",type:"ResourceRole",isMany:!0},{name:"completionQuantity",default:1,isAttr:!0,type:"Integer"},{name:"loopCharacteristics",type:"LoopCharacteristics"}]},{name:"ServiceTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"SubProcess",superClass:["Activity","FlowElementsContainer","InteractionNode"],properties:[{name:"triggeredByEvent",default:!1,isAttr:!0,type:"Boolean"},{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"LoopCharacteristics",isAbstract:!0,superClass:["BaseElement"]},{name:"MultiInstanceLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"isSequential",default:!1,isAttr:!0,type:"Boolean"},{name:"behavior",type:"MultiInstanceBehavior",default:"All",isAttr:!0},{name:"loopCardinality",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopDataInputRef",type:"ItemAwareElement",isReference:!0},{name:"loopDataOutputRef",type:"ItemAwareElement",isReference:!0},{name:"inputDataItem",type:"DataInput",xml:{serialize:"property"}},{name:"outputDataItem",type:"DataOutput",xml:{serialize:"property"}},{name:"complexBehaviorDefinition",type:"ComplexBehaviorDefinition",isMany:!0},{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"oneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0},{name:"noneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0}]},{name:"StandardLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"testBefore",default:!1,isAttr:!0,type:"Boolean"},{name:"loopCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopMaximum",type:"Integer",isAttr:!0}]},{name:"CallActivity",superClass:["Activity","InteractionNode"],properties:[{name:"calledElement",type:"String",isAttr:!0}]},{name:"Task",superClass:["Activity","InteractionNode"]},{name:"SendTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ReceiveTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ScriptTask",superClass:["Task"],properties:[{name:"scriptFormat",isAttr:!0,type:"String"},{name:"script",type:"String"}]},{name:"BusinessRuleTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"AdHocSubProcess",superClass:["SubProcess"],properties:[{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"ordering",type:"AdHocOrdering",isAttr:!0},{name:"cancelRemainingInstances",default:!0,isAttr:!0,type:"Boolean"}]},{name:"Transaction",superClass:["SubProcess"],properties:[{name:"protocol",isAttr:!0,type:"String"},{name:"method",isAttr:!0,type:"String"}]},{name:"GlobalScriptTask",superClass:["GlobalTask"],properties:[{name:"scriptLanguage",isAttr:!0,type:"String"},{name:"script",isAttr:!0,type:"String"}]},{name:"GlobalBusinessRuleTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"ComplexBehaviorDefinition",superClass:["BaseElement"],properties:[{name:"condition",type:"FormalExpression"},{name:"event",type:"ImplicitThrowEvent"}]},{name:"ResourceRole",superClass:["BaseElement"],properties:[{name:"resourceRef",type:"Resource",isReference:!0},{name:"resourceParameterBindings",type:"ResourceParameterBinding",isMany:!0},{name:"resourceAssignmentExpression",type:"ResourceAssignmentExpression"},{name:"name",isAttr:!0,type:"String"}]},{name:"ResourceParameterBinding",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"parameterRef",type:"ResourceParameter",isAttr:!0,isReference:!0}],superClass:["BaseElement"]},{name:"ResourceAssignmentExpression",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}}],superClass:["BaseElement"]},{name:"Import",properties:[{name:"importType",isAttr:!0,type:"String"},{name:"location",isAttr:!0,type:"String"},{name:"namespace",isAttr:!0,type:"String"}]},{name:"Definitions",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"targetNamespace",isAttr:!0,type:"String"},{name:"expressionLanguage",default:"http://www.w3.org/1999/XPath",isAttr:!0,type:"String"},{name:"typeLanguage",default:"http://www.w3.org/2001/XMLSchema",isAttr:!0,type:"String"},{name:"imports",type:"Import",isMany:!0},{name:"extensions",type:"Extension",isMany:!0},{name:"rootElements",type:"RootElement",isMany:!0},{name:"diagrams",isMany:!0,type:"bpmndi:BPMNDiagram"},{name:"exporter",isAttr:!0,type:"String"},{name:"relationships",type:"Relationship",isMany:!0},{name:"exporterVersion",isAttr:!0,type:"String"}]}],enumerations:[{name:"ProcessType",literalValues:[{name:"None"},{name:"Public"},{name:"Private"}]},{name:"GatewayDirection",literalValues:[{name:"Unspecified"},{name:"Converging"},{name:"Diverging"},{name:"Mixed"}]},{name:"EventBasedGatewayType",literalValues:[{name:"Parallel"},{name:"Exclusive"}]},{name:"RelationshipDirection",literalValues:[{name:"None"},{name:"Forward"},{name:"Backward"},{name:"Both"}]},{name:"ItemKind",literalValues:[{name:"Physical"},{name:"Information"}]},{name:"ChoreographyLoopType",literalValues:[{name:"None"},{name:"Standard"},{name:"MultiInstanceSequential"},{name:"MultiInstanceParallel"}]},{name:"AssociationDirection",literalValues:[{name:"None"},{name:"One"},{name:"Both"}]},{name:"MultiInstanceBehavior",literalValues:[{name:"None"},{name:"One"},{name:"All"},{name:"Complex"}]},{name:"AdHocOrdering",literalValues:[{name:"Parallel"},{name:"Sequential"}]}],xml:{tagAlias:"lowerCase",typePrefix:"t"}},bpmndi:{name:"BPMNDI",uri:"http://www.omg.org/spec/BPMN/20100524/DI",prefix:"bpmndi",types:[{name:"BPMNDiagram",properties:[{name:"plane",type:"BPMNPlane",redefines:"di:Diagram#rootElement"},{name:"labelStyle",type:"BPMNLabelStyle",isMany:!0}],superClass:["di:Diagram"]},{name:"BPMNPlane",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"}],superClass:["di:Plane"]},{name:"BPMNShape",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"isHorizontal",isAttr:!0,type:"Boolean"},{name:"isExpanded",isAttr:!0,type:"Boolean"},{name:"isMarkerVisible",isAttr:!0,type:"Boolean"},{name:"label",type:"BPMNLabel"},{name:"isMessageVisible",isAttr:!0,type:"Boolean"},{name:"participantBandKind",type:"ParticipantBandKind",isAttr:!0},{name:"choreographyActivityShape",type:"BPMNShape",isAttr:!0,isReference:!0}],superClass:["di:LabeledShape"]},{name:"BPMNEdge",properties:[{name:"label",type:"BPMNLabel"},{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"sourceElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#source"},{name:"targetElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#target"},{name:"messageVisibleKind",type:"MessageVisibleKind",isAttr:!0,default:"initiating"}],superClass:["di:LabeledEdge"]},{name:"BPMNLabel",properties:[{name:"labelStyle",type:"BPMNLabelStyle",isAttr:!0,isReference:!0,redefines:"di:DiagramElement#style"}],superClass:["di:Label"]},{name:"BPMNLabelStyle",properties:[{name:"font",type:"dc:Font"}],superClass:["di:Style"]}],enumerations:[{name:"ParticipantBandKind",literalValues:[{name:"top_initiating"},{name:"middle_initiating"},{name:"bottom_initiating"},{name:"top_non_initiating"},{name:"middle_non_initiating"},{name:"bottom_non_initiating"}]},{name:"MessageVisibleKind",literalValues:[{name:"initiating"},{name:"non_initiating"}]}],associations:[]},dc:{name:"DC",uri:"http://www.omg.org/spec/DD/20100524/DC",prefix:"dc",types:[{name:"Boolean"},{name:"Integer"},{name:"Real"},{name:"String"},{name:"Font",properties:[{name:"name",type:"String",isAttr:!0},{name:"size",type:"Real",isAttr:!0},{name:"isBold",type:"Boolean",isAttr:!0},{name:"isItalic",type:"Boolean",isAttr:!0},{name:"isUnderline",type:"Boolean",isAttr:!0},{name:"isStrikeThrough",type:"Boolean",isAttr:!0}]},{name:"Point",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0}]},{name:"Bounds",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0},{name:"width",type:"Real",isAttr:!0},{name:"height",type:"Real",isAttr:!0}]}],associations:[]},di:{name:"DI",uri:"http://www.omg.org/spec/DD/20100524/DI",prefix:"di",types:[{name:"DiagramElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"extension",type:"Extension"},{name:"owningDiagram",type:"Diagram",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"owningElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"modelElement",isReadOnly:!0,isVirtual:!0,isReference:!0,type:"Element"},{name:"style",type:"Style",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"ownedElement",type:"DiagramElement",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Node",isAbstract:!0,superClass:["DiagramElement"]},{name:"Edge",isAbstract:!0,superClass:["DiagramElement"],properties:[{name:"source",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"target",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"waypoint",isUnique:!1,isMany:!0,type:"dc:Point",xml:{serialize:"xsi:type"}}]},{name:"Diagram",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"rootElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0},{name:"name",isAttr:!0,type:"String"},{name:"documentation",isAttr:!0,type:"String"},{name:"resolution",isAttr:!0,type:"Real"},{name:"ownedStyle",type:"Style",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Shape",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Plane",isAbstract:!0,superClass:["Node"],properties:[{name:"planeElement",type:"DiagramElement",subsettedProperty:"DiagramElement-ownedElement",isMany:!0}]},{name:"LabeledEdge",isAbstract:!0,superClass:["Edge"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"LabeledShape",isAbstract:!0,superClass:["Shape"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"Label",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Style",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"}]},{name:"Extension",properties:[{name:"values",isMany:!0,type:"Element"}]}],associations:[],xml:{tagAlias:"lowerCase"}},bioc:{name:"bpmn.io colors for BPMN",uri:"http://bpmn.io/schema/bpmn/biocolor/1.0",prefix:"bioc",types:[{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]},color:{name:"BPMN in Color",uri:"http://www.omg.org/spec/BPMN/non-normative/color/1.0",prefix:"color",types:[{name:"ColoredLabel",extends:["bpmndi:BPMNLabel"],properties:[{name:"color",isAttr:!0,type:"String"}]},{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"background-color",isAttr:!0,type:"String"},{name:"border-color",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"border-color",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]}};function Sr(e,t){return new Ar(E({},Rr,e),t)}var kr="Tried to access di from the businessObject. The di is available through the diagram element only. For more information, see https://github.com/bpmn-io/bpmn-js/issues/1472";function Cr(e,t){return e.$instanceOf(t)}function Mr(e,t){var n={},i=[],r={};function o(e,t){return function(n){e(n,t)}}function a(e){n[e.id]=e}function s(n,i){try{var o=r[n.id]&&function(n,i){if(n.gfx)throw new Error(t("already rendered {element}",{element:At(n)}));return e.element(n,r[n.id],i)}(n,i);return a(n),o}catch(e){l(e.message,{element:n,error:e}),console.error(t("failed to import {element}",{element:At(n)})),console.error(e)}}function l(t,n){e.error(t,n)}var p=this.registerDi=function(e){var n,i=e.bpmnElement;i?r[i.id]?l(t("multiple DI elements defined for {element}",{element:At(i)}),{element:i}):(r[i.id]=e,c(n=i,"di")||Object.defineProperty(n,"di",{enumerable:!1,get:function(){throw new Error(kr)}})):l(t("no bpmnElement referenced in {element}",{element:At(e)}),{element:e})};function m(e){var t;t=e.plane,p(t),f(t.planeElement,d)}function d(e){p(e)}this.handleDefinitions=function(a,s){var c=a.diagrams;if(s&&-1===c.indexOf(s))throw new Error(t("diagram not part of bpmn:Definitions"));if(!s&&c&&c.length&&(s=c[0]),!s)throw new Error(t("no diagram to display"));r={},m(s);var d=s.plane;if(!d)throw new Error(t("no plane for {element}",{element:At(s)}));var x=d.bpmnElement;if(!x){if(x=function(e){return u(e.rootElements,(function(e){return Cr(e,"bpmn:Process")||Cr(e,"bpmn:Collaboration")}))}(a),!x)throw new Error(t("no process or collaboration to display"));l(t("correcting missing bpmnElement on {plane} to {rootElement}",{plane:At(d),rootElement:At(x)})),d.bpmnElement=x,p(d)}var w,b,E=function(t,n){return e.root(t,r[t.id],n)}(x,d);if(Cr(x,"bpmn:Process")||Cr(x,"bpmn:SubProcess"))g(x,E);else{if(!Cr(x,"bpmn:Collaboration"))throw new Error(t("unsupported bpmnElement for {plane}: {rootElement}",{plane:At(d),rootElement:At(x)}));b=E,f((w=x).participants,o(N,b)),_(w.artifacts,b),i.push((function(){!function(e,t){f(e,o(v,t))}(w.messageFlows,b)})),function(e,t){var i=h(e,(function(e){return!n[e.id]&&Cr(e,"bpmn:Process")&&e.laneSets}));i.forEach(o(g,t))}(a.rootElements,E)}y(i)};var y=this.handleDeferred=function(){for(;i.length;)i.shift()()};function g(e,t){P(e,t),A(e.ioSpecification,t),_(e.artifacts,t),a(e)}function v(e,t){s(e,t)}function x(e,t){s(e,t)}function w(e,t){s(e,t)}function b(e,t){s(e,t)}function E(e,t){s(e,t)}function _(e,t){f(e,(function(e){Cr(e,"bpmn:Association")?i.push((function(){E(e,t)})):E(e,t)}))}function A(e,t){e&&(f(e.dataInputs,o(w,t)),f(e.dataOutputs,o(b,t)))}var R=this.handleSubProcess=function(e,t){P(e,t),_(e.artifacts,t)};function S(e,t){var n=s(e,t);Cr(e,"bpmn:SubProcess")&&R(e,n||t),Cr(e,"bpmn:Activity")&&A(e.ioSpecification,t),i.push((function(){f(e.dataInputAssociations,o(x,t)),f(e.dataOutputAssociations,o(x,t))}))}function k(e,t){s(e,t)}function C(e,t){i.push((function(){var n=s(e,t);e.childLaneSet&&M(e.childLaneSet,n||t),function(e){f(e.flowNodeRef,(function(t){var n=t.get("lanes");n&&n.push(e)}))}(e)}))}function M(e,t){f(e.lanes,o(C,t))}function P(e,n){!function(e,n){f(e,(function(e){Cr(e,"bpmn:SequenceFlow")?i.push((function(){!function(e,t){s(e,t)}(e,n)})):Cr(e,"bpmn:BoundaryEvent")?i.unshift((function(){S(e,n)})):Cr(e,"bpmn:FlowNode")?S(e,n):Cr(e,"bpmn:DataObject")||(Cr(e,"bpmn:DataStoreReference")||Cr(e,"bpmn:DataObjectReference")?k(e,n):l(t("unrecognized flowElement {element} in context {context}",{element:At(e),context:n?At(n.businessObject):"null"}),{element:e,context:n}))}))}(e.flowElements,n),e.laneSets&&function(e,t){f(e,o(M,t))}(e.laneSets,n)}function N(e,t){var n=s(e,t),i=e.processRef;i&&g(i,n||t)}}function Pr(e,t,n){var i,r,o,a,s=[];function l(e,t){var n=new Mr({root:function(e,t){return i.add(e,t)},element:function(e,t,n){return i.add(e,t,n)},error:function(e,t){s.push({message:e,context:t})}},o);t=t||e.diagrams&&e.diagrams[0];var r=function(e,t){if(!t)return;var n,i=t.plane.bpmnElement,r=i;R(i,"bpmn:Process")||R(i,"bpmn:Collaboration")||(r=function(e){var t=e;for(;t;){if(R(t,"bpmn:Process"))return t;t=t.$parent}} +/** + * This file must not be changed or exchanged. + * + * @see http://bpmn.io/license for more information. + */(i));n=R(r,"bpmn:Collaboration")?r:u(e.rootElements,(function(e){if(R(e,"bpmn:Collaboration"))return u(e.participants,(function(e){return e.processRef===r}))}));var o=[r];n&&(o=function(e,t){let n=[];return f(e,(function(e,i){n.push(t(e,i))})),n}(n.participants,(function(e){return e.processRef}))).push(n);var a=Nr(o),s=[t],l=[i];return f(e.diagrams,(function(e){var t=e.plane.bpmnElement;-1!==a.indexOf(t)&&-1===l.indexOf(t)&&(s.push(e),l.push(t))})),s}(e,t);if(!r)throw new Error(o("no diagram to display"));f(r,(function(t){n.handleDefinitions(e,t)}));var l=t.plane.bpmnElement.id;a.setRootElement(a.findRoot(l+"_plane")||a.findRoot(l))}return new Promise((function(p,c){try{return i=e.get("bpmnImporter"),r=e.get("eventBus"),o=e.get("translate"),a=e.get("canvas"),r.fire("import.render.start",{definitions:t}),l(t,n),r.fire("import.render.complete",{error:undefined,warnings:s}),p({warnings:s})}catch(e){return e.warnings=s,c(e)}}))}function Nr(e){var t=[];return f(e,(function(e){e&&(t.push(e),t=t.concat(Nr(e.flowElements)))})),t}var Tr,Or='',Dr={verticalAlign:"middle"},Br={color:"#404040"},Lr={zIndex:"1001",position:"fixed",top:"0",left:"0",right:"0",bottom:"0"},Ir={width:"100%",height:"100%",background:"rgba(40,40,40,0.2)"},Fr={position:"absolute",left:"50%",top:"40%",transform:"translate(-50%)",width:"260px",padding:"10px",background:"white",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",display:"flex",lineHeight:"1.3"},jr='
      '+Or+'Web-based tooling for BPMN, DMN and forms powered by bpmn.io.
      ';function Vr(){Tr||(Te(Tr=Xe(jr),Lr),Te(Ze("svg",Tr),Dr),Te(Ze(".backdrop",Tr),Ir),Te(Ze(".notice",Tr),Fr),Te(Ze(".link",Tr),Br,{margin:"15px 20px 15px 10px",alignSelf:"center"}),Ke.bind(Tr,".backdrop","click",(function(e){document.body.removeChild(Tr)}))),document.body.appendChild(Tr)} +/** + * The code in the area + * must not be changed. + * + * @see http://bpmn.io/license for more information. + */function Wr(e){e=E({},Gr,e),this._moddle=this._createModdle(e),this._container=this._createContainer(e), +/** + * Adds the project logo to the diagram container as + * required by the bpmn.io license. + * + * @see http://bpmn.io/license + * + * @param {Element} container + */ +function(e){const t=Xe(''+Or+"");Te(Ze("svg",t),Dr),Te(t,Br,{position:"absolute",bottom:"15px",right:"15px",zIndex:"100"}),e.appendChild(t),Ge.bind(t,"click",(function(e){Vr(),e.preventDefault()}))}(this._container),this._init(this._container,this._moddle,e)}function zr(e,t){return e.warnings=t,e}e(Wr,ci),Wr.prototype.importXML=async function(e,t){const n=this;let i=[];try{let o;e=this._emit("import.parse.start",{xml:e})||e;try{o=await this._moddle.fromXML(e,"bpmn:Definitions")}catch(e){throw this._emit("import.parse.complete",{error:e}),e}let a=o.rootElement;const s=o.references,l=o.warnings,p=o.elementsById;i=i.concat(l),a=this._emit("import.parse.complete",(r={error:null,definitions:a,elementsById:p,references:s,warnings:i},n.get("eventBus").createEvent(r)))||a;const c=await this.importDefinitions(a,t);return i=i.concat(c.warnings),this._emit("import.done",{error:null,warnings:i}),{warnings:i}}catch(e){let t=e;throw i=i.concat(t.warnings||[]),zr(t,i),t=function(e){const t=/unparsable content <([^>]+)> detected([\s\S]*)$/.exec(e.message);t&&(e.message="unparsable content <"+t[1]+"> detected; this may indicate an invalid BPMN 2.0 diagram file"+t[2]);return e}(t),this._emit("import.done",{error:t,warnings:t.warnings}),t}var r},Wr.prototype.importDefinitions=async function(e,t){this._setDefinitions(e);return{warnings:(await this.open(t)).warnings}},Wr.prototype.open=async function(e){const t=this._definitions;let n=e;if(!t){const e=new Error("no XML imported");throw zr(e,[]),e}if("string"==typeof e&&(n=function(e,t){if(!t)return null;return u(e.diagrams,(function(e){return e.id===t}))||null}(t,e),!n)){const t=new Error("BPMNDiagram <"+e+"> not found");throw zr(t,[]),t}try{this.clear()}catch(e){throw zr(e,[]),e}const{warnings:i}=await Pr(this,t,n);return{warnings:i}},Wr.prototype.saveXML=async function(e){e=e||{};let t,n,i=this._definitions;try{if(!i)throw new Error("no definitions loaded");i=this._emit("saveXML.start",{definitions:i})||i;n=(await this._moddle.toXML(i,e)).xml,n=this._emit("saveXML.serialized",{xml:n})||n}catch(e){t=e}const r=t?{error:t}:{xml:n};if(this._emit("saveXML.done",r),t)throw t;return r},Wr.prototype.saveSVG=async function(){let e,t;this._emit("saveSVG.start");try{const t=this.get("canvas"),n=t.getActiveLayer(),i=Ze("defs",t._svg),r=ae(n),o=i?""+ae(i)+"":"",a=n.getBBox();e='\n\x3c!-- created with bpmn-js / http://bpmn.io --\x3e\n\n'+o+r+""}catch(e){t=e}if(this._emit("saveSVG.done",{error:t,svg:e}),t)throw t;return{svg:e}},Wr.prototype._setDefinitions=function(e){this._definitions=e},Wr.prototype.getModules=function(){return this._modules},Wr.prototype.clear=function(){this.getDefinitions()&&ci.prototype.clear.call(this)},Wr.prototype.destroy=function(){ci.prototype.destroy.call(this),Je(this._container)},Wr.prototype.on=function(e,t,n,i){return this.get("eventBus").on(e,t,n,i)},Wr.prototype.off=function(e,t){this.get("eventBus").off(e,t)},Wr.prototype.attachTo=function(e){if(!e)throw new Error("parentNode required");this.detach(),e.get&&e.constructor.prototype.jquery&&(e=e.get(0)),"string"==typeof e&&(e=Ze(e)),e.appendChild(this._container),this._emit("attach",{}),this.get("canvas").resized()},Wr.prototype.getDefinitions=function(){return this._definitions},Wr.prototype.detach=function(){const e=this._container,t=e.parentNode;t&&(this._emit("detach",{}),t.removeChild(e))},Wr.prototype._init=function(e,t,n){const i=n.modules||this.getModules(n),r=n.additionalModules||[],o=[].concat([{bpmnjs:["value",this],moddle:["value",t]}],i,r),a=E(function(e,t){let n={};return f(Object(e),(function(e,i){-1===t.indexOf(i)&&(n[i]=e)})),n}(n,["additionalModules"]),{canvas:E({},n.canvas,{container:e}),modules:o});ci.call(this,a),n&&n.container&&this.attachTo(n.container)},Wr.prototype._emit=function(e,t){return this.get("eventBus").fire(e,t)},Wr.prototype._createContainer=function(e){const t=Xe('
      ');return Te(t,{width:$r(e.width),height:$r(e.height),position:e.position}),t},Wr.prototype._createModdle=function(e){return new Sr(E({},this._moddleExtensions,e.moddleExtensions))},Wr.prototype._modules=[];const Gr={width:"100%",height:"100%",position:"relative"};function $r(e){return e+(s(e)?"px":"")}function Hr(e){Wr.call(this,e)}return e(Hr,Wr),Hr.prototype._modules=[Mt,xt,qt,tn,bn],Hr.prototype._moddleExtensions={},Hr})); diff --git a/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-599f5341.js b/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-599f5341.js deleted file mode 100644 index 55782f4daa169ff9d18620fd15d36f48325095ad..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-599f5341.js +++ /dev/null @@ -1,36 +0,0 @@ -(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const n of r)if(n.type==="childList")for(const s of n.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function t(r){const n={};return r.integrity&&(n.integrity=r.integrity),r.referrerPolicy&&(n.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?n.credentials="include":r.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(r){if(r.ep)return;r.ep=!0;const n=t(r);fetch(r.href,n)}})();function El(O,e){const t=Object.create(null),i=O.split(",");for(let r=0;r!!t[r.toLowerCase()]:r=>!!t[r]}function Al(O){if(J(O)){const e={};for(let t=0;t{if(t){const i=t.split(lg);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Dl(O){let e="";if(Ke(O))e=O;else if(J(O))for(let t=0;t{},ug=()=>!1,$g=/^on[^a-z]/,Hs=O=>$g.test(O),Ml=O=>O.startsWith("onUpdate:"),ht=Object.assign,Nl=(O,e)=>{const t=O.indexOf(e);t>-1&&O.splice(t,1)},dg=Object.prototype.hasOwnProperty,re=(O,e)=>dg.call(O,e),J=Array.isArray,mr=O=>Fs(O)==="[object Map]",pg=O=>Fs(O)==="[object Set]",K=O=>typeof O=="function",Ke=O=>typeof O=="string",Ll=O=>typeof O=="symbol",ve=O=>O!==null&&typeof O=="object",Ju=O=>ve(O)&&K(O.then)&&K(O.catch),mg=Object.prototype.toString,Fs=O=>mg.call(O),Pg=O=>Fs(O).slice(8,-1),gg=O=>Fs(O)==="[object Object]",Bl=O=>Ke(O)&&O!=="NaN"&&O[0]!=="-"&&""+parseInt(O,10)===O,Bn=El(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ks=O=>{const e=Object.create(null);return t=>e[t]||(e[t]=O(t))},Sg=/-(\w)/g,aO=Ks(O=>O.replace(Sg,(e,t)=>t?t.toUpperCase():"")),Xg=/\B([A-Z])/g,Bi=Ks(O=>O.replace(Xg,"-$1").toLowerCase()),Js=Ks(O=>O.charAt(0).toUpperCase()+O.slice(1)),Wo=Ks(O=>O?`on${Js(O)}`:""),Yr=(O,e)=>!Object.is(O,e),To=(O,e)=>{for(let t=0;t{Object.defineProperty(O,e,{configurable:!0,enumerable:!1,value:t})},yg=O=>{const e=parseFloat(O);return isNaN(e)?O:e};let Qh;const xg=()=>Qh||(Qh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let _t;class bg{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_t,!e&&_t&&(this.index=(_t.scopes||(_t.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=_t;try{return _t=this,e()}finally{_t=t}}}on(){_t=this}off(){_t=this.parent}stop(e){if(this._active){let t,i;for(t=0,i=this.effects.length;t{const e=new Set(O);return e.w=0,e.n=0,e},e$=O=>(O.w&GO)>0,t$=O=>(O.n&GO)>0,Tg=({deps:O})=>{if(O.length)for(let e=0;e{const{deps:e}=O;if(e.length){let t=0;for(let i=0;i{(c==="length"||c>=a)&&o.push(l)})}else switch(t!==void 0&&o.push(s.get(t)),e){case"add":J(O)?Bl(t)&&o.push(s.get("length")):(o.push(s.get(li)),mr(O)&&o.push(s.get(ba)));break;case"delete":J(O)||(o.push(s.get(li)),mr(O)&&o.push(s.get(ba)));break;case"set":mr(O)&&o.push(s.get(li));break}if(o.length===1)o[0]&&wa(o[0]);else{const a=[];for(const l of o)l&&a.push(...l);wa(Hl(a))}}function wa(O,e){const t=J(O)?O:[...O];for(const i of t)i.computed&&$h(i);for(const i of t)i.computed||$h(i)}function $h(O,e){(O!==It||O.allowRecurse)&&(O.scheduler?O.scheduler():O.run())}const vg=El("__proto__,__v_isRef,__isVue"),r$=new Set(Object.getOwnPropertyNames(Symbol).filter(O=>O!=="arguments"&&O!=="caller").map(O=>Symbol[O]).filter(Ll)),qg=Kl(),kg=Kl(!1,!0),Zg=Kl(!0),dh=Rg();function Rg(){const O={};return["includes","indexOf","lastIndexOf"].forEach(e=>{O[e]=function(...t){const i=se(this);for(let n=0,s=this.length;n{O[e]=function(...t){Hi();const i=se(this)[e].apply(this,t);return Fi(),i}}),O}function Ug(O){const e=se(this);return dt(e,"has",O),e.hasOwnProperty(O)}function Kl(O=!1,e=!1){return function(i,r,n){if(r==="__v_isReactive")return!O;if(r==="__v_isReadonly")return O;if(r==="__v_isShallow")return e;if(r==="__v_raw"&&n===(O?e?Fg:l$:e?a$:o$).get(i))return i;const s=J(i);if(!O){if(s&&re(dh,r))return Reflect.get(dh,r,n);if(r==="hasOwnProperty")return Ug}const o=Reflect.get(i,r,n);return(Ll(r)?r$.has(r):vg(r))||(O||dt(i,"get",r),e)?o:Ot(o)?s&&Bl(r)?o:o.value:ve(o)?O?c$(o):tc(o):o}}const Vg=n$(),zg=n$(!0);function n$(O=!1){return function(t,i,r,n){let s=t[i];if(zi(s)&&Ot(s)&&!Ot(r))return!1;if(!O&&(!fs(r)&&!zi(r)&&(s=se(s),r=se(r)),!J(t)&&Ot(s)&&!Ot(r)))return s.value=r,!0;const o=J(t)&&Bl(i)?Number(i)O,eo=O=>Reflect.getPrototypeOf(O);function $n(O,e,t=!1,i=!1){O=O.__v_raw;const r=se(O),n=se(e);t||(e!==n&&dt(r,"get",e),dt(r,"get",n));const{has:s}=eo(r),o=i?Jl:t?ic:vr;if(s.call(r,e))return o(O.get(e));if(s.call(r,n))return o(O.get(n));O!==r&&O.get(e)}function dn(O,e=!1){const t=this.__v_raw,i=se(t),r=se(O);return e||(O!==r&&dt(i,"has",O),dt(i,"has",r)),O===r?t.has(O):t.has(O)||t.has(r)}function pn(O,e=!1){return O=O.__v_raw,!e&&dt(se(O),"iterate",li),Reflect.get(O,"size",O)}function ph(O){O=se(O);const e=se(this);return eo(e).has.call(e,O)||(e.add(O),SO(e,"add",O,O)),this}function mh(O,e){e=se(e);const t=se(this),{has:i,get:r}=eo(t);let n=i.call(t,O);n||(O=se(O),n=i.call(t,O));const s=r.call(t,O);return t.set(O,e),n?Yr(e,s)&&SO(t,"set",O,e):SO(t,"add",O,e),this}function Ph(O){const e=se(this),{has:t,get:i}=eo(e);let r=t.call(e,O);r||(O=se(O),r=t.call(e,O)),i&&i.call(e,O);const n=e.delete(O);return r&&SO(e,"delete",O,void 0),n}function gh(){const O=se(this),e=O.size!==0,t=O.clear();return e&&SO(O,"clear",void 0,void 0),t}function mn(O,e){return function(i,r){const n=this,s=n.__v_raw,o=se(s),a=e?Jl:O?ic:vr;return!O&&dt(o,"iterate",li),s.forEach((l,c)=>i.call(r,a(l),a(c),n))}}function Pn(O,e,t){return function(...i){const r=this.__v_raw,n=se(r),s=mr(n),o=O==="entries"||O===Symbol.iterator&&s,a=O==="keys"&&s,l=r[O](...i),c=t?Jl:e?ic:vr;return!e&&dt(n,"iterate",a?ba:li),{next(){const{value:h,done:Q}=l.next();return Q?{value:h,done:Q}:{value:o?[c(h[0]),c(h[1])]:c(h),done:Q}},[Symbol.iterator](){return this}}}}function wO(O){return function(...e){return O==="delete"?!1:this}}function Eg(){const O={get(n){return $n(this,n)},get size(){return pn(this)},has:dn,add:ph,set:mh,delete:Ph,clear:gh,forEach:mn(!1,!1)},e={get(n){return $n(this,n,!1,!0)},get size(){return pn(this)},has:dn,add:ph,set:mh,delete:Ph,clear:gh,forEach:mn(!1,!0)},t={get(n){return $n(this,n,!0)},get size(){return pn(this,!0)},has(n){return dn.call(this,n,!0)},add:wO("add"),set:wO("set"),delete:wO("delete"),clear:wO("clear"),forEach:mn(!0,!1)},i={get(n){return $n(this,n,!0,!0)},get size(){return pn(this,!0)},has(n){return dn.call(this,n,!0)},add:wO("add"),set:wO("set"),delete:wO("delete"),clear:wO("clear"),forEach:mn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(n=>{O[n]=Pn(n,!1,!1),t[n]=Pn(n,!0,!1),e[n]=Pn(n,!1,!0),i[n]=Pn(n,!0,!0)}),[O,t,e,i]}const[Ag,Dg,Mg,Ng]=Eg();function ec(O,e){const t=e?O?Ng:Mg:O?Dg:Ag;return(i,r,n)=>r==="__v_isReactive"?!O:r==="__v_isReadonly"?O:r==="__v_raw"?i:Reflect.get(re(t,r)&&r in i?t:i,r,n)}const Lg={get:ec(!1,!1)},Bg={get:ec(!1,!0)},Hg={get:ec(!0,!1)},o$=new WeakMap,a$=new WeakMap,l$=new WeakMap,Fg=new WeakMap;function Kg(O){switch(O){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Jg(O){return O.__v_skip||!Object.isExtensible(O)?0:Kg(Pg(O))}function tc(O){return zi(O)?O:Oc(O,!1,s$,Lg,o$)}function eS(O){return Oc(O,!1,Ig,Bg,a$)}function c$(O){return Oc(O,!0,Cg,Hg,l$)}function Oc(O,e,t,i,r){if(!ve(O)||O.__v_raw&&!(e&&O.__v_isReactive))return O;const n=r.get(O);if(n)return n;const s=Jg(O);if(s===0)return O;const o=new Proxy(O,s===2?i:t);return r.set(O,o),o}function Ti(O){return zi(O)?Ti(O.__v_raw):!!(O&&O.__v_isReactive)}function zi(O){return!!(O&&O.__v_isReadonly)}function fs(O){return!!(O&&O.__v_isShallow)}function h$(O){return Ti(O)||zi(O)}function se(O){const e=O&&O.__v_raw;return e?se(e):O}function f$(O){return hs(O,"__v_skip",!0),O}const vr=O=>ve(O)?tc(O):O,ic=O=>ve(O)?c$(O):O;function Q$(O){UO&&It&&(O=se(O),i$(O.dep||(O.dep=Hl())))}function u$(O,e){O=se(O);const t=O.dep;t&&wa(t)}function Ot(O){return!!(O&&O.__v_isRef===!0)}function Hn(O){return tS(O,!0)}function tS(O,e){return Ot(O)?O:new OS(O,e)}class OS{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:se(e),this._value=t?e:vr(e)}get value(){return Q$(this),this._value}set value(e){const t=this.__v_isShallow||fs(e)||zi(e);e=t?e:se(e),Yr(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:vr(e),u$(this))}}function iS(O){return Ot(O)?O.value:O}const rS={get:(O,e,t)=>iS(Reflect.get(O,e,t)),set:(O,e,t,i)=>{const r=O[e];return Ot(r)&&!Ot(t)?(r.value=t,!0):Reflect.set(O,e,t,i)}};function $$(O){return Ti(O)?O:new Proxy(O,rS)}var d$;class nS{constructor(e,t,i,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[d$]=!1,this._dirty=!0,this.effect=new Fl(e,()=>{this._dirty||(this._dirty=!0,u$(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=i}get value(){const e=se(this);return Q$(e),(e._dirty||!e._cacheable)&&(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}d$="__v_isReadonly";function sS(O,e,t=!1){let i,r;const n=K(O);return n?(i=O,r=Dt):(i=O.get,r=O.set),new nS(i,r,n||!r,t)}function VO(O,e,t,i){let r;try{r=i?O(...i):O()}catch(n){to(n,e,t)}return r}function Mt(O,e,t,i){if(K(O)){const n=VO(O,e,t,i);return n&&Ju(n)&&n.catch(s=>{to(s,e,t)}),n}const r=[];for(let n=0;n>>1;kr(tt[i])tO&&tt.splice(e,1)}function hS(O){J(O)?Yi.push(...O):(!$O||!$O.includes(O,O.allowRecurse?ti+1:ti))&&Yi.push(O),m$()}function Sh(O,e=qr?tO+1:0){for(;ekr(t)-kr(i)),ti=0;ti<$O.length;ti++)$O[ti]();$O=null,ti=0}}const kr=O=>O.id==null?1/0:O.id,fS=(O,e)=>{const t=kr(O)-kr(e);if(t===0){if(O.pre&&!e.pre)return-1;if(e.pre&&!O.pre)return 1}return t};function g$(O){Wa=!1,qr=!0,tt.sort(fS);const e=Dt;try{for(tO=0;tOKe(u)?u.trim():u)),h&&(r=t.map(yg))}let o,a=i[o=Wo(e)]||i[o=Wo(aO(e))];!a&&n&&(a=i[o=Wo(Bi(e))]),a&&Mt(a,O,6,r);const l=i[o+"Once"];if(l){if(!O.emitted)O.emitted={};else if(O.emitted[o])return;O.emitted[o]=!0,Mt(l,O,6,r)}}function S$(O,e,t=!1){const i=e.emitsCache,r=i.get(O);if(r!==void 0)return r;const n=O.emits;let s={},o=!1;if(!K(O)){const a=l=>{const c=S$(l,e,!0);c&&(o=!0,ht(s,c))};!t&&e.mixins.length&&e.mixins.forEach(a),O.extends&&a(O.extends),O.mixins&&O.mixins.forEach(a)}return!n&&!o?(ve(O)&&i.set(O,null),null):(J(n)?n.forEach(a=>s[a]=null):ht(s,n),ve(O)&&i.set(O,s),s)}function Oo(O,e){return!O||!Hs(e)?!1:(e=e.slice(2).replace(/Once$/,""),re(O,e[0].toLowerCase()+e.slice(1))||re(O,Bi(e))||re(O,e))}let Et=null,X$=null;function Qs(O){const e=Et;return Et=O,X$=O&&O.type.__scopeId||null,e}function uS(O,e=Et,t){if(!e||O._n)return O;const i=(...r)=>{i._d&&vh(-1);const n=Qs(e);let s;try{s=O(...r)}finally{Qs(n),i._d&&vh(1)}return s};return i._n=!0,i._c=!0,i._d=!0,i}function Yo(O){const{type:e,vnode:t,proxy:i,withProxy:r,props:n,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:h,data:Q,setupState:u,ctx:$,inheritAttrs:d}=O;let p,P;const y=Qs(O);try{if(t.shapeFlag&4){const b=r||i;p=eO(c.call(b,b,h,n,u,Q,$)),P=a}else{const b=e;p=eO(b.length>1?b(n,{attrs:a,slots:o,emit:l}):b(n,null)),P=e.props?a:$S(a)}}catch(b){Sr.length=0,to(b,O,1),p=Wt(Zr)}let x=p;if(P&&d!==!1){const b=Object.keys(P),{shapeFlag:Y}=x;b.length&&Y&7&&(s&&b.some(Ml)&&(P=dS(P,s)),x=_i(x,P))}return t.dirs&&(x=_i(x),x.dirs=x.dirs?x.dirs.concat(t.dirs):t.dirs),t.transition&&(x.transition=t.transition),p=x,Qs(y),p}const $S=O=>{let e;for(const t in O)(t==="class"||t==="style"||Hs(t))&&((e||(e={}))[t]=O[t]);return e},dS=(O,e)=>{const t={};for(const i in O)(!Ml(i)||!(i.slice(9)in e))&&(t[i]=O[i]);return t};function pS(O,e,t){const{props:i,children:r,component:n}=O,{props:s,children:o,patchFlag:a}=e,l=n.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&a>=0){if(a&1024)return!0;if(a&16)return i?Xh(i,s,l):!!s;if(a&8){const c=e.dynamicProps;for(let h=0;hO.__isSuspense;function gS(O,e){e&&e.pendingBranch?J(O)?e.effects.push(...O):e.effects.push(O):hS(O)}function SS(O,e){if(Ue){let t=Ue.provides;const i=Ue.parent&&Ue.parent.provides;i===t&&(t=Ue.provides=Object.create(i)),t[O]=e}}function Pr(O,e,t=!1){const i=Ue||Et;if(i){const r=i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides;if(r&&O in r)return r[O];if(arguments.length>1)return t&&K(e)?e.call(i.proxy):e}}const gn={};function jt(O,e,t){return y$(O,e,t)}function y$(O,e,{immediate:t,deep:i,flush:r,onTrack:n,onTrigger:s}=ye){const o=Wg()===(Ue==null?void 0:Ue.scope)?Ue:null;let a,l=!1,c=!1;if(Ot(O)?(a=()=>O.value,l=fs(O)):Ti(O)?(a=()=>O,i=!0):J(O)?(c=!0,l=O.some(x=>Ti(x)||fs(x)),a=()=>O.map(x=>{if(Ot(x))return x.value;if(Ti(x))return yi(x);if(K(x))return VO(x,o,2)})):K(O)?e?a=()=>VO(O,o,2):a=()=>{if(!(o&&o.isUnmounted))return h&&h(),Mt(O,o,3,[Q])}:a=Dt,e&&i){const x=a;a=()=>yi(x())}let h,Q=x=>{h=P.onStop=()=>{VO(x,o,4)}},u;if(Ur)if(Q=Dt,e?t&&Mt(e,o,3,[a(),c?[]:void 0,Q]):a(),r==="sync"){const x=PX();u=x.__watcherHandles||(x.__watcherHandles=[])}else return Dt;let $=c?new Array(O.length).fill(gn):gn;const d=()=>{if(P.active)if(e){const x=P.run();(i||l||(c?x.some((b,Y)=>Yr(b,$[Y])):Yr(x,$)))&&(h&&h(),Mt(e,o,3,[x,$===gn?void 0:c&&$[0]===gn?[]:$,Q]),$=x)}else P.run()};d.allowRecurse=!!e;let p;r==="sync"?p=d:r==="post"?p=()=>Qt(d,o&&o.suspense):(d.pre=!0,o&&(d.id=o.uid),p=()=>nc(d));const P=new Fl(a,p);e?t?d():$=P.run():r==="post"?Qt(P.run.bind(P),o&&o.suspense):P.run();const y=()=>{P.stop(),o&&o.scope&&Nl(o.scope.effects,P)};return u&&u.push(y),y}function XS(O,e,t){const i=this.proxy,r=Ke(O)?O.includes(".")?x$(i,O):()=>i[O]:O.bind(i,i);let n;K(e)?n=e:(n=e.handler,t=e);const s=Ue;ji(this);const o=y$(r,n.bind(i),t);return s?ji(s):ci(),o}function x$(O,e){const t=e.split(".");return()=>{let i=O;for(let r=0;r{yi(t,e)});else if(gg(O))for(const t in O)yi(O[t],e);return O}function b$(O){return K(O)?{setup:O,name:O.name}:O}const Fn=O=>!!O.type.__asyncLoader,w$=O=>O.type.__isKeepAlive;function yS(O,e){W$(O,"a",e)}function xS(O,e){W$(O,"da",e)}function W$(O,e,t=Ue){const i=O.__wdc||(O.__wdc=()=>{let r=t;for(;r;){if(r.isDeactivated)return;r=r.parent}return O()});if(io(e,i,t),t){let r=t.parent;for(;r&&r.parent;)w$(r.parent.vnode)&&bS(i,e,t,r),r=r.parent}}function bS(O,e,t,i){const r=io(e,O,i,!0);v$(()=>{Nl(i[e],r)},t)}function io(O,e,t=Ue,i=!1){if(t){const r=t[O]||(t[O]=[]),n=e.__weh||(e.__weh=(...s)=>{if(t.isUnmounted)return;Hi(),ji(t);const o=Mt(e,t,O,s);return ci(),Fi(),o});return i?r.unshift(n):r.push(n),n}}const yO=O=>(e,t=Ue)=>(!Ur||O==="sp")&&io(O,(...i)=>e(...i),t),wS=yO("bm"),T$=yO("m"),WS=yO("bu"),TS=yO("u"),Y$=yO("bum"),v$=yO("um"),YS=yO("sp"),vS=yO("rtg"),qS=yO("rtc");function kS(O,e=Ue){io("ec",O,e)}function BO(O,e,t,i){const r=O.dirs,n=e&&e.dirs;for(let s=0;sO?C$(O)?lc(O)||O.proxy:Ta(O.parent):null,gr=ht(Object.create(null),{$:O=>O,$el:O=>O.vnode.el,$data:O=>O.data,$props:O=>O.props,$attrs:O=>O.attrs,$slots:O=>O.slots,$refs:O=>O.refs,$parent:O=>Ta(O.parent),$root:O=>Ta(O.root),$emit:O=>O.emit,$options:O=>sc(O),$forceUpdate:O=>O.f||(O.f=()=>nc(O.update)),$nextTick:O=>O.n||(O.n=aS.bind(O.proxy)),$watch:O=>XS.bind(O)}),vo=(O,e)=>O!==ye&&!O.__isScriptSetup&&re(O,e),VS={get({_:O},e){const{ctx:t,setupState:i,data:r,props:n,accessCache:s,type:o,appContext:a}=O;let l;if(e[0]!=="$"){const u=s[e];if(u!==void 0)switch(u){case 1:return i[e];case 2:return r[e];case 4:return t[e];case 3:return n[e]}else{if(vo(i,e))return s[e]=1,i[e];if(r!==ye&&re(r,e))return s[e]=2,r[e];if((l=O.propsOptions[0])&&re(l,e))return s[e]=3,n[e];if(t!==ye&&re(t,e))return s[e]=4,t[e];Ya&&(s[e]=0)}}const c=gr[e];let h,Q;if(c)return e==="$attrs"&&dt(O,"get",e),c(O);if((h=o.__cssModules)&&(h=h[e]))return h;if(t!==ye&&re(t,e))return s[e]=4,t[e];if(Q=a.config.globalProperties,re(Q,e))return Q[e]},set({_:O},e,t){const{data:i,setupState:r,ctx:n}=O;return vo(r,e)?(r[e]=t,!0):i!==ye&&re(i,e)?(i[e]=t,!0):re(O.props,e)||e[0]==="$"&&e.slice(1)in O?!1:(n[e]=t,!0)},has({_:{data:O,setupState:e,accessCache:t,ctx:i,appContext:r,propsOptions:n}},s){let o;return!!t[s]||O!==ye&&re(O,s)||vo(e,s)||(o=n[0])&&re(o,s)||re(i,s)||re(gr,s)||re(r.config.globalProperties,s)},defineProperty(O,e,t){return t.get!=null?O._.accessCache[e]=0:re(t,"value")&&this.set(O,e,t.value,null),Reflect.defineProperty(O,e,t)}};let Ya=!0;function zS(O){const e=sc(O),t=O.proxy,i=O.ctx;Ya=!1,e.beforeCreate&&xh(e.beforeCreate,O,"bc");const{data:r,computed:n,methods:s,watch:o,provide:a,inject:l,created:c,beforeMount:h,mounted:Q,beforeUpdate:u,updated:$,activated:d,deactivated:p,beforeDestroy:P,beforeUnmount:y,destroyed:x,unmounted:b,render:Y,renderTracked:Z,renderTriggered:E,errorCaptured:Oe,serverPrefetch:H,expose:N,inheritAttrs:oe,components:Xe,directives:Te,filters:Ge}=e;if(l&&_S(l,i,null,O.appContext.config.unwrapInjectedRef),s)for(const ie in s){const F=s[ie];K(F)&&(i[ie]=F.bind(t))}if(r){const ie=r.call(t,t);ve(ie)&&(O.data=tc(ie))}if(Ya=!0,n)for(const ie in n){const F=n[ie],fe=K(F)?F.bind(t,t):K(F.get)?F.get.bind(t,t):Dt,be=!K(F)&&K(F.set)?F.set.bind(t):Dt,nt=E$({get:fe,set:be});Object.defineProperty(i,ie,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(o)for(const ie in o)k$(o[ie],i,t,ie);if(a){const ie=K(a)?a.call(t):a;Reflect.ownKeys(ie).forEach(F=>{SS(F,ie[F])})}c&&xh(c,O,"c");function ne(ie,F){J(F)?F.forEach(fe=>ie(fe.bind(t))):F&&ie(F.bind(t))}if(ne(wS,h),ne(T$,Q),ne(WS,u),ne(TS,$),ne(yS,d),ne(xS,p),ne(kS,Oe),ne(qS,Z),ne(vS,E),ne(Y$,y),ne(v$,b),ne(YS,H),J(N))if(N.length){const ie=O.exposed||(O.exposed={});N.forEach(F=>{Object.defineProperty(ie,F,{get:()=>t[F],set:fe=>t[F]=fe})})}else O.exposed||(O.exposed={});Y&&O.render===Dt&&(O.render=Y),oe!=null&&(O.inheritAttrs=oe),Xe&&(O.components=Xe),Te&&(O.directives=Te)}function _S(O,e,t=Dt,i=!1){J(O)&&(O=va(O));for(const r in O){const n=O[r];let s;ve(n)?"default"in n?s=Pr(n.from||r,n.default,!0):s=Pr(n.from||r):s=Pr(n),Ot(s)&&i?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[r]=s}}function xh(O,e,t){Mt(J(O)?O.map(i=>i.bind(e.proxy)):O.bind(e.proxy),e,t)}function k$(O,e,t,i){const r=i.includes(".")?x$(t,i):()=>t[i];if(Ke(O)){const n=e[O];K(n)&&jt(r,n)}else if(K(O))jt(r,O.bind(t));else if(ve(O))if(J(O))O.forEach(n=>k$(n,e,t,i));else{const n=K(O.handler)?O.handler.bind(t):e[O.handler];K(n)&&jt(r,n,O)}}function sc(O){const e=O.type,{mixins:t,extends:i}=e,{mixins:r,optionsCache:n,config:{optionMergeStrategies:s}}=O.appContext,o=n.get(e);let a;return o?a=o:!r.length&&!t&&!i?a=e:(a={},r.length&&r.forEach(l=>us(a,l,s,!0)),us(a,e,s)),ve(e)&&n.set(e,a),a}function us(O,e,t,i=!1){const{mixins:r,extends:n}=e;n&&us(O,n,t,!0),r&&r.forEach(s=>us(O,s,t,!0));for(const s in e)if(!(i&&s==="expose")){const o=jS[s]||t&&t[s];O[s]=o?o(O[s],e[s]):e[s]}return O}const jS={data:bh,props:JO,emits:JO,methods:JO,computed:JO,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:JO,directives:JO,watch:CS,provide:bh,inject:GS};function bh(O,e){return e?O?function(){return ht(K(O)?O.call(this,this):O,K(e)?e.call(this,this):e)}:e:O}function GS(O,e){return JO(va(O),va(e))}function va(O){if(J(O)){const e={};for(let t=0;t0)&&!(s&16)){if(s&8){const c=O.vnode.dynamicProps;for(let h=0;h{a=!0;const[Q,u]=R$(h,e,!0);ht(s,Q),u&&o.push(...u)};!t&&e.mixins.length&&e.mixins.forEach(c),O.extends&&c(O.extends),O.mixins&&O.mixins.forEach(c)}if(!n&&!a)return ve(O)&&i.set(O,Wi),Wi;if(J(n))for(let c=0;c-1,u[1]=d<0||$-1||re(u,"default"))&&o.push(h)}}}const l=[s,o];return ve(O)&&i.set(O,l),l}function wh(O){return O[0]!=="$"}function Wh(O){const e=O&&O.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:O===null?"null":""}function Th(O,e){return Wh(O)===Wh(e)}function Yh(O,e){return J(e)?e.findIndex(t=>Th(t,O)):K(e)&&Th(e,O)?0:-1}const U$=O=>O[0]==="_"||O==="$stable",oc=O=>J(O)?O.map(eO):[eO(O)],AS=(O,e,t)=>{if(e._n)return e;const i=uS((...r)=>oc(e(...r)),t);return i._c=!1,i},V$=(O,e,t)=>{const i=O._ctx;for(const r in O){if(U$(r))continue;const n=O[r];if(K(n))e[r]=AS(r,n,i);else if(n!=null){const s=oc(n);e[r]=()=>s}}},z$=(O,e)=>{const t=oc(e);O.slots.default=()=>t},DS=(O,e)=>{if(O.vnode.shapeFlag&32){const t=e._;t?(O.slots=se(e),hs(e,"_",t)):V$(e,O.slots={})}else O.slots={},e&&z$(O,e);hs(O.slots,no,1)},MS=(O,e,t)=>{const{vnode:i,slots:r}=O;let n=!0,s=ye;if(i.shapeFlag&32){const o=e._;o?t&&o===1?n=!1:(ht(r,e),!t&&o===1&&delete r._):(n=!e.$stable,V$(e,r)),s=e}else e&&(z$(O,e),s={default:1});if(n)for(const o in r)!U$(o)&&!(o in s)&&delete r[o]};function _$(){return{app:null,config:{isNativeTag:ug,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let NS=0;function LS(O,e){return function(i,r=null){K(i)||(i=Object.assign({},i)),r!=null&&!ve(r)&&(r=null);const n=_$(),s=new Set;let o=!1;const a=n.app={_uid:NS++,_component:i,_props:r,_container:null,_context:n,_instance:null,version:gX,get config(){return n.config},set config(l){},use(l,...c){return s.has(l)||(l&&K(l.install)?(s.add(l),l.install(a,...c)):K(l)&&(s.add(l),l(a,...c))),a},mixin(l){return n.mixins.includes(l)||n.mixins.push(l),a},component(l,c){return c?(n.components[l]=c,a):n.components[l]},directive(l,c){return c?(n.directives[l]=c,a):n.directives[l]},mount(l,c,h){if(!o){const Q=Wt(i,r);return Q.appContext=n,c&&e?e(Q,l):O(Q,l,h),o=!0,a._container=l,l.__vue_app__=a,lc(Q.component)||Q.component.proxy}},unmount(){o&&(O(null,a._container),delete a._container.__vue_app__)},provide(l,c){return n.provides[l]=c,a}};return a}}function ka(O,e,t,i,r=!1){if(J(O)){O.forEach((Q,u)=>ka(Q,e&&(J(e)?e[u]:e),t,i,r));return}if(Fn(i)&&!r)return;const n=i.shapeFlag&4?lc(i.component)||i.component.proxy:i.el,s=r?null:n,{i:o,r:a}=O,l=e&&e.r,c=o.refs===ye?o.refs={}:o.refs,h=o.setupState;if(l!=null&&l!==a&&(Ke(l)?(c[l]=null,re(h,l)&&(h[l]=null)):Ot(l)&&(l.value=null)),K(a))VO(a,o,12,[s,c]);else{const Q=Ke(a),u=Ot(a);if(Q||u){const $=()=>{if(O.f){const d=Q?re(h,a)?h[a]:c[a]:a.value;r?J(d)&&Nl(d,n):J(d)?d.includes(n)||d.push(n):Q?(c[a]=[n],re(h,a)&&(h[a]=c[a])):(a.value=[n],O.k&&(c[O.k]=a.value))}else Q?(c[a]=s,re(h,a)&&(h[a]=s)):u&&(a.value=s,O.k&&(c[O.k]=s))};s?($.id=-1,Qt($,t)):$()}}}const Qt=gS;function BS(O){return HS(O)}function HS(O,e){const t=xg();t.__VUE__=!0;const{insert:i,remove:r,patchProp:n,createElement:s,createText:o,createComment:a,setText:l,setElementText:c,parentNode:h,nextSibling:Q,setScopeId:u=Dt,insertStaticContent:$}=O,d=(m,g,S,W=null,w=null,k=null,V=!1,v=null,U=!!g.dynamicChildren)=>{if(m===g)return;m&&!Or(m,g)&&(W=un(m),Me(m,w,k,!0),m=null),g.patchFlag===-2&&(U=!1,g.dynamicChildren=null);const{type:T,ref:A,shapeFlag:G}=g;switch(T){case ro:p(m,g,S,W);break;case Zr:P(m,g,S,W);break;case qo:m==null&&y(g,S,W,V);break;case dO:Xe(m,g,S,W,w,k,V,v,U);break;default:G&1?Y(m,g,S,W,w,k,V,v,U):G&6?Te(m,g,S,W,w,k,V,v,U):(G&64||G&128)&&T.process(m,g,S,W,w,k,V,v,U,di)}A!=null&&w&&ka(A,m&&m.ref,k,g||m,!g)},p=(m,g,S,W)=>{if(m==null)i(g.el=o(g.children),S,W);else{const w=g.el=m.el;g.children!==m.children&&l(w,g.children)}},P=(m,g,S,W)=>{m==null?i(g.el=a(g.children||""),S,W):g.el=m.el},y=(m,g,S,W)=>{[m.el,m.anchor]=$(m.children,g,S,W,m.el,m.anchor)},x=({el:m,anchor:g},S,W)=>{let w;for(;m&&m!==g;)w=Q(m),i(m,S,W),m=w;i(g,S,W)},b=({el:m,anchor:g})=>{let S;for(;m&&m!==g;)S=Q(m),r(m),m=S;r(g)},Y=(m,g,S,W,w,k,V,v,U)=>{V=V||g.type==="svg",m==null?Z(g,S,W,w,k,V,v,U):H(m,g,w,k,V,v,U)},Z=(m,g,S,W,w,k,V,v)=>{let U,T;const{type:A,props:G,shapeFlag:D,transition:L,dirs:ee}=m;if(U=m.el=s(m.type,k,G&&G.is,G),D&8?c(U,m.children):D&16&&Oe(m.children,U,null,W,w,k&&A!=="foreignObject",V,v),ee&&BO(m,null,W,"created"),E(U,m,m.scopeId,V,W),G){for(const Qe in G)Qe!=="value"&&!Bn(Qe)&&n(U,Qe,null,G[Qe],k,m.children,W,w,uO);"value"in G&&n(U,"value",null,G.value),(T=G.onVnodeBeforeMount)&&Bt(T,W,m)}ee&&BO(m,null,W,"beforeMount");const pe=(!w||w&&!w.pendingBranch)&&L&&!L.persisted;pe&&L.beforeEnter(U),i(U,g,S),((T=G&&G.onVnodeMounted)||pe||ee)&&Qt(()=>{T&&Bt(T,W,m),pe&&L.enter(U),ee&&BO(m,null,W,"mounted")},w)},E=(m,g,S,W,w)=>{if(S&&u(m,S),W)for(let k=0;k{for(let T=U;T{const v=g.el=m.el;let{patchFlag:U,dynamicChildren:T,dirs:A}=g;U|=m.patchFlag&16;const G=m.props||ye,D=g.props||ye;let L;S&&HO(S,!1),(L=D.onVnodeBeforeUpdate)&&Bt(L,S,g,m),A&&BO(g,m,S,"beforeUpdate"),S&&HO(S,!0);const ee=w&&g.type!=="foreignObject";if(T?N(m.dynamicChildren,T,v,S,W,ee,k):V||F(m,g,v,null,S,W,ee,k,!1),U>0){if(U&16)oe(v,g,G,D,S,W,w);else if(U&2&&G.class!==D.class&&n(v,"class",null,D.class,w),U&4&&n(v,"style",G.style,D.style,w),U&8){const pe=g.dynamicProps;for(let Qe=0;Qe{L&&Bt(L,S,g,m),A&&BO(g,m,S,"updated")},W)},N=(m,g,S,W,w,k,V)=>{for(let v=0;v{if(S!==W){if(S!==ye)for(const v in S)!Bn(v)&&!(v in W)&&n(m,v,S[v],null,V,g.children,w,k,uO);for(const v in W){if(Bn(v))continue;const U=W[v],T=S[v];U!==T&&v!=="value"&&n(m,v,T,U,V,g.children,w,k,uO)}"value"in W&&n(m,"value",S.value,W.value)}},Xe=(m,g,S,W,w,k,V,v,U)=>{const T=g.el=m?m.el:o(""),A=g.anchor=m?m.anchor:o("");let{patchFlag:G,dynamicChildren:D,slotScopeIds:L}=g;L&&(v=v?v.concat(L):L),m==null?(i(T,S,W),i(A,S,W),Oe(g.children,S,A,w,k,V,v,U)):G>0&&G&64&&D&&m.dynamicChildren?(N(m.dynamicChildren,D,S,w,k,V,v),(g.key!=null||w&&g===w.subTree)&&j$(m,g,!0)):F(m,g,S,A,w,k,V,v,U)},Te=(m,g,S,W,w,k,V,v,U)=>{g.slotScopeIds=v,m==null?g.shapeFlag&512?w.ctx.activate(g,S,W,V,U):Ge(g,S,W,w,k,V,U):ke(m,g,U)},Ge=(m,g,S,W,w,k,V)=>{const v=m.component=cX(m,W,w);if(w$(m)&&(v.ctx.renderer=di),hX(v),v.asyncDep){if(w&&w.registerDep(v,ne),!m.el){const U=v.subTree=Wt(Zr);P(null,U,g,S)}return}ne(v,m,g,S,w,k,V)},ke=(m,g,S)=>{const W=g.component=m.component;if(pS(m,g,S))if(W.asyncDep&&!W.asyncResolved){ie(W,g,S);return}else W.next=g,cS(W.update),W.update();else g.el=m.el,W.vnode=g},ne=(m,g,S,W,w,k,V)=>{const v=()=>{if(m.isMounted){let{next:A,bu:G,u:D,parent:L,vnode:ee}=m,pe=A,Qe;HO(m,!1),A?(A.el=ee.el,ie(m,A,V)):A=ee,G&&To(G),(Qe=A.props&&A.props.onVnodeBeforeUpdate)&&Bt(Qe,L,A,ee),HO(m,!0);const Ze=Yo(m),Vt=m.subTree;m.subTree=Ze,d(Vt,Ze,h(Vt.el),un(Vt),m,w,k),A.el=Ze.el,pe===null&&mS(m,Ze.el),D&&Qt(D,w),(Qe=A.props&&A.props.onVnodeUpdated)&&Qt(()=>Bt(Qe,L,A,ee),w)}else{let A;const{el:G,props:D}=g,{bm:L,m:ee,parent:pe}=m,Qe=Fn(g);if(HO(m,!1),L&&To(L),!Qe&&(A=D&&D.onVnodeBeforeMount)&&Bt(A,pe,g),HO(m,!0),G&&wo){const Ze=()=>{m.subTree=Yo(m),wo(G,m.subTree,m,w,null)};Qe?g.type.__asyncLoader().then(()=>!m.isUnmounted&&Ze()):Ze()}else{const Ze=m.subTree=Yo(m);d(null,Ze,S,W,m,w,k),g.el=Ze.el}if(ee&&Qt(ee,w),!Qe&&(A=D&&D.onVnodeMounted)){const Ze=g;Qt(()=>Bt(A,pe,Ze),w)}(g.shapeFlag&256||pe&&Fn(pe.vnode)&&pe.vnode.shapeFlag&256)&&m.a&&Qt(m.a,w),m.isMounted=!0,g=S=W=null}},U=m.effect=new Fl(v,()=>nc(T),m.scope),T=m.update=()=>U.run();T.id=m.uid,HO(m,!0),T()},ie=(m,g,S)=>{g.component=m;const W=m.vnode.props;m.vnode=g,m.next=null,ES(m,g.props,W,S),MS(m,g.children,S),Hi(),Sh(),Fi()},F=(m,g,S,W,w,k,V,v,U=!1)=>{const T=m&&m.children,A=m?m.shapeFlag:0,G=g.children,{patchFlag:D,shapeFlag:L}=g;if(D>0){if(D&128){be(T,G,S,W,w,k,V,v,U);return}else if(D&256){fe(T,G,S,W,w,k,V,v,U);return}}L&8?(A&16&&uO(T,w,k),G!==T&&c(S,G)):A&16?L&16?be(T,G,S,W,w,k,V,v,U):uO(T,w,k,!0):(A&8&&c(S,""),L&16&&Oe(G,S,W,w,k,V,v,U))},fe=(m,g,S,W,w,k,V,v,U)=>{m=m||Wi,g=g||Wi;const T=m.length,A=g.length,G=Math.min(T,A);let D;for(D=0;DA?uO(m,w,k,!0,!1,G):Oe(g,S,W,w,k,V,v,U,G)},be=(m,g,S,W,w,k,V,v,U)=>{let T=0;const A=g.length;let G=m.length-1,D=A-1;for(;T<=G&&T<=D;){const L=m[T],ee=g[T]=U?TO(g[T]):eO(g[T]);if(Or(L,ee))d(L,ee,S,null,w,k,V,v,U);else break;T++}for(;T<=G&&T<=D;){const L=m[G],ee=g[D]=U?TO(g[D]):eO(g[D]);if(Or(L,ee))d(L,ee,S,null,w,k,V,v,U);else break;G--,D--}if(T>G){if(T<=D){const L=D+1,ee=LD)for(;T<=G;)Me(m[T],w,k,!0),T++;else{const L=T,ee=T,pe=new Map;for(T=ee;T<=D;T++){const mt=g[T]=U?TO(g[T]):eO(g[T]);mt.key!=null&&pe.set(mt.key,T)}let Qe,Ze=0;const Vt=D-ee+1;let pi=!1,ch=0;const tr=new Array(Vt);for(T=0;T=Vt){Me(mt,w,k,!0);continue}let Lt;if(mt.key!=null)Lt=pe.get(mt.key);else for(Qe=ee;Qe<=D;Qe++)if(tr[Qe-ee]===0&&Or(mt,g[Qe])){Lt=Qe;break}Lt===void 0?Me(mt,w,k,!0):(tr[Lt-ee]=T+1,Lt>=ch?ch=Lt:pi=!0,d(mt,g[Lt],S,null,w,k,V,v,U),Ze++)}const hh=pi?FS(tr):Wi;for(Qe=hh.length-1,T=Vt-1;T>=0;T--){const mt=ee+T,Lt=g[mt],fh=mt+1{const{el:k,type:V,transition:v,children:U,shapeFlag:T}=m;if(T&6){nt(m.component.subTree,g,S,W);return}if(T&128){m.suspense.move(g,S,W);return}if(T&64){V.move(m,g,S,di);return}if(V===dO){i(k,g,S);for(let G=0;Gv.enter(k),w);else{const{leave:G,delayLeave:D,afterLeave:L}=v,ee=()=>i(k,g,S),pe=()=>{G(k,()=>{ee(),L&&L()})};D?D(k,ee,pe):pe()}else i(k,g,S)},Me=(m,g,S,W=!1,w=!1)=>{const{type:k,props:V,ref:v,children:U,dynamicChildren:T,shapeFlag:A,patchFlag:G,dirs:D}=m;if(v!=null&&ka(v,null,S,m,!0),A&256){g.ctx.deactivate(m);return}const L=A&1&&D,ee=!Fn(m);let pe;if(ee&&(pe=V&&V.onVnodeBeforeUnmount)&&Bt(pe,g,m),A&6)og(m.component,S,W);else{if(A&128){m.suspense.unmount(S,W);return}L&&BO(m,null,g,"beforeUnmount"),A&64?m.type.remove(m,g,S,w,di,W):T&&(k!==dO||G>0&&G&64)?uO(T,g,S,!1,!0):(k===dO&&G&384||!w&&A&16)&&uO(U,g,S),W&&LO(m)}(ee&&(pe=V&&V.onVnodeUnmounted)||L)&&Qt(()=>{pe&&Bt(pe,g,m),L&&BO(m,null,g,"unmounted")},S)},LO=m=>{const{type:g,el:S,anchor:W,transition:w}=m;if(g===dO){Qn(S,W);return}if(g===qo){b(m);return}const k=()=>{r(S),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(m.shapeFlag&1&&w&&!w.persisted){const{leave:V,delayLeave:v}=w,U=()=>V(S,k);v?v(m.el,k,U):U()}else k()},Qn=(m,g)=>{let S;for(;m!==g;)S=Q(m),r(m),m=S;r(g)},og=(m,g,S)=>{const{bum:W,scope:w,update:k,subTree:V,um:v}=m;W&&To(W),w.stop(),k&&(k.active=!1,Me(V,m,g,S)),v&&Qt(v,g),Qt(()=>{m.isUnmounted=!0},g),g&&g.pendingBranch&&!g.isUnmounted&&m.asyncDep&&!m.asyncResolved&&m.suspenseId===g.pendingId&&(g.deps--,g.deps===0&&g.resolve())},uO=(m,g,S,W=!1,w=!1,k=0)=>{for(let V=k;Vm.shapeFlag&6?un(m.component.subTree):m.shapeFlag&128?m.suspense.next():Q(m.anchor||m.el),lh=(m,g,S)=>{m==null?g._vnode&&Me(g._vnode,null,null,!0):d(g._vnode||null,m,g,null,null,null,S),Sh(),P$(),g._vnode=m},di={p:d,um:Me,m:nt,r:LO,mt:Ge,mc:Oe,pc:F,pbc:N,n:un,o:O};let bo,wo;return e&&([bo,wo]=e(di)),{render:lh,hydrate:bo,createApp:LS(lh,bo)}}function HO({effect:O,update:e},t){O.allowRecurse=e.allowRecurse=t}function j$(O,e,t=!1){const i=O.children,r=e.children;if(J(i)&&J(r))for(let n=0;n>1,O[t[o]]0&&(e[i]=t[n-1]),t[n]=i)}}for(n=t.length,s=t[n-1];n-- >0;)t[n]=s,s=e[s];return t}const KS=O=>O.__isTeleport,dO=Symbol(void 0),ro=Symbol(void 0),Zr=Symbol(void 0),qo=Symbol(void 0),Sr=[];let At=null;function JS(O=!1){Sr.push(At=O?null:[])}function eX(){Sr.pop(),At=Sr[Sr.length-1]||null}let Rr=1;function vh(O){Rr+=O}function tX(O){return O.dynamicChildren=Rr>0?At||Wi:null,eX(),Rr>0&&At&&At.push(O),O}function OX(O,e,t,i,r){return tX(Wt(O,e,t,i,r,!0))}function Za(O){return O?O.__v_isVNode===!0:!1}function Or(O,e){return O.type===e.type&&O.key===e.key}const no="__vInternal",G$=({key:O})=>O??null,Kn=({ref:O,ref_key:e,ref_for:t})=>O!=null?Ke(O)||Ot(O)||K(O)?{i:Et,r:O,k:e,f:!!t}:O:null;function iX(O,e=null,t=null,i=0,r=null,n=O===dO?0:1,s=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:O,props:e,key:e&&G$(e),ref:e&&Kn(e),scopeId:X$,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Et};return o?(ac(a,t),n&128&&O.normalize(a)):t&&(a.shapeFlag|=Ke(t)?8:16),Rr>0&&!s&&At&&(a.patchFlag>0||n&6)&&a.patchFlag!==32&&At.push(a),a}const Wt=rX;function rX(O,e=null,t=null,i=0,r=null,n=!1){if((!O||O===RS)&&(O=Zr),Za(O)){const o=_i(O,e,!0);return t&&ac(o,t),Rr>0&&!n&&At&&(o.shapeFlag&6?At[At.indexOf(O)]=o:At.push(o)),o.patchFlag|=-2,o}if(dX(O)&&(O=O.__vccOpts),e){e=nX(e);let{class:o,style:a}=e;o&&!Ke(o)&&(e.class=Dl(o)),ve(a)&&(h$(a)&&!J(a)&&(a=ht({},a)),e.style=Al(a))}const s=Ke(O)?1:PS(O)?128:KS(O)?64:ve(O)?4:K(O)?2:0;return iX(O,e,t,i,r,s,n,!0)}function nX(O){return O?h$(O)||no in O?ht({},O):O:null}function _i(O,e,t=!1){const{props:i,ref:r,patchFlag:n,children:s}=O,o=e?oX(i||{},e):i;return{__v_isVNode:!0,__v_skip:!0,type:O.type,props:o,key:o&&G$(o),ref:e&&e.ref?t&&r?J(r)?r.concat(Kn(e)):[r,Kn(e)]:Kn(e):r,scopeId:O.scopeId,slotScopeIds:O.slotScopeIds,children:s,target:O.target,targetAnchor:O.targetAnchor,staticCount:O.staticCount,shapeFlag:O.shapeFlag,patchFlag:e&&O.type!==dO?n===-1?16:n|16:n,dynamicProps:O.dynamicProps,dynamicChildren:O.dynamicChildren,appContext:O.appContext,dirs:O.dirs,transition:O.transition,component:O.component,suspense:O.suspense,ssContent:O.ssContent&&_i(O.ssContent),ssFallback:O.ssFallback&&_i(O.ssFallback),el:O.el,anchor:O.anchor,ctx:O.ctx,ce:O.ce}}function sX(O=" ",e=0){return Wt(ro,null,O,e)}function eO(O){return O==null||typeof O=="boolean"?Wt(Zr):J(O)?Wt(dO,null,O.slice()):typeof O=="object"?TO(O):Wt(ro,null,String(O))}function TO(O){return O.el===null&&O.patchFlag!==-1||O.memo?O:_i(O)}function ac(O,e){let t=0;const{shapeFlag:i}=O;if(e==null)e=null;else if(J(e))t=16;else if(typeof e=="object")if(i&65){const r=e.default;r&&(r._c&&(r._d=!1),ac(O,r()),r._c&&(r._d=!0));return}else{t=32;const r=e._;!r&&!(no in e)?e._ctx=Et:r===3&&Et&&(Et.slots._===1?e._=1:(e._=2,O.patchFlag|=1024))}else K(e)?(e={default:e,_ctx:Et},t=32):(e=String(e),i&64?(t=16,e=[sX(e)]):t=8);O.children=e,O.shapeFlag|=t}function oX(...O){const e={};for(let t=0;t{Ue=O,O.scope.on()},ci=()=>{Ue&&Ue.scope.off(),Ue=null};function C$(O){return O.vnode.shapeFlag&4}let Ur=!1;function hX(O,e=!1){Ur=e;const{props:t,children:i}=O.vnode,r=C$(O);IS(O,t,r,e),DS(O,i);const n=r?fX(O,e):void 0;return Ur=!1,n}function fX(O,e){const t=O.type;O.accessCache=Object.create(null),O.proxy=f$(new Proxy(O.ctx,VS));const{setup:i}=t;if(i){const r=O.setupContext=i.length>1?uX(O):null;ji(O),Hi();const n=VO(i,O,0,[O.props,r]);if(Fi(),ci(),Ju(n)){if(n.then(ci,ci),e)return n.then(s=>{qh(O,s,e)}).catch(s=>{to(s,O,0)});O.asyncDep=n}else qh(O,n,e)}else I$(O,e)}function qh(O,e,t){K(e)?O.type.__ssrInlineRender?O.ssrRender=e:O.render=e:ve(e)&&(O.setupState=$$(e)),I$(O,t)}let kh;function I$(O,e,t){const i=O.type;if(!O.render){if(!e&&kh&&!i.render){const r=i.template||sc(O).template;if(r){const{isCustomElement:n,compilerOptions:s}=O.appContext.config,{delimiters:o,compilerOptions:a}=i,l=ht(ht({isCustomElement:n,delimiters:o},s),a);i.render=kh(r,l)}}O.render=i.render||Dt}ji(O),Hi(),zS(O),Fi(),ci()}function QX(O){return new Proxy(O.attrs,{get(e,t){return dt(O,"get","$attrs"),e[t]}})}function uX(O){const e=i=>{O.exposed=i||{}};let t;return{get attrs(){return t||(t=QX(O))},slots:O.slots,emit:O.emit,expose:e}}function lc(O){if(O.exposed)return O.exposeProxy||(O.exposeProxy=new Proxy($$(f$(O.exposed)),{get(e,t){if(t in e)return e[t];if(t in gr)return gr[t](O)},has(e,t){return t in e||t in gr}}))}function $X(O,e=!0){return K(O)?O.displayName||O.name:O.name||e&&O.__name}function dX(O){return K(O)&&"__vccOpts"in O}const E$=(O,e)=>sS(O,e,Ur);function pX(O,e,t){const i=arguments.length;return i===2?ve(e)&&!J(e)?Za(e)?Wt(O,null,[e]):Wt(O,e):Wt(O,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&Za(t)&&(t=[t]),Wt(O,e,t))}const mX=Symbol(""),PX=()=>Pr(mX),gX="3.2.47",SX="http://www.w3.org/2000/svg",Oi=typeof document<"u"?document:null,Zh=Oi&&Oi.createElement("template"),XX={insert:(O,e,t)=>{e.insertBefore(O,t||null)},remove:O=>{const e=O.parentNode;e&&e.removeChild(O)},createElement:(O,e,t,i)=>{const r=e?Oi.createElementNS(SX,O):Oi.createElement(O,t?{is:t}:void 0);return O==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:O=>Oi.createTextNode(O),createComment:O=>Oi.createComment(O),setText:(O,e)=>{O.nodeValue=e},setElementText:(O,e)=>{O.textContent=e},parentNode:O=>O.parentNode,nextSibling:O=>O.nextSibling,querySelector:O=>Oi.querySelector(O),setScopeId(O,e){O.setAttribute(e,"")},insertStaticContent(O,e,t,i,r,n){const s=t?t.previousSibling:e.lastChild;if(r&&(r===n||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),t),!(r===n||!(r=r.nextSibling)););else{Zh.innerHTML=i?`${O}`:O;const o=Zh.content;if(i){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}e.insertBefore(o,t)}return[s?s.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}};function yX(O,e,t){const i=O._vtc;i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?O.removeAttribute("class"):t?O.setAttribute("class",e):O.className=e}function xX(O,e,t){const i=O.style,r=Ke(t);if(t&&!r){if(e&&!Ke(e))for(const n in e)t[n]==null&&Ra(i,n,"");for(const n in t)Ra(i,n,t[n])}else{const n=i.display;r?e!==t&&(i.cssText=t):e&&O.removeAttribute("style"),"_vod"in O&&(i.display=n)}}const Rh=/\s*!important$/;function Ra(O,e,t){if(J(t))t.forEach(i=>Ra(O,e,i));else if(t==null&&(t=""),e.startsWith("--"))O.setProperty(e,t);else{const i=bX(O,e);Rh.test(t)?O.setProperty(Bi(i),t.replace(Rh,""),"important"):O[i]=t}}const Uh=["Webkit","Moz","ms"],ko={};function bX(O,e){const t=ko[e];if(t)return t;let i=aO(e);if(i!=="filter"&&i in O)return ko[e]=i;i=Js(i);for(let r=0;rZo||(kX.then(()=>Zo=0),Zo=Date.now());function RX(O,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Mt(UX(i,t.value),e,5,[i])};return t.value=O,t.attached=ZX(),t}function UX(O,e){if(J(e)){const t=O.stopImmediatePropagation;return O.stopImmediatePropagation=()=>{t.call(O),O._stopped=!0},e.map(i=>r=>!r._stopped&&i&&i(r))}else return e}const _h=/^on[a-z]/,VX=(O,e,t,i,r=!1,n,s,o,a)=>{e==="class"?yX(O,i,r):e==="style"?xX(O,t,i):Hs(e)?Ml(e)||vX(O,e,t,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):zX(O,e,i,r))?WX(O,e,i,n,s,o,a):(e==="true-value"?O._trueValue=i:e==="false-value"&&(O._falseValue=i),wX(O,e,i,r))};function zX(O,e,t,i){return i?!!(e==="innerHTML"||e==="textContent"||e in O&&_h.test(e)&&K(t)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&O.tagName==="INPUT"||e==="type"&&O.tagName==="TEXTAREA"||_h.test(e)&&Ke(t)?!1:e in O}const _X=ht({patchProp:VX},XX);let jh;function jX(){return jh||(jh=BS(_X))}const GX=(...O)=>{const e=jX().createApp(...O),{mount:t}=e;return e.mount=i=>{const r=CX(i);if(!r)return;const n=e._component;!K(n)&&!n.render&&!n.template&&(n.template=r.innerHTML),r.innerHTML="";const s=t(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},e};function CX(O){return Ke(O)?document.querySelector(O):O}let le=class A${constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),OO.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),OO.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new Xr(this),n=new Xr(e);for(let s=t,o=t;;){if(r.next(s),n.next(s),s=0,r.lineBreak!=n.lineBreak||r.done!=n.done||r.value!=n.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new Xr(this,e)}iterRange(e,t=this.length){return new D$(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new M$(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?A$.empty:e.length<=32?new Ye(e):OO.from(Ye.split(e,[]))}};class Ye extends le{constructor(e,t=IX(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.text[n],o=r+s.length;if((t?i:o)>=e)return new EX(r,o,i,s);r=o+1,i++}}decompose(e,t,i,r){let n=e<=0&&t>=this.length?this:new Ye(Gh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let s=i.pop(),o=Jn(n.text,s.text.slice(),0,n.length);if(o.length<=32)i.push(new Ye(o,s.length+n.length));else{let a=o.length>>1;i.push(new Ye(o.slice(0,a)),new Ye(o.slice(a)))}}else i.push(n)}replace(e,t,i){if(!(i instanceof Ye))return super.replace(e,t,i);let r=Jn(this.text,Jn(i.text,Gh(this.text,0,e)),t),n=this.length+i.length-(t-e);return r.length<=32?new Ye(r,n):OO.from(Ye.split(r,[]),n)}sliceString(e,t=this.length,i=` -`){let r="";for(let n=0,s=0;n<=t&&se&&s&&(r+=i),en&&(r+=o.slice(Math.max(0,e-n),t-n)),n=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let n of e)i.push(n),r+=n.length+1,i.length==32&&(t.push(new Ye(i,r)),i=[],r=-1);return r>-1&&t.push(new Ye(i,r)),t}}class OO extends le{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.children[n],o=r+s.length,a=i+s.lines-1;if((t?a:o)>=e)return s.lineInner(e,t,i,r);r=o+1,i=a+1}}decompose(e,t,i,r){for(let n=0,s=0;s<=t&&n=s){let l=r&((s<=e?1:0)|(a>=t?2:0));s>=e&&a<=t&&!l?i.push(o):o.decompose(e-s,t-s,i,l)}s=a+1}}replace(e,t,i){if(i.lines=n&&t<=o){let a=s.replace(e-n,t-n,i),l=this.lines-s.lines+a.lines;if(a.lines>5-1&&a.lines>l>>5+1){let c=this.children.slice();return c[r]=a,new OO(c,this.length-(t-e)+i.length)}return super.replace(n,o,a)}n=o+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` -`){let r="";for(let n=0,s=0;ne&&n&&(r+=i),es&&(r+=o.sliceString(e-s,t-s,i)),s=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof OO))return 0;let i=0,[r,n,s,o]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,n+=t){if(r==s||n==o)return i;let a=this.children[r],l=e.children[n];if(a!=l)return i+a.scanIdentical(l,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let u of e)i+=u.lines;if(i<32){let u=[];for(let $ of e)$.flatten(u);return new Ye(u,t)}let r=Math.max(32,i>>5),n=r<<1,s=r>>1,o=[],a=0,l=-1,c=[];function h(u){let $;if(u.lines>n&&u instanceof OO)for(let d of u.children)h(d);else u.lines>s&&(a>s||!a)?(Q(),o.push(u)):u instanceof Ye&&a&&($=c[c.length-1])instanceof Ye&&u.lines+$.lines<=32?(a+=u.lines,l+=u.length+1,c[c.length-1]=new Ye($.text.concat(u.text),$.length+1+u.length)):(a+u.lines>r&&Q(),a+=u.lines,l+=u.length+1,c.push(u))}function Q(){a!=0&&(o.push(c.length==1?c[0]:OO.from(c,l)),l=-1,a=c.length=0)}for(let u of e)h(u);return Q(),o.length==1?o[0]:new OO(o,t)}}le.empty=new Ye([""],0);function IX(O){let e=-1;for(let t of O)e+=t.length+1;return e}function Jn(O,e,t=0,i=1e9){for(let r=0,n=0,s=!0;n=t&&(a>i&&(o=o.slice(0,i-r)),r0?1:(e instanceof Ye?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],n=this.offsets[i],s=n>>1,o=r instanceof Ye?r.text.length:r.children.length;if(s==(t>0?o:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((n&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(r instanceof Ye){let a=r.text[s+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[s+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Ye?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class D${constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Xr(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class M${constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(le.prototype[Symbol.iterator]=function(){return this.iter()},Xr.prototype[Symbol.iterator]=D$.prototype[Symbol.iterator]=M$.prototype[Symbol.iterator]=function(){return this});let EX=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}},vi="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(O=>O?parseInt(O,36):1);for(let O=1;OO)return vi[e-1]<=O;return!1}function Ch(O){return O>=127462&&O<=127487}const Ih=8205;function at(O,e,t=!0,i=!0){return(t?N$:DX)(O,e,i)}function N$(O,e,t){if(e==O.length)return e;e&&L$(O.charCodeAt(e))&&B$(O.charCodeAt(e-1))&&e--;let i=Be(O,e);for(e+=wt(i);e=0&&Ch(Be(O,s));)n++,s-=2;if(n%2==0)break;e+=2}else break}return e}function DX(O,e,t){for(;e>0;){let i=N$(O,e-2,t);if(i=56320&&O<57344}function B$(O){return O>=55296&&O<56320}function Be(O,e){let t=O.charCodeAt(e);if(!B$(t)||e+1==O.length)return t;let i=O.charCodeAt(e+1);return L$(i)?(t-55296<<10)+(i-56320)+65536:t}function cc(O){return O<=65535?String.fromCharCode(O):(O-=65536,String.fromCharCode((O>>10)+55296,(O&1023)+56320))}function wt(O){return O<65536?1:2}const Ua=/\r\n?|\n/;var Fe=function(O){return O[O.Simple=0]="Simple",O[O.TrackDel=1]="TrackDel",O[O.TrackBefore=2]="TrackBefore",O[O.TrackAfter=3]="TrackAfter",O}(Fe||(Fe={}));class sO{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return n+(e-r);n+=o}else{if(i!=Fe.Simple&&l>=e&&(i==Fe.TrackDel&&re||i==Fe.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!o)return e==r||t<0?n:n+a;n+=a}r=l}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return n}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&o>=e)return rt?"cover":!0;r=o}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new sO(e)}static create(e){return new sO(e)}}class Ve extends sO{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Va(this,(t,i,r,n,s)=>e=e.replace(r,r+(i-t),s),!1),e}mapDesc(e,t=!1){return za(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,n=0;r=0){t[r]=o,t[r+1]=s;let a=r>>1;for(;i.length0&&kO(i,t,n.text),n.forward(c),o+=c}let l=e[s++];for(;o>1].toJSON()))}return e}static of(e,t,i){let r=[],n=[],s=0,o=null;function a(c=!1){if(!c&&!r.length)return;sQ||h<0||Q>t)throw new RangeError(`Invalid change range ${h} to ${Q} (in doc of length ${t})`);let $=u?typeof u=="string"?le.of(u.split(i||Ua)):u:le.empty,d=$.length;if(h==Q&&d==0)return;hs&&et(r,h-s,-1),et(r,Q-h,d),kO(n,r,$),s=Q}}return l(e),a(!o),o}static empty(e){return new Ve(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;ro&&typeof s!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(n.length==1)t.push(n[0],0);else{for(;i.length=0&&t<=0&&t==O[r+1]?O[r]+=e:e==0&&O[r]==0?O[r+1]+=t:i?(O[r]+=e,O[r+1]+=t):O.push(e,t)}function kO(O,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||s==O.sections.length||O.sections[s+1]<0);)o=O.sections[s++],a=O.sections[s++];e(r,l,n,c,h),r=l,n=c}}}function za(O,e,t,i=!1){let r=[],n=i?[]:null,s=new Vr(O),o=new Vr(e);for(let a=-1;;)if(s.ins==-1&&o.ins==-1){let l=Math.min(s.len,o.len);et(r,l,-1),s.forward(l),o.forward(l)}else if(o.ins>=0&&(s.ins<0||a==s.i||s.off==0&&(o.len=0&&a=0){let l=0,c=s.len;for(;c;)if(o.ins==-1){let h=Math.min(c,o.len);l+=h,c-=h,o.forward(h)}else if(o.ins==0&&o.lena||s.ins>=0&&s.len>a)&&(o||i.length>l),n.forward2(a),s.forward(a)}}}}class Vr{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?le.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?le.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class si{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new si(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(e.anchor,e.head)}static create(e,t,i){return new si(e,t,i)}}class X{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:X.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;te.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(e.ranges.map(t=>si.fromJSON(t)),e.main)}static single(e,t=e){return new X([X.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;re?4:0)|n)}static normalized(e,t=0){let i=e[t];e.sort((r,n)=>r.from-n.from),t=e.indexOf(i);for(let r=1;rn.head?X.range(a,o):X.range(o,a))}}return new X(e,t)}}function F$(O,e){for(let t of O.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let hc=0;class _{constructor(e,t,i,r,n){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=hc++,this.default=e([]),this.extensions=typeof n=="function"?n(this):n}static define(e={}){return new _(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:fc),!!e.static,e.enables)}of(e){return new es([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new es(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new es(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function fc(O,e){return O==e||O.length==e.length&&O.every((t,i)=>t===e[i])}class es{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=hc++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,n=this.id,s=e[n]>>1,o=this.type==2,a=!1,l=!1,c=[];for(let h of this.dependencies)h=="doc"?a=!0:h=="selection"?l=!0:((t=e[h.id])!==null&&t!==void 0?t:1)&1||c.push(e[h.id]);return{create(h){return h.values[s]=i(h),1},update(h,Q){if(a&&Q.docChanged||l&&(Q.docChanged||Q.selection)||_a(h,c)){let u=i(h);if(o?!Eh(u,h.values[s],r):!r(u,h.values[s]))return h.values[s]=u,1}return 0},reconfigure:(h,Q)=>{let u,$=Q.config.address[n];if($!=null){let d=ds(Q,$);if(this.dependencies.every(p=>p instanceof _?Q.facet(p)===h.facet(p):p instanceof Ae?Q.field(p,!1)==h.field(p,!1):!0)||(o?Eh(u=i(h),d,r):r(u=i(h),d)))return h.values[s]=d,0}else u=i(h);return h.values[s]=u,1}}}}function Eh(O,e,t){if(O.length!=e.length)return!1;for(let i=0;iO[a.id]),r=t.map(a=>a.type),n=i.filter(a=>!(a&1)),s=O[e.id]>>1;function o(a){let l=[];for(let c=0;ci===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Ah).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let n=i.values[t],s=this.updateF(n,r);return this.compareF(n,s)?0:(i.values[t]=s,1)},reconfigure:(i,r)=>r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Ah.of({field:this,create:e})]}get extension(){return this}}const ii={lowest:4,low:3,default:2,high:1,highest:0};function ir(O){return e=>new K$(e,O)}const MO={highest:ir(ii.highest),high:ir(ii.high),default:ir(ii.default),low:ir(ii.low),lowest:ir(ii.lowest)};class K${constructor(e,t){this.inner=e,this.prec=t}}class On{of(e){return new ja(this,e)}reconfigure(e){return On.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class ja{constructor(e,t){this.compartment=e,this.inner=t}}class $s{constructor(e,t,i,r,n,s){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=n,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],n=Object.create(null),s=new Map;for(let Q of NX(e,t,s))Q instanceof Ae?r.push(Q):(n[Q.facet.id]||(n[Q.facet.id]=[])).push(Q);let o=Object.create(null),a=[],l=[];for(let Q of r)o[Q.id]=l.length<<1,l.push(u=>Q.slot(u));let c=i==null?void 0:i.config.facets;for(let Q in n){let u=n[Q],$=u[0].facet,d=c&&c[Q]||[];if(u.every(p=>p.type==0))if(o[$.id]=a.length<<1|1,fc(d,u))a.push(i.facet($));else{let p=$.combine(u.map(P=>P.value));a.push(i&&$.compare(p,i.facet($))?i.facet($):p)}else{for(let p of u)p.type==0?(o[p.id]=a.length<<1|1,a.push(p.value)):(o[p.id]=l.length<<1,l.push(P=>p.dynamicSlot(P)));o[$.id]=l.length<<1,l.push(p=>MX(p,$,u))}}let h=l.map(Q=>Q(o));return new $s(e,s,h,o,a,n)}}function NX(O,e,t){let i=[[],[],[],[],[]],r=new Map;function n(s,o){let a=r.get(s);if(a!=null){if(a<=o)return;let l=i[a].indexOf(s);l>-1&&i[a].splice(l,1),s instanceof ja&&t.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let l of s)n(l,o);else if(s instanceof ja){if(t.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let l=e.get(s.compartment)||s.inner;t.set(s.compartment,l),n(l,o)}else if(s instanceof K$)n(s.inner,s.prec);else if(s instanceof Ae)i[o].push(s),s.provides&&n(s.provides,o);else if(s instanceof es)i[o].push(s),s.facet.extensions&&n(s.facet.extensions,ii.default);else{let l=s.extension;if(!l)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);n(l,o)}}return n(O,ii.default),i.reduce((s,o)=>s.concat(o))}function yr(O,e){if(e&1)return 2;let t=e>>1,i=O.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;O.status[t]=4;let r=O.computeSlot(O,O.config.dynamicSlots[t]);return O.status[t]=2|r}function ds(O,e){return e&1?O.config.staticValues[e>>1]:O.values[e>>1]}const J$=_.define(),ed=_.define({combine:O=>O.some(e=>e),static:!0}),td=_.define({combine:O=>O.length?O[0]:void 0,static:!0}),Od=_.define(),id=_.define(),rd=_.define(),nd=_.define({combine:O=>O.length?O[0]:!1});class xO{constructor(e,t){this.type=e,this.value=t}static define(){return new LX}}class LX{of(e){return new xO(this,e)}}class BX{constructor(e){this.map=e}of(e){return new B(this,e)}}class B{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new B(this.type,t)}is(e){return this.type==e}static define(e={}){return new BX(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let n=r.map(t);n&&i.push(n)}return i}}B.reconfigure=B.define();B.appendConfig=B.define();class ze{constructor(e,t,i,r,n,s){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=n,this.scrollIntoView=s,this._doc=null,this._state=null,i&&F$(i,t.newLength),n.some(o=>o.type==ze.time)||(this.annotations=n.concat(ze.time.of(Date.now())))}static create(e,t,i,r,n,s){return new ze(e,t,i,r,n,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(ze.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}ze.time=xO.define();ze.userEvent=xO.define();ze.addToHistory=xO.define();ze.remote=xO.define();function HX(O,e){let t=[];for(let i=0,r=0;;){let n,s;if(i=O[i]))n=O[i++],s=O[i++];else if(r=0;r--){let n=i[r](O);n instanceof ze?O=n:Array.isArray(n)&&n.length==1&&n[0]instanceof ze?O=n[0]:O=od(e,qi(n),!1)}return O}function KX(O){let e=O.startState,t=e.facet(rd),i=O;for(let r=t.length-1;r>=0;r--){let n=t[r](O);n&&Object.keys(n).length&&(i=sd(i,Ga(e,n,O.changes.newLength),!0))}return i==O?O:ze.create(e,O.changes,O.selection,i.effects,i.annotations,i.scrollIntoView)}const JX=[];function qi(O){return O==null?JX:Array.isArray(O)?O:[O]}var xe=function(O){return O[O.Word=0]="Word",O[O.Space=1]="Space",O[O.Other=2]="Other",O}(xe||(xe={}));const ey=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Ca;try{Ca=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ty(O){if(Ca)return Ca.test(O);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||ey.test(t)))return!0}return!1}function Oy(O){return e=>{if(!/\S/.test(e))return xe.Space;if(ty(e))return xe.Word;for(let t=0;t-1)return xe.Word;return xe.Other}}class te{constructor(e,t,i,r,n,s){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=n,s&&(s._state=this);for(let o=0;or.set(a,o)),t=null),r.set(s.value.compartment,s.value.extension)):s.is(B.reconfigure)?(t=null,i=s.value):s.is(B.appendConfig)&&(t=null,i=qi(i).concat(s.value));let n;t?n=e.startState.values.slice():(t=$s.resolve(i,r,this),n=new te(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(o,a)=>a.reconfigure(o,this),null).values),new te(t,e.newDoc,e.newSelection,n,(s,o)=>o.update(s,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),n=[i.range],s=qi(i.effects);for(let o=1;os.spec.fromJSON(o,a)))}}return te.create({doc:e.doc,selection:X.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=$s.resolve(e.extensions||[],new Map),i=e.doc instanceof le?e.doc:le.of((e.doc||"").split(t.staticFacet(te.lineSeparator)||Ua)),r=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return F$(r,i.length),t.staticFacet(ed)||(r=r.asSingle()),new te(t,i,r,t.dynamicSlots.map(()=>null),(n,s)=>s.create(n),null)}get tabSize(){return this.facet(te.tabSize)}get lineBreak(){return this.facet(te.lineSeparator)||` -`}get readOnly(){return this.facet(nd)}phrase(e,...t){for(let i of this.facet(te.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,r)=>{if(r=="$")return"$";let n=+(r||1);return!n||n>t.length?i:t[n-1]})),e}languageDataAt(e,t,i=-1){let r=[];for(let n of this.facet(J$))for(let s of n(this,t,i))Object.prototype.hasOwnProperty.call(s,e)&&r.push(s[e]);return r}charCategorizer(e){return Oy(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),n=this.charCategorizer(e),s=e-i,o=e-i;for(;s>0;){let a=at(t,s,!1);if(n(t.slice(a,s))!=xe.Word)break;s=a}for(;oO.length?O[0]:4});te.lineSeparator=td;te.readOnly=nd;te.phrases=_.define({compare(O,e){let t=Object.keys(O),i=Object.keys(e);return t.length==i.length&&t.every(r=>O[r]==e[r])}});te.languageData=J$;te.changeFilter=Od;te.transactionFilter=id;te.transactionExtender=rd;On.reconfigure=B.define();function cO(O,e,t={}){let i={};for(let r of O)for(let n of Object.keys(r)){let s=r[n],o=i[n];if(o===void 0)i[n]=s;else if(!(o===s||s===void 0))if(Object.hasOwnProperty.call(t,n))i[n]=t[n](o,s);else throw new Error("Config merge conflict for field "+n)}for(let r in e)i[r]===void 0&&(i[r]=e[r]);return i}class fi{eq(e){return this==e}range(e,t=e){return Ia.create(e,t,this)}}fi.prototype.startSide=fi.prototype.endSide=0;fi.prototype.point=!1;fi.prototype.mapMode=Fe.TrackDel;let Ia=class ad{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ad(e,t,i)}};function Ea(O,e){return O.from-e.from||O.value.startSide-e.value.startSide}class Qc{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let n=i?this.to:this.from;for(let s=r,o=n.length;;){if(s==o)return s;let a=s+o>>1,l=n[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==s)return l>=0?s:o;l>=0?o=a:s=a+1}}between(e,t,i,r){for(let n=this.findIndex(t,-1e9,!0),s=this.findIndex(i,1e9,!1,n);nu||Q==u&&l.startSide>0&&l.endSide<=0)continue;(u-Q||l.endSide-l.startSide)<0||(s<0&&(s=Q),l.point&&(o=Math.max(o,u-Q)),i.push(l),r.push(Q-s),n.push(u-s))}return{mapped:i.length?new Qc(r,n,i,o):null,pos:s}}}class ce{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new ce(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:n=this.length}=e,s=e.filter;if(t.length==0&&!s)return this;if(i&&(t=t.slice().sort(Ea)),this.isEmpty)return t.length?ce.of(t):this;let o=new ld(this,null,-1).goto(0),a=0,l=[],c=new CO;for(;o.value||a=0){let h=t[a++];c.addInner(h.from,h.to,h.value)||l.push(h)}else o.rangeIndex==1&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||no.to||n=n&&e<=n+s.length&&s.between(n,e-n,t-n,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return zr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return zr.from(e).goto(t)}static compare(e,t,i,r,n=-1){let s=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),o=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),a=Dh(s,o,i),l=new rr(s,a,n),c=new rr(o,a,n);i.iterGaps((h,Q,u)=>Mh(l,h,c,Q,u,r)),i.empty&&i.length==0&&Mh(l,0,c,0,0,r)}static eq(e,t,i=0,r){r==null&&(r=1e9-1);let n=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),s=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(n.length!=s.length)return!1;if(!n.length)return!0;let o=Dh(n,s),a=new rr(n,o,0).goto(i),l=new rr(s,o,0).goto(i);for(;;){if(a.to!=l.to||!Aa(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>r)return!0;a.next(),l.next()}}static spans(e,t,i,r,n=-1){let s=new rr(e,null,n).goto(t),o=t,a=s.openStart;for(;;){let l=Math.min(s.to,i);if(s.point){let c=s.activeForPoint(s.to),h=s.pointFromo&&(r.span(o,l,s.active,a),a=s.openEnd(l));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(e,t=!1){let i=new CO;for(let r of e instanceof Ia?[e]:t?iy(e):e)i.add(r.from,r.to,r.value);return i.finish()}}ce.empty=new ce([],[],null,-1);function iy(O){if(O.length>1)for(let e=O[0],t=1;t0)return O.slice().sort(Ea);e=i}return O}ce.empty.nextLayer=ce.empty;class CO{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Qc(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new CO)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(ce.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=ce.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Dh(O,e,t){let i=new Map;for(let n of O)for(let s=0;s=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new ld(s,t,i,n));return r.length==1?r[0]:new zr(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ro(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ro(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ro(this.heap,0)}}}function Ro(O,e){for(let t=O[e];;){let i=(e<<1)+1;if(i>=O.length)break;let r=O[i];if(i+1=0&&(r=O[i+1],i++),t.compare(r)<0)break;O[i]=t,O[e]=r,e=i}}class rr{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=zr.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Sn(this.active,e),Sn(this.activeTo,e),Sn(this.activeRank,e),this.minActive=Nh(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:n}=this.cursor;for(;t-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&Sn(i,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let n=this.cursor.value;if(!n.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[r]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Mh(O,e,t,i,r,n){O.goto(e),t.goto(i);let s=i+r,o=i,a=i-e;for(;;){let l=O.to+a-t.to||O.endSide-t.endSide,c=l<0?O.to+a:t.to,h=Math.min(c,s);if(O.point||t.point?O.point&&t.point&&(O.point==t.point||O.point.eq(t.point))&&Aa(O.activeForPoint(O.to+a),t.activeForPoint(t.to))||n.comparePoint(o,h,O.point,t.point):h>o&&!Aa(O.active,t.active)&&n.compareRange(o,h,O.active,t.active),c>s)break;o=c,l<=0&&O.next(),l>=0&&t.next()}}function Aa(O,e){if(O.length!=e.length)return!1;for(let t=0;t=e;i--)O[i+1]=O[i];O[e]=t}function Nh(O,e){let t=-1,i=1e9;for(let r=0;r=e)return r;if(r==O.length)break;n+=O.charCodeAt(r)==9?t-n%t:1,r=at(O,r)}return i===!0?-1:O.length}const Ma="ͼ",Lh=typeof Symbol>"u"?"__"+Ma:Symbol.for(Ma),Na=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Bh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class IO{constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function n(s,o,a,l){let c=[],h=/^@(\w+)\b/.exec(s[0]),Q=h&&h[1]=="keyframes";if(h&&o==null)return a.push(s[0]+";");for(let u in o){let $=o[u];if(/&/.test(u))n(u.split(/,\s*/).map(d=>s.map(p=>d.replace(/&/,p))).reduce((d,p)=>d.concat(p)),$,a);else if($&&typeof $=="object"){if(!h)throw new RangeError("The value of a property ("+u+") should be a primitive value.");n(r(u),$,c,Q)}else $!=null&&c.push(u.replace(/_.*/,"").replace(/[A-Z]/g,d=>"-"+d.toLowerCase())+": "+$+";")}(c.length||Q)&&a.push((i&&!h&&!l?s.map(i):s).join(", ")+" {"+c.join(" ")+"}")}for(let s in e)n(r(s),e[s],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=Bh[Lh]||1;return Bh[Lh]=e+1,Ma+e.toString(36)}static mount(e,t){(e[Na]||new ry(e)).mount(Array.isArray(t)?t:[t])}}let yn=null;class ry{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet<"u"){if(yn)return e.adoptedStyleSheets=[yn.sheet].concat(e.adoptedStyleSheets),e[Na]=yn;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),yn=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[Na]=this}mount(e){let t=this.sheet,i=0,r=0;for(let n=0;n-1&&(this.modules.splice(o,1),r--,o=-1),o==-1){if(this.modules.splice(r++,0,s),t)for(let a=0;a",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Hh=typeof navigator<"u"&&/Chrome\/(\d+)/.exec(navigator.userAgent),ny=typeof navigator<"u"&&/Mac/.test(navigator.platform),sy=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),oy=ny||Hh&&+Hh[1]<57;for(var He=0;He<10;He++)EO[48+He]=EO[96+He]=String(He);for(var He=1;He<=24;He++)EO[He+111]="F"+He;for(var He=65;He<=90;He++)EO[He]=String.fromCharCode(He+32),_r[He]=String.fromCharCode(He);for(var Uo in EO)_r.hasOwnProperty(Uo)||(_r[Uo]=EO[Uo]);function ay(O){var e=oy&&(O.ctrlKey||O.altKey||O.metaKey)||sy&&O.shiftKey&&O.key&&O.key.length==1||O.key=="Unidentified",t=!e&&O.key||(O.shiftKey?_r:EO)[O.keyCode]||O.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function ps(O){let e;return O.nodeType==11?e=O.getSelection?O:O.ownerDocument:e=O,e.getSelection()}function Gi(O,e){return e?O==e||O.contains(e.nodeType!=1?e.parentNode:e):!1}function ly(O){let e=O.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function ts(O,e){if(!e.anchorNode)return!1;try{return Gi(O,e.anchorNode)}catch{return!1}}function jr(O){return O.nodeType==3?Ci(O,0,O.nodeValue.length).getClientRects():O.nodeType==1?O.getClientRects():[]}function ms(O,e,t,i){return t?Fh(O,e,t,i,-1)||Fh(O,e,t,i,1):!1}function Ps(O){for(var e=0;;e++)if(O=O.previousSibling,!O)return e}function Fh(O,e,t,i,r){for(;;){if(O==t&&e==i)return!0;if(e==(r<0?0:Gr(O))){if(O.nodeName=="DIV")return!1;let n=O.parentNode;if(!n||n.nodeType!=1)return!1;e=Ps(O)+(r<0?0:1),O=n}else if(O.nodeType==1){if(O=O.childNodes[e+(r<0?-1:0)],O.nodeType==1&&O.contentEditable=="false")return!1;e=r<0?Gr(O):0}else return!1}}function Gr(O){return O.nodeType==3?O.nodeValue.length:O.childNodes.length}const cd={left:0,right:0,top:0,bottom:0};function uc(O,e){let t=e?O.left:O.right;return{left:t,right:t,top:O.top,bottom:O.bottom}}function cy(O){return{left:0,right:O.innerWidth,top:0,bottom:O.innerHeight}}function hy(O,e,t,i,r,n,s,o){let a=O.ownerDocument,l=a.defaultView||window;for(let c=O;c;)if(c.nodeType==1){let h,Q=c==a.body;if(Q)h=cy(l);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let d=c.getBoundingClientRect();h={left:d.left,right:d.left+c.clientWidth,top:d.top,bottom:d.top+c.clientHeight}}let u=0,$=0;if(r=="nearest")e.top0&&e.bottom>h.bottom+$&&($=e.bottom-h.bottom+$+s)):e.bottom>h.bottom&&($=e.bottom-h.bottom+s,t<0&&e.top-$0&&e.right>h.right+u&&(u=e.right-h.right+u+n)):e.right>h.right&&(u=e.right-h.right+n,t<0&&e.leftt.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}class Qy{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}}let mi=null;function hd(O){if(O.setActive)return O.setActive();if(mi)return O.focus(mi);let e=[];for(let t=O;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(O.focus(mi==null?{get preventScroll(){return mi={preventScroll:!0},!0}}:void 0),!mi){mi=!1;for(let t=0;tt)return h.domBoundsAround(e,t,l);if(Q>=e&&r==-1&&(r=a,n=l),l>t&&h.dom.parentNode==this.dom){s=a,o=c;break}c=Q,l=Q+h.breakAfter}return{from:n,to:o<0?i+this.length:o,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),t.dirty&1)return;t.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=$c){this.markDirty();for(let r=e;rthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ud(O,e,t,i,r,n,s,o,a){let{children:l}=O,c=l.length?l[e]:null,h=n.length?n[n.length-1]:null,Q=h?h.breakAfter:s;if(!(e==i&&c&&!s&&!Q&&n.length<2&&c.merge(t,r,n.length?h:null,t==0,o,a))){if(i0&&(!s&&n.length&&c.merge(t,c.length,n[0],!1,o,0)?c.breakAfter=n.shift().breakAfter:(t2);var j={mac:Of||/Mac/.test(Xt.platform),windows:/Win/.test(Xt.platform),linux:/Linux|X11/.test(Xt.platform),ie:so,ie_version:dd?La.documentMode||6:Ha?+Ha[1]:Ba?+Ba[1]:0,gecko:ef,gecko_version:ef?+(/Firefox\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,chrome:!!Vo,chrome_version:Vo?+Vo[1]:0,ios:Of,android:/Android\b/.test(Xt.userAgent),webkit:tf,safari:pd,webkit_version:tf?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:La.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const dy=256;class AO extends Se{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return i&&(!(i instanceof AO)||this.length-(t-e)+i.length>dy)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new AO(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new it(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return Fa(this.dom,e,t)}}class lO extends Se{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let r of t)r.setParent(this)}setAttrs(e){if(fd(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e,t){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,r,n,s){return i&&(!(i instanceof lO&&i.mark.eq(this.mark))||e&&n<=0||te&&t.push(i=e&&(r=n),i=a,n++}let s=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new lO(this.mark,t,s)}domAtPos(e){return gd(this,e)}coordsAt(e,t){return Xd(this,e,t)}}function Fa(O,e,t){let i=O.nodeValue.length;e>i&&(e=i);let r=e,n=e,s=0;e==0&&t<0||e==i&&t>=0?j.chrome||j.gecko||(e?(r--,s=1):n=0)?0:o.length-1];return j.safari&&!s&&a.width==0&&(a=Array.prototype.find.call(o,l=>l.width)||a),s?uc(a,s<0):a||null}class ZO extends Se{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}static create(e,t,i){return new(e.customView||ZO)(e,t,i)}split(e){let t=ZO.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,r,n,s){return i&&(!(i instanceof ZO)||!this.widget.compare(i.widget)||e>0&&n<=0||t0?i.length-1:0;r=i[n],!(e>0?n==0:n==i.length-1||r.top0?-1:1);return this.length?r:uc(r,this.side>0)}get isEditable(){return!1}get isWidget(){return!0}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class md extends ZO{domAtPos(e){let{topView:t,text:i}=this.widget;return t?Ka(e,0,t,i,(r,n)=>r.domAtPos(n),r=>new it(i,Math.min(r,i.nodeValue.length))):new it(i,Math.min(e,i.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,t){let{topView:i,text:r}=this.widget;return i?Pd(e,t,i,r):Math.min(t,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,t){let{topView:i,text:r}=this.widget;return i?Ka(e,t,i,r,(n,s,o)=>n.coordsAt(s,o),(n,s)=>Fa(r,n,s)):Fa(r,e,t)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}}function Ka(O,e,t,i,r,n){if(t instanceof lO){for(let s=t.dom.firstChild;s;s=s.nextSibling){let o=Se.get(s);if(!o)return n(O,e);let a=Gi(s,i),l=o.length+(a?i.nodeValue.length:0);if(O0?-1:1);return i&&i.topt.top?{left:t.left,right:t.right,top:i.top,bottom:i.bottom}:t}get overrideDOMText(){return le.empty}}AO.prototype.children=ZO.prototype.children=Ii.prototype.children=$c;function py(O,e){let t=O.parent,i=t?t.children.indexOf(O):-1;for(;t&&i>=0;)if(e<0?i>0:in&&e0;n--){let s=i[n-1];if(s.dom.parentNode==t)return s.domAtPos(s.length)}for(let n=r;n0&&e instanceof lO&&r.length&&(i=r[r.length-1])instanceof lO&&i.mark.eq(e.mark)?Sd(i,e.children[0],t-1):(r.push(e),e.setParent(O)),O.length+=e.length}function Xd(O,e,t){let i=null,r=-1,n=null,s=-1;function o(l,c){for(let h=0,Q=0;h=c&&(u.children.length?o(u,c-Q):!n&&($>c||Q==$&&u.getSide()>0)?(n=u,s=c-Q):(Q0?3e8:-4e8:t>0?1e8:-1e8,new Qi(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,r;if(e.isBlockGap)i=-5e8,r=4e8;else{let{start:n,end:s}=yd(e,t);i=(n?t?-3e8:-1:5e8)-1,r=(s?t?2e8:1:-6e8)+1}return new Qi(e,i,r,t,e.widget||null,!0)}static line(e){return new nn(e)}static set(e,t=!1){return ce.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}I.none=ce.empty;class oo extends I{constructor(e){let{start:t,end:i}=yd(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof oo&&this.tagName==e.tagName&&this.class==e.class&&dc(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}oo.prototype.point=!1;class nn extends I{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof nn&&this.spec.class==e.spec.class&&dc(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}nn.prototype.mapMode=Fe.TrackBefore;nn.prototype.point=!0;class Qi extends I{constructor(e,t,i,r,n,s){super(t,i,n,e),this.block=r,this.isReplace=s,this.mapMode=r?t<=0?Fe.TrackBefore:Fe.TrackAfter:Fe.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof Qi&&Py(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}Qi.prototype.point=!0;function yd(O,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=O;return t==null&&(t=O.inclusive),i==null&&(i=O.inclusive),{start:t??e,end:i??e}}function Py(O,e){return O==e||!!(O&&e&&O.compare(e))}function tl(O,e,t,i=0){let r=t.length-1;r>=0&&t[r]+i>=O?t[r]=Math.max(t[r],e):t.push(O,e)}class lt extends Se{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,r,n,s){if(i){if(!(i instanceof lt))return!1;this.dom||i.transferDOM(this)}return r&&this.setDeco(i?i.attrs:null),$d(this,e,t,i?i.children:[],n,s),!0}split(e){let t=new lt;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i,off:r}=this.childPos(e);r&&(t.append(this.children[i].split(r),0),this.children[i].merge(r,this.children[i].length,null,!1,0,0),i++);for(let n=i;n0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){dc(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Sd(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Ja(t,this.attrs||{})),i&&(this.attrs=Ja({class:i},this.attrs||{}))}domAtPos(e){return gd(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e,t){var i;this.dom?this.dirty&4&&(fd(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(el(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Se.get(r)instanceof lO;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((i=Se.get(r))===null||i===void 0?void 0:i.isEditable)==!1&&(!j.ios||!this.children.some(n=>n instanceof AO))){let n=document.createElement("BR");n.cmIgnore=!0,this.dom.appendChild(n)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let t of this.children){if(!(t instanceof AO)||/[^ -~]/.test(t.text))return null;let i=jr(t.dom);if(i.length!=1)return null;e+=i[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,t){return Xd(this,e,t)}become(e){return!1}get type(){return $e.Text}static find(e,t){for(let i=0,r=0;i=t){if(n instanceof lt)return n;if(s>t)break}r=s+n.breakAfter}return null}}class hi extends Se{constructor(e,t,i){super(),this.widget=e,this.length=t,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,r,n,s){return i&&(!(i instanceof hi)||!this.widget.compare(i.widget)||e>0&&n<=0||t0;){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:o}=this.cursor.next(this.skip);if(this.skip=0,o)throw new Error("Ran out of text content when drawing inline views");if(s){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=n,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(xn(new AO(this.text.slice(this.textOff,this.textOff+r)),t),i),this.atCursorPos=!0,this.textOff+=r,e-=r,i=0}}span(e,t,i,r){this.buildText(t-e,i,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,i,r,n,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Qi){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=t-e;if(i instanceof Qi)if(i.block){let{type:a}=i;a==$e.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new hi(i.widget||new rf("div"),o,a))}else{let a=ZO.create(i.widget||new rf("span"),o,o?0:i.startSide),l=this.atCursorPos&&!a.isEditable&&n<=r.length&&(e0),c=!a.isEditable&&(er.length||i.startSide<=0),h=this.getLine();this.pendingBuffer==2&&!l&&(this.pendingBuffer=0),this.flushBuffer(r),l&&(h.append(xn(new Ii(1),r),n),n=r.length+Math.max(0,n-r.length)),h.append(xn(a,r),n),this.atCursorPos=c,this.pendingBuffer=c?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=n)}static build(e,t,i,r,n){let s=new pc(e,t,i,n);return s.openEnd=ce.spans(r,t,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function xn(O,e){for(let t of e)O=new lO(t,[O],O.length);return O}class rf extends hO{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const xd=_.define(),bd=_.define(),wd=_.define(),Wd=_.define(),Ol=_.define(),Td=_.define(),Yd=_.define(),vd=_.define({combine:O=>O.some(e=>e)}),qd=_.define({combine:O=>O.some(e=>e)});class gs{constructor(e,t="nearest",i="nearest",r=5,n=5){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=n}map(e){return e.empty?this:new gs(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const nf=B.define({map:(O,e)=>O.map(e)});function xt(O,e,t){let i=O.facet(Wd);i.length?i[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}const ao=_.define({combine:O=>O.length?O[0]:!0});let gy=0;const Qr=_.define();class qe{constructor(e,t,i,r){this.id=e,this.create=t,this.domEventHandlers=i,this.extension=r(this)}static define(e,t){const{eventHandlers:i,provide:r,decorations:n}=t||{};return new qe(gy++,e,i,s=>{let o=[Qr.of(s)];return n&&o.push(Cr.of(a=>{let l=a.plugin(s);return l?n(l):I.none})),r&&o.push(r(s)),o})}static fromClass(e,t){return qe.define(i=>new e(i),t)}}class zo{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(xt(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){xt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){xt(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const kd=_.define(),mc=_.define(),Cr=_.define(),Zd=_.define(),Rd=_.define(),ur=_.define();class oO{constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new oO(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAc)break;n+=2}if(!a)return i;new oO(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Ss{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Ve.empty(this.startState.doc.length);for(let n of i)this.changes=this.changes.compose(n.changes);let r=[];this.changes.iterChangedRanges((n,s,o,a)=>r.push(new oO(n,s,o,a))),this.changedRanges=r}static create(e,t,i){return new Ss(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var We=function(O){return O[O.LTR=0]="LTR",O[O.RTL=1]="RTL",O}(We||(We={}));const il=We.LTR,Sy=We.RTL;function Ud(O){let e=[];for(let t=0;t=t){if(o.level==i)return s;(n<0||(r!=0?r<0?o.fromt:e[n].level>o.level))&&(n=s)}}if(n<0)throw new RangeError("Index out of range");return n}}const we=[];function wy(O,e){let t=O.length,i=e==il?1:2,r=e==il?2:1;if(!O||i==1&&!by.test(O))return Vd(t);for(let s=0,o=i,a=i;s=0;Q-=3)if(Ht[Q+1]==-c){let u=Ht[Q+2],$=u&2?i:u&4?u&1?r:i:0;$&&(we[s]=we[Ht[Q]]=$),o=Q;break}}else{if(Ht.length==189)break;Ht[o++]=s,Ht[o++]=l,Ht[o++]=a}else if((h=we[s])==2||h==1){let Q=h==i;a=Q?0:1;for(let u=o-3;u>=0;u-=3){let $=Ht[u+2];if($&2)break;if(Q)Ht[u+2]|=2;else{if($&4)break;Ht[u+2]|=4}}}for(let s=0;so;){let c=l,h=we[--l]!=2;for(;l>o&&h==(we[l-1]!=2);)l--;n.push(new Zi(l,c,h?2:1))}else n.push(new Zi(o,s,0))}else for(let s=0;s1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=s-1);i=n+s}}readNode(e){if(e.cmIgnore)return;let t=Se.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let r=i.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+Math.min(t,i.offset))}}function sf(O){return O.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(O.nodeName)}class of{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class af extends Se{constructor(e){super(),this.view=e,this.compositionDeco=I.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new lt],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new oO(0,0,0,e.state.doc.length)],0)}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:s,toA:o})=>othis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=I.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=Yy(this.view,e.changes)),(j.ie||j.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,r=this.updateDeco(),n=Zy(i,r,e.changes);return t=oO.extendWithRanges(t,n),this.dirty==0&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t);let{observer:i}=this.view;i.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let n=j.chrome||j.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,n),this.dirty=0,n&&(n.written||i.selectionRange.focusNode!=n.node)&&(this.forceSelection=!0),this.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to=0?e[r]:null;if(!n)break;let{fromA:s,toA:o,fromB:a,toB:l}=n,{content:c,breakAtStart:h,openStart:Q,openEnd:u}=pc.build(this.view.state.doc,a,l,this.decorations,this.dynamicDecorationMap),{i:$,off:d}=i.findPos(o,1),{i:p,off:P}=i.findPos(s,-1);ud(this,p,P,$,d,c,h,Q,u)}}updateSelection(e=!1,t=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(t||this.mayControlSelection()))return;let i=this.forceSelection;this.forceSelection=!1;let r=this.view.state.selection.main,n=this.domAtPos(r.anchor),s=r.empty?n:this.domAtPos(r.head);if(j.gecko&&r.empty&&Ty(n)){let a=document.createTextNode("");this.view.observer.ignore(()=>n.node.insertBefore(a,n.node.childNodes[n.offset]||null)),n=s=new it(a,0),i=!0}let o=this.view.observer.selectionRange;(i||!o.focusNode||!ms(n.node,n.offset,o.anchorNode,o.anchorOffset)||!ms(s.node,s.offset,o.focusNode,o.focusOffset))&&(this.view.observer.ignore(()=>{j.android&&j.chrome&&this.dom.contains(o.focusNode)&&Ry(o.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let a=ps(this.view.root);if(a)if(r.empty){if(j.gecko){let l=qy(n.node,n.offset);if(l&&l!=3){let c=Gd(n.node,n.offset,l==1?1:-1);c&&(n=new it(c,l==1?0:c.nodeValue.length))}}a.collapse(n.node,n.offset),r.bidiLevel!=null&&o.cursorBidiLevel!=null&&(o.cursorBidiLevel=r.bidiLevel)}else if(a.extend){a.collapse(n.node,n.offset);try{a.extend(s.node,s.offset)}catch{}}else{let l=document.createRange();r.anchor>r.head&&([n,s]=[s,n]),l.setEnd(s.node,s.offset),l.setStart(n.node,n.offset),a.removeAllRanges(),a.addRange(l)}}),this.view.observer.setSelectionRange(n,s)),this.impreciseAnchor=n.precise?null:new it(o.anchorNode,o.anchorOffset),this.impreciseHead=s.precise?null:new it(o.focusNode,o.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:e}=this,t=e.state.selection.main,i=ps(e.root),{anchorNode:r,anchorOffset:n}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let s=lt.find(this,t.head);if(!s)return;let o=s.posAtStart;if(t.head==o||t.head==o+s.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&i.collapse(r,n)}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||ts(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let t=e;t;){let i=Se.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;ts||e==s&&n.type!=$e.WidgetBefore&&n.type!=$e.WidgetAfter&&(!r||t==2||this.children[r-1].breakAfter||this.children[r-1].type==$e.WidgetBefore&&t>-2))return n.coordsAt(e-s,t);i=s}}measureVisibleLineHeights(e){let t=[],{from:i,to:r}=e,n=this.view.contentDOM.clientWidth,s=n>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==We.LTR;for(let l=0,c=0;cr)break;if(l>=i){let u=h.dom.getBoundingClientRect();if(t.push(u.height),s){let $=h.dom.lastChild,d=$?jr($):[];if(d.length){let p=d[d.length-1],P=a?p.right-u.left:u.right-p.left;P>o&&(o=P,this.minWidth=n,this.minWidthFrom=l,this.minWidthTo=Q)}}}l=Q+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?We.RTL:We.LTR}measureTextSize(){for(let r of this.children)if(r instanceof lt){let n=r.measureTextSize();if(n)return n}let e=document.createElement("div"),t,i;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let r=jr(e.firstChild)[0];t=e.getBoundingClientRect().height,i=r?r.width/27:7,e.remove()}),{lineHeight:t,charWidth:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Qd(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let n=r==t.viewports.length?null:t.viewports[r],s=n?n.from-1:this.length;if(s>i){let o=t.lineBlockAt(s).bottom-t.lineBlockAt(i).top;e.push(I.replace({widget:new lf(o),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!n)break;i=n.to+1}return I.set(e)}updateDeco(){let e=this.view.state.facet(Cr).map((t,i)=>(this.dynamicDecorationMap[i]=typeof t=="function")?t(this.view):t);for(let t=e.length;tt.anchor?-1:1),r;if(!i)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,r.left),top:Math.min(i.top,r.top),right:Math.max(i.right,r.right),bottom:Math.max(i.bottom,r.bottom)});let n=0,s=0,o=0,a=0;for(let c of this.view.state.facet(Rd).map(h=>h(this.view)))if(c){let{left:h,right:Q,top:u,bottom:$}=c;h!=null&&(n=Math.max(n,h)),Q!=null&&(s=Math.max(s,Q)),u!=null&&(o=Math.max(o,u)),$!=null&&(a=Math.max(a,$))}let l={left:i.left-n,top:i.top-o,right:i.right+s,bottom:i.bottom+a};hy(this.view.scrollDOM,l,t.head0&&t<=0)O=O.childNodes[e-1],e=Gr(O);else if(O.nodeType==1&&e=0)O=O.childNodes[e],e=0;else return null}}function qy(O,e){return O.nodeType!=1?0:(e&&O.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let l=at(r.text,s,!1);if(i(r.text.slice(l,s))!=a)break;s=l}for(;oO?e.left-O:Math.max(0,O-e.right)}function zy(O,e){return e.top>O?e.top-O:Math.max(0,O-e.bottom)}function _o(O,e){return O.tope.top+1}function cf(O,e){return eO.bottom?{top:O.top,left:O.left,right:O.right,bottom:e}:O}function nl(O,e,t){let i,r,n,s,o=!1,a,l,c,h;for(let $=O.firstChild;$;$=$.nextSibling){let d=jr($);for(let p=0;px||s==x&&n>y){i=$,r=P,n=y,s=x;let b=x?t0?p0)}y==0?t>P.bottom&&(!c||c.bottomP.top)&&(l=$,h=P):c&&_o(c,P)?c=hf(c,P.bottom):h&&_o(h,P)&&(h=cf(h,P.top))}}if(c&&c.bottom>=t?(i=a,r=c):h&&h.top<=t&&(i=l,r=h),!i)return{node:O,offset:0};let Q=Math.max(r.left,Math.min(r.right,e));if(i.nodeType==3)return ff(i,Q,t);if(o&&i.contentEditable!="false")return nl(i,Q,t);let u=Array.prototype.indexOf.call(O.childNodes,i)+(e>=(r.left+r.right)/2?1:0);return{node:O,offset:u}}function ff(O,e,t){let i=O.nodeValue.length,r=-1,n=1e9,s=0;for(let o=0;ot?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&h=(c.left+c.right)/2,u=Q;if((j.chrome||j.gecko)&&Ci(O,o).getBoundingClientRect().left==c.right&&(u=!Q),h<=0)return{node:O,offset:o+(u?1:0)};r=o+(u?1:0),n=h}}}return{node:O,offset:r>-1?r:s>0?O.nodeValue.length:0}}function Cd(O,e,t,i=-1){var r,n;let s=O.contentDOM.getBoundingClientRect(),o=s.top+O.viewState.paddingTop,a,{docHeight:l}=O.viewState,{x:c,y:h}=e,Q=h-o;if(Q<0)return 0;if(Q>l)return O.state.doc.length;for(let b=O.defaultLineHeight/2,Y=!1;a=O.elementAtHeight(Q),a.type!=$e.Text;)for(;Q=i>0?a.bottom+b:a.top-b,!(Q>=0&&Q<=l);){if(Y)return t?null:0;Y=!0,i=-i}h=o+Q;let u=a.from;if(uO.viewport.to)return O.viewport.to==O.state.doc.length?O.state.doc.length:t?null:Qf(O,s,a,c,h);let $=O.dom.ownerDocument,d=O.root.elementFromPoint?O.root:$,p=d.elementFromPoint(c,h);p&&!O.contentDOM.contains(p)&&(p=null),p||(c=Math.max(s.left+1,Math.min(s.right-1,c)),p=d.elementFromPoint(c,h),p&&!O.contentDOM.contains(p)&&(p=null));let P,y=-1;if(p&&((r=O.docView.nearest(p))===null||r===void 0?void 0:r.isEditable)!=!1){if($.caretPositionFromPoint){let b=$.caretPositionFromPoint(c,h);b&&({offsetNode:P,offset:y}=b)}else if($.caretRangeFromPoint){let b=$.caretRangeFromPoint(c,h);b&&({startContainer:P,startOffset:y}=b,(!O.contentDOM.contains(P)||j.safari&&_y(P,y,c)||j.chrome&&jy(P,y,c))&&(P=void 0))}}if(!P||!O.docView.dom.contains(P)){let b=lt.find(O.docView,u);if(!b)return Q>a.top+a.height/2?a.to:a.from;({node:P,offset:y}=nl(b.dom,c,h))}let x=O.docView.nearest(P);if(!x)return null;if(x.isWidget&&((n=x.dom)===null||n===void 0?void 0:n.nodeType)==1){let b=x.dom.getBoundingClientRect();return e.yO.defaultLineHeight*1.5){let o=Math.floor((r-t.top)/O.defaultLineHeight);n+=o*O.viewState.heightOracle.lineLength}let s=O.state.sliceDoc(t.from,t.to);return t.from+Da(s,n,O.state.tabSize)}function _y(O,e,t){let i;if(O.nodeType!=3||e!=(i=O.nodeValue.length))return!1;for(let r=O.nextSibling;r;r=r.nextSibling)if(r.nodeType!=1||r.nodeName!="BR")return!1;return Ci(O,i-1,i).getBoundingClientRect().left>t}function jy(O,e,t){if(e!=0)return!1;for(let r=O;;){let n=r.parentNode;if(!n||n.nodeType!=1||n.firstChild!=r)return!1;if(n.classList.contains("cm-line"))break;r=n}let i=O.nodeType==1?O.getBoundingClientRect():Ci(O,0,Math.max(O.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function Gy(O,e,t,i){let r=O.state.doc.lineAt(e.head),n=!i||!O.lineWrapping?null:O.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(n){let a=O.dom.getBoundingClientRect(),l=O.textDirectionAt(r.from),c=O.posAtCoords({x:t==(l==We.LTR)?a.right-1:a.left+1,y:(n.top+n.bottom)/2});if(c!=null)return X.cursor(c,t?-1:1)}let s=lt.find(O.docView,e.head),o=s?t?s.posAtEnd:s.posAtStart:t?r.to:r.from;return X.cursor(o,t?-1:1)}function uf(O,e,t,i){let r=O.state.doc.lineAt(e.head),n=O.bidiSpans(r),s=O.textDirectionAt(r.from);for(let o=e,a=null;;){let l=Wy(r,n,s,o,t),c=zd;if(!l){if(r.number==(t?O.state.doc.lines:1))return o;c=` -`,r=O.state.doc.line(r.number+(t?1:-1)),n=O.bidiSpans(r),l=X.cursor(t?r.from:r.to)}if(a){if(!a(c))return o}else{if(!i)return l;a=i(c)}o=l}}function Cy(O,e,t){let i=O.state.charCategorizer(e),r=i(t);return n=>{let s=i(n);return r==xe.Space&&(r=s),r==s}}function Iy(O,e,t,i){let r=e.head,n=t?1:-1;if(r==(t?O.state.doc.length:0))return X.cursor(r,e.assoc);let s=e.goalColumn,o,a=O.contentDOM.getBoundingClientRect(),l=O.coordsAtPos(r),c=O.documentTop;if(l)s==null&&(s=l.left-a.left),o=n<0?l.top:l.bottom;else{let u=O.viewState.lineBlockAt(r);s==null&&(s=Math.min(a.right-a.left,O.defaultCharacterWidth*(r-u.from))),o=(n<0?u.top:u.bottom)+c}let h=a.left+s,Q=i??O.defaultLineHeight>>1;for(let u=0;;u+=10){let $=o+(Q+u)*n,d=Cd(O,{x:h,y:$},!1,n);if($a.bottom||(n<0?dr))return X.cursor(d,e.assoc,void 0,s)}}function jo(O,e,t){let i=O.state.facet(Zd).map(r=>r(O));for(;;){let r=!1;for(let n of i)n.between(t.from-1,t.from+1,(s,o,a)=>{t.from>s&&t.fromt.from?X.cursor(s,1):X.cursor(o,-1),r=!0)});if(!r)return t}}class Ey{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.mouseSelection=null;let t=(i,r)=>{this.ignoreDuringComposition(r)||r.type=="keydown"&&this.keydown(e,r)||(this.mustFlushObserver(r)&&e.observer.forceFlush(),this.runCustomHandlers(r.type,e,r)?r.preventDefault():i(e,r))};for(let i in _e){let r=_e[i];e.contentDOM.addEventListener(i,n=>{$f(e,n)&&t(r,n)},sl[i]),this.registeredEvents.push(i)}e.scrollDOM.addEventListener("mousedown",i=>{i.target==e.scrollDOM&&i.clientY>e.contentDOM.getBoundingClientRect().bottom&&t(_e.mousedown,i)}),j.chrome&&j.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,j.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var i;let r;this.customHandlers=[];for(let n of t)if(r=(i=n.update(e).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:n.value,handlers:r});for(let s in r)this.registeredEvents.indexOf(s)<0&&s!="scroll"&&(this.registeredEvents.push(s),e.contentDOM.addEventListener(s,o=>{$f(e,o)&&this.runCustomHandlers(s,e,o)&&o.preventDefault()}))}}runCustomHandlers(e,t,i){for(let r of this.customHandlers){let n=r.handlers[e];if(n)try{if(n.call(r.plugin,i,t)||i.defaultPrevented)return!0}catch(s){xt(t.state,s)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let i of this.customHandlers){let r=i.handlers.scroll;if(r)try{r.call(i.plugin,t,e)}catch(n){xt(e.state,n)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()r.keyCode==t.keyCode))&&!t.ctrlKey||Ay.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=i||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,ki(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:j.safari&&!j.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Id=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Ay="dthko",Ed=[16,17,18,20,91,92,224,225];function bn(O){return O*.7+8}class Dy{constructor(e,t,i,r){this.view=e,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=fy(e.contentDOM);let n=e.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this)),n.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(te.allowMultipleSelections)&&My(e,t),this.dragMove=Ny(e,t),this.dragging=Ly(e,t)&&Nd(t)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging!==!1)return;this.select(this.lastEvent=e);let i=0,r=0,n=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};e.clientX<=n.left?i=-bn(n.left-e.clientX):e.clientX>=n.right&&(i=bn(e.clientX-n.right)),e.clientY<=n.top?r=-bn(n.top-e.clientY):e.clientY>=n.bottom&&(r=bn(e.clientY-n.bottom)),this.setScrollSpeed(i,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}select(e){let t=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!t.eq(this.view.state.selection)||t.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function My(O,e){let t=O.state.facet(xd);return t.length?t[0](e):j.mac?e.metaKey:e.ctrlKey}function Ny(O,e){let t=O.state.facet(bd);return t.length?t[0](e):j.mac?!e.altKey:!e.ctrlKey}function Ly(O,e){let{main:t}=O.state.selection;if(t.empty)return!1;let i=ps(O.root);if(!i||i.rangeCount==0)return!0;let r=i.getRangeAt(0).getClientRects();for(let n=0;n=e.clientX&&s.top<=e.clientY&&s.bottom>=e.clientY)return!0}return!1}function $f(O,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=O.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=Se.get(t))&&i.ignoreEvent(e))return!1;return!0}const _e=Object.create(null),sl=Object.create(null),Ad=j.ie&&j.ie_version<15||j.ios&&j.webkit_version<604;function By(O){let e=O.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{O.focus(),t.remove(),Dd(O,t.value)},50)}function Dd(O,e){let{state:t}=O,i,r=1,n=t.toText(e),s=n.lines==t.selection.ranges.length;if(ol!=null&&t.selection.ranges.every(a=>a.empty)&&ol==n.toString()){let a=-1;i=t.changeByRange(l=>{let c=t.doc.lineAt(l.from);if(c.from==a)return{range:l};a=c.from;let h=t.toText((s?n.line(r++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:h},range:X.cursor(l.from+h.length)}})}else s?i=t.changeByRange(a=>{let l=n.line(r++);return{changes:{from:a.from,to:a.to,insert:l.text},range:X.cursor(a.from+l.length)}}):i=t.replaceSelection(n);O.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}_e.keydown=(O,e)=>{O.inputState.setSelectionOrigin("select"),e.keyCode==27?O.inputState.lastEscPress=Date.now():Ed.indexOf(e.keyCode)<0&&(O.inputState.lastEscPress=0)};_e.touchstart=(O,e)=>{O.inputState.lastTouchTime=Date.now(),O.inputState.setSelectionOrigin("select.pointer")};_e.touchmove=O=>{O.inputState.setSelectionOrigin("select.pointer")};sl.touchstart=sl.touchmove={passive:!0};_e.mousedown=(O,e)=>{if(O.observer.flush(),O.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let i of O.state.facet(wd))if(t=i(O,e),t)break;if(!t&&e.button==0&&(t=Ky(O,e)),t){let i=O.root.activeElement!=O.contentDOM;O.inputState.startMouseSelection(new Dy(O,e,t,i)),i&&O.observer.ignore(()=>hd(O.contentDOM)),O.inputState.mouseSelection&&O.inputState.mouseSelection.start(e)}};function df(O,e,t,i){if(i==1)return X.cursor(e,t);if(i==2)return Uy(O.state,e,t);{let r=lt.find(O.docView,e),n=O.state.doc.lineAt(r?r.posAtEnd:e),s=r?r.posAtStart:n.from,o=r?r.posAtEnd:n.to;return oO>=e.top&&O<=e.bottom,pf=(O,e,t)=>Md(e,t)&&O>=t.left&&O<=t.right;function Hy(O,e,t,i){let r=lt.find(O.docView,e);if(!r)return 1;let n=e-r.posAtStart;if(n==0)return 1;if(n==r.length)return-1;let s=r.coordsAt(n,-1);if(s&&pf(t,i,s))return-1;let o=r.coordsAt(n,1);return o&&pf(t,i,o)?1:s&&Md(i,s)?-1:1}function mf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:Hy(O,t,e.clientX,e.clientY)}}const Fy=j.ie&&j.ie_version<=11;let Pf=null,gf=0,Sf=0;function Nd(O){if(!Fy)return O.detail;let e=Pf,t=Sf;return Pf=O,Sf=Date.now(),gf=!e||t>Date.now()-400&&Math.abs(e.clientX-O.clientX)<2&&Math.abs(e.clientY-O.clientY)<2?(gf+1)%3:1}function Ky(O,e){let t=mf(O,e),i=Nd(e),r=O.state.selection;return{update(n){n.docChanged&&(t.pos=n.changes.mapPos(t.pos),r=r.map(n.changes))},get(n,s,o){let a=mf(O,n),l=df(O,a.pos,a.bias,i);if(t.pos!=a.pos&&!s){let c=df(O,t.pos,t.bias,i),h=Math.min(c.from,l.from),Q=Math.max(c.to,l.to);l=h1&&r.ranges.some(c=>c.eq(l))?Jy(r,l):o?r.addRange(l):X.create([l])}}}function Jy(O,e){for(let t=0;;t++)if(O.ranges[t].eq(e))return X.create(O.ranges.slice(0,t).concat(O.ranges.slice(t+1)),O.mainIndex==t?0:O.mainIndex-(O.mainIndex>t?1:0))}_e.dragstart=(O,e)=>{let{selection:{main:t}}=O.state,{mouseSelection:i}=O.inputState;i&&(i.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",O.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function Xf(O,e,t,i){if(!t)return;let r=O.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:n}=O.inputState,s=i&&n&&n.dragging&&n.dragMove?{from:n.dragging.from,to:n.dragging.to}:null,o={from:r,insert:t},a=O.state.changes(s?[s,o]:o);O.focus(),O.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:s?"move.drop":"input.drop"})}_e.drop=(O,e)=>{if(!e.dataTransfer)return;if(O.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let i=Array(t.length),r=0,n=()=>{++r==t.length&&Xf(O,e,i.filter(s=>s!=null).join(O.state.lineBreak),!1)};for(let s=0;s{/[\x00-\x08\x0e-\x1f]{2}/.test(o.result)||(i[s]=o.result),n()},o.readAsText(t[s])}}else Xf(O,e,e.dataTransfer.getData("Text"),!0)};_e.paste=(O,e)=>{if(O.state.readOnly)return e.preventDefault();O.observer.flush();let t=Ad?null:e.clipboardData;t?(Dd(O,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):By(O)};function e1(O,e){let t=O.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),O.focus()},50)}function t1(O){let e=[],t=[],i=!1;for(let r of O.selection.ranges)r.empty||(e.push(O.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:n}of O.selection.ranges){let s=O.doc.lineAt(n);s.number>r&&(e.push(s.text),t.push({from:s.from,to:Math.min(O.doc.length,s.to+1)})),r=s.number}i=!0}return{text:e.join(O.lineBreak),ranges:t,linewise:i}}let ol=null;_e.copy=_e.cut=(O,e)=>{let{text:t,ranges:i,linewise:r}=t1(O.state);if(!t&&!r)return;ol=r?t:null;let n=Ad?null:e.clipboardData;n?(e.preventDefault(),n.clearData(),n.setData("text/plain",t)):e1(O,t),e.type=="cut"&&!O.state.readOnly&&O.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})};const Ld=xO.define();function Bd(O,e){let t=[];for(let i of O.facet(Yd)){let r=i(O,e);r&&t.push(r)}return t?O.update({effects:t,annotations:Ld.of(!0)}):null}function Hd(O){setTimeout(()=>{let e=O.hasFocus;if(e!=O.inputState.notifiedFocused){let t=Bd(O.state,e);t?O.dispatch(t):O.update([])}},10)}_e.focus=O=>{O.inputState.lastFocusTime=Date.now(),!O.scrollDOM.scrollTop&&(O.inputState.lastScrollTop||O.inputState.lastScrollLeft)&&(O.scrollDOM.scrollTop=O.inputState.lastScrollTop,O.scrollDOM.scrollLeft=O.inputState.lastScrollLeft),Hd(O)};_e.blur=O=>{O.observer.clearSelectionRange(),Hd(O)};_e.compositionstart=_e.compositionupdate=O=>{O.inputState.compositionFirstChange==null&&(O.inputState.compositionFirstChange=!0),O.inputState.composing<0&&(O.inputState.composing=0)};_e.compositionend=O=>{O.inputState.composing=-1,O.inputState.compositionEndedAt=Date.now(),O.inputState.compositionFirstChange=null,j.chrome&&j.android&&O.observer.flushSoon(),setTimeout(()=>{O.inputState.composing<0&&O.docView.compositionDeco.size&&O.update([])},50)};_e.contextmenu=O=>{O.inputState.lastContextMenu=Date.now()};_e.beforeinput=(O,e)=>{var t;let i;if(j.chrome&&j.android&&(i=Id.find(r=>r.inputType==e.inputType))&&(O.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let r=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var n;(((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0)>r+10&&O.hasFocus&&(O.contentDOM.blur(),O.focus())},100)}};const yf=["pre-wrap","normal","pre-line","break-spaces"];class O1{constructor(e){this.lineWrapping=e,this.doc=le.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return yf.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,o=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=i,this.lineLength=r,o){this.heightSamples={};for(let a=0;a0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>Os&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return ct.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let n=this,s=i.doc;for(let o=r.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:c,toB:h}=r[o],Q=n.lineAt(a,ge.ByPosNoHeight,i.setDoc(t),0,0),u=Q.to>=l?Q:n.lineAt(l,ge.ByPosNoHeight,i,0,0);for(h+=u.to-l,l=u.to;o>0&&Q.from<=r[o-1].toA;)a=r[o-1].fromA,c=r[o-1].fromB,o--,an*2){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),i+=1+o.break,r-=o.size}else if(n>r*2){let o=e[i];o.break?e.splice(i,1,o.left,null,o.right):e.splice(i,1,o.left,o.right),i+=2+o.break,n-=o.size}else break;else if(r=n&&s(this.blockAt(0,i,r,n))}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class St extends Fd{constructor(e,t){super(e,t,$e.Text),this.collapsed=0,this.widgetHeight=0}replace(e,t,i){let r=i[0];return i.length==1&&(r instanceof St||r instanceof Le&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof Le?r=new St(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):ct.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Le extends ct{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,n=r-i+1,s,o=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*n);s=a/n,o=(this.height-a)/(this.length-n-1)}else s=this.height/n;return{firstLine:i,lastLine:r,perLine:s,perChar:o}}blockAt(e,t,i,r){let{firstLine:n,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let l=r+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),c=t.doc.lineAt(l),h=o+c.length*a,Q=Math.max(i,e-h/2);return new PO(c.from,c.length,Q,h,$e.Text)}else{let l=Math.max(0,Math.min(s-n,Math.floor((e-i)/o))),{from:c,length:h}=t.doc.line(n+l);return new PO(c,h,i+o*l,o,$e.Text)}}lineAt(e,t,i,r,n){if(t==ge.ByHeight)return this.blockAt(e,i,r,n);if(t==ge.ByPosNoHeight){let{from:u,to:$}=i.doc.lineAt(e);return new PO(u,$-u,0,0,$e.Text)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,n),l=i.doc.lineAt(e),c=o+l.length*a,h=l.number-s,Q=r+o*h+a*(l.from-n-h);return new PO(l.from,l.length,Math.max(r,Math.min(Q,r+this.height-c)),c,$e.Text)}forEachLine(e,t,i,r,n,s){e=Math.max(e,n),t=Math.min(t,n+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,n);for(let c=e,h=r;c<=t;){let Q=i.doc.lineAt(c);if(c==e){let $=Q.number-o;h+=a*$+l*(e-n-$)}let u=a+l*Q.length;s(new PO(Q.from,Q.length,h,u,$e.Text)),h+=u,c=Q.to+1}}replace(e,t,i){let r=this.length-t;if(r>0){let n=i[i.length-1];n instanceof Le?i[i.length-1]=new Le(n.length+r):i.push(null,new Le(r-1))}if(e>0){let n=i[0];n instanceof Le?i[0]=new Le(e+n.length):i.unshift(new Le(e-1),null)}return ct.of(i)}decomposeLeft(e,t){t.push(new Le(e-1),null)}decomposeRight(e,t){t.push(null,new Le(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let n=t+this.length;if(r&&r.from<=t+this.length&&r.more){let s=[],o=Math.max(t,r.from),a=-1;for(r.from>t&&s.push(new Le(r.from-t-1).updateHeight(e,t));o<=n&&r.more;){let c=e.doc.lineAt(o).length;s.length&&s.push(null);let h=r.heights[r.index++];a==-1?a=h:Math.abs(h-a)>=Os&&(a=-2);let Q=new St(c,h);Q.outdated=!1,s.push(Q),o+=c+1}o<=n&&s.push(null,new Le(n-o).updateHeight(e,o));let l=ct.of(s);return(a<0||Math.abs(l.height-this.height)>=Os||Math.abs(a-this.heightMetrics(e,t).perLine)>=Os)&&(e.heightChanged=!0),l}else(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class r1 extends ct{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,r){let n=i+this.left.height;return eo))return l;let c=t==ge.ByPosNoHeight?ge.ByPosNoHeight:ge.ByPos;return a?l.join(this.right.lineAt(o,c,i,s,o)):this.left.lineAt(o,c,i,r,n).join(l)}forEachLine(e,t,i,r,n,s){let o=r+this.left.height,a=n+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,o,a,s);else{let l=this.lineAt(a,ge.ByPos,i,r,n);e=e&&l.from<=t&&s(l),t>l.to&&this.right.forEachLine(l.to+1,t,i,o,a,s)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let n=[];e>0&&this.decomposeLeft(e,n);let s=n.length;for(let o of i)n.push(o);if(e>0&&xf(n,s-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?ct.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:n,right:s}=this,o=t+n.length+this.break,a=null;return r&&r.from<=t+n.length&&r.more?a=n=n.updateHeight(e,t,i,r):n.updateHeight(e,t,i),r&&r.from<=o+s.length&&r.more?a=s=s.updateHeight(e,o,i,r):s.updateHeight(e,o,i),a?this.balanced(n,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function xf(O,e){let t,i;O[e]==null&&(t=O[e-1])instanceof Le&&(i=O[e+1])instanceof Le&&O.splice(e-1,3,new Le(t.length+1+i.length))}const n1=5;class Pc{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof St?r.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new St(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=n1)&&this.addLineDeco(r,n)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new St(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new Le(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof St)return e;let t=new St(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type==$e.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=$e.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof St)&&!this.isCovered?this.nodes.push(new St(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&h.overflow!="visible"){let Q=c.getBoundingClientRect();n=Math.max(n,Q.left),s=Math.min(s,Q.right),o=Math.max(o,Q.top),a=l==O.parentNode?Q.bottom:Math.min(a,Q.bottom)}l=h.position=="absolute"||h.position=="fixed"?c.offsetParent:c.parentNode}else if(l.nodeType==11)l=l.host;else break;return{left:n-t.left,right:Math.max(n,s)-t.left,top:o-(t.top+e),bottom:Math.max(o,a)-(t.top+e)}}function l1(O,e){let t=O.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Go{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new O1(t),this.stateDeco=e.facet(Cr).filter(i=>typeof i!="function"),this.heightMap=ct.empty().applyChanges(this.stateDeco,le.empty,this.heightOracle.setDoc(e.doc),[new oO(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=I.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some(({from:n,to:s})=>r>=n&&r<=s)){let{from:n,to:s}=this.lineBlockAt(r);e.push(new wn(n,s))}}this.viewports=e.sort((i,r)=>i.from-r.from),this.scaler=this.heightMap.height<=7e6?wf:new Q1(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:$r(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Cr).filter(l=>typeof l!="function");let r=e.changedRanges,n=oO.extendWithRanges(r,s1(i,this.stateDeco,e?e.changes:Ve.empty(this.state.doc.length))),s=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),n),this.heightMap.height!=s&&(e.flags|=2);let o=n.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heado.to)||!this.viewportIsAppropriate(o))&&(o=this.getViewport(0,t));let a=!e.changes.empty||e.flags&2||o.from!=this.viewport.from||o.to!=this.viewport.to;this.viewport=o,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(qd)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,n=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?We.RTL:We.LTR;let s=this.heightOracle.mustRefreshForWrapping(n),o=t.getBoundingClientRect(),a=s||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let l=0,c=0,h=parseInt(i.paddingTop)||0,Q=parseInt(i.paddingBottom)||0;(this.paddingTop!=h||this.paddingBottom!=Q)&&(this.paddingTop=h,this.paddingBottom=Q,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let u=(this.printing?l1:a1)(t,this.paddingTop),$=u.top-this.pixelViewport.top,d=u.bottom-this.pixelViewport.bottom;this.pixelViewport=u;let p=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(p!=this.inView&&(this.inView=p,p&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let P=o.width;if((this.contentDOMWidth!=P||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let x=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(x)&&(s=!0),s||r.lineWrapping&&Math.abs(P-this.contentDOMWidth)>r.charWidth){let{lineHeight:b,charWidth:Y}=e.docView.measureTextSize();s=b>0&&r.refresh(n,b,Y,P/Y,x),s&&(e.docView.minWidth=0,l|=8)}$>0&&d>0?c=Math.max($,d):$<0&&d<0&&(c=Math.min($,d)),r.heightChanged=!1;for(let b of this.viewports){let Y=b.from==this.viewport.from?x:e.docView.measureVisibleLineHeights(b);this.heightMap=(s?ct.empty().applyChanges(this.stateDeco,le.empty,this.heightOracle,[new oO(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,s,new i1(b.from,Y))}r.heightChanged&&(l|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(l&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,n=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new wn(r.lineAt(s-i*1e3,ge.ByHeight,n,0,0).from,r.lineAt(o+(1-i)*1e3,ge.ByHeight,n,0,0).to);if(t){let{head:l}=t.range;if(la.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(l,ge.ByPos,n,0,0),Q;t.y=="center"?Q=(h.top+h.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&l=o+Math.max(10,Math.min(i,250)))&&r>s-2*1e3&&n>1,s=r<<1;if(this.defaultTextDirection!=We.LTR&&!i)return[];let o=[],a=(l,c,h,Q)=>{if(c-ll&&pp.from>=h.from&&p.to<=h.to&&Math.abs(p.from-l)p.fromP));if(!d){if(cp.from<=c&&p.to>=c)){let p=t.moveToLineBoundary(X.cursor(c),!1,!0).head;p>l&&(c=p)}d=new Go(l,c,this.gapSize(h,l,c,Q))}o.push(d)};for(let l of this.viewportLines){if(l.lengthl.from&&a(l.from,Q,l,c),ut.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];ce.spans(e,this.viewport.from,this.viewport.to,{span(r,n){t.push({from:r,to:n})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((r,n)=>r.from!=t[n].from||r.to!=t[n].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||$r(this.heightMap.lineAt(e,ge.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return $r(this.heightMap.lineAt(this.scaler.fromDOM(e),ge.ByHeight,this.heightOracle,0,0),this.scaler)}elementAtHeight(e){return $r(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class wn{constructor(e,t){this.from=e,this.to=t}}function h1(O,e,t){let i=[],r=O,n=0;return ce.spans(t,O,e,{span(){},point(s,o){s>r&&(i.push({from:r,to:s}),n+=s-r),r=o}},20),r=1)return e[e.length-1].to;let i=Math.floor(O*t);for(let r=0;;r++){let{from:n,to:s}=e[r],o=s-n;if(i<=o)return n+i;i-=o}}function Tn(O,e){let t=0;for(let{from:i,to:r}of O.ranges){if(e<=r){t+=e-i;break}t+=r-i}return t/O.total}function f1(O,e){for(let t of O)if(e(t))return t}const wf={toDOM(O){return O},fromDOM(O){return O},scale:1};class Q1{constructor(e,t,i){let r=0,n=0,s=0;this.viewports=i.map(({from:o,to:a})=>{let l=t.lineAt(o,ge.ByPos,e,0,0).top,c=t.lineAt(a,ge.ByPos,e,0,0).bottom;return r+=c-l,{from:o,to:a,top:l,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let o of this.viewports)o.domTop=s+(o.top-n)*this.scale,s=o.domBottom=o.domTop+(o.bottom-o.top),n=o.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=t$r(r,e)):O.type)}const Yn=_.define({combine:O=>O.join(" ")}),al=_.define({combine:O=>O.indexOf(!0)>-1}),ll=IO.newName(),Kd=IO.newName(),Jd=IO.newName(),ep={"&light":"."+Kd,"&dark":"."+Jd};function cl(O,e,t){return new IO(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,r=>{if(r=="&")return O;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):O+" "+i}})}const u1=cl("."+ll,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},ep);class $1{constructor(e,t,i,r){this.typeOver=r,this.bounds=null,this.text="";let{impreciseHead:n,impreciseAnchor:s}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let o=n||s?[]:p1(e),a=new _d(o,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=m1(o,this.bounds.from)}else{let o=e.observer.selectionRange,a=n&&n.node==o.focusNode&&n.offset==o.focusOffset||!Gi(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),l=s&&s.node==o.anchorNode&&s.offset==o.anchorOffset||!Gi(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset);this.newSel=X.single(l,a)}}}function tp(O,e){let t,{newSel:i}=e,r=O.state.selection.main;if(e.bounds){let{from:n,to:s}=e.bounds,o=r.from,a=null;(O.inputState.lastKeyCode===8&&O.inputState.lastKeyTime>Date.now()-100||j.android&&e.text.length=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:O.state.doc.slice(r.from,t.from).append(t.insert).append(O.state.doc.slice(t.to,r.to))}:(j.mac||j.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&O.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}):j.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==` - `&&O.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}),t){let n=O.state;if(j.ios&&O.inputState.flushIOSKey(O)||j.android&&(t.from==r.from&&t.to==r.to&&t.insert.length==1&&t.insert.lines==2&&ki(O.contentDOM,"Enter",13)||t.from==r.from-1&&t.to==r.to&&t.insert.length==0&&ki(O.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&ki(O.contentDOM,"Delete",46)))return!0;let s=t.insert.toString();if(O.state.facet(Td).some(l=>l(O,t.from,t.to,s)))return!0;O.inputState.composing>=0&&O.inputState.composing++;let o;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&O.inputState.composing<0){let l=r.fromt.to?n.sliceDoc(t.to,r.to):"";o=n.replaceSelection(O.state.toText(l+t.insert.sliceString(0,void 0,O.state.lineBreak)+c))}else{let l=n.changes(t),c=i&&!n.selection.main.eq(i.main)&&i.main.to<=l.newLength?i.main:void 0;if(n.selection.ranges.length>1&&O.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let h=O.state.sliceDoc(t.from,t.to),Q=jd(O)||O.state.doc.lineAt(r.head),u=r.to-t.to,$=r.to-r.from;o=n.changeByRange(d=>{if(d.from==r.from&&d.to==r.to)return{changes:l,range:c||d.map(l)};let p=d.to-u,P=p-h.length;if(d.to-d.from!=$||O.state.sliceDoc(P,p)!=h||Q&&d.to>=Q.from&&d.from<=Q.to)return{range:d};let y=n.changes({from:P,to:p,insert:t.insert}),x=d.to-r.to;return{changes:y,range:c?X.range(Math.max(0,c.anchor+x),Math.max(0,c.head+x)):d.map(y)}})}else o={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return O.composing&&(a+=".compose",O.inputState.compositionFirstChange&&(a+=".start",O.inputState.compositionFirstChange=!1)),O.dispatch(o,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(r)){let n=!1,s="select";return O.inputState.lastSelectionTime>Date.now()-50&&(O.inputState.lastSelectionOrigin=="select"&&(n=!0),s=O.inputState.lastSelectionOrigin),O.dispatch({selection:i,scrollIntoView:n,userEvent:s}),!0}else return!1}function d1(O,e,t,i){let r=Math.min(O.length,e.length),n=0;for(;n0&&o>0&&O.charCodeAt(s-1)==e.charCodeAt(o-1);)s--,o--;if(i=="end"){let a=Math.max(0,n-Math.min(s,o));t-=s+a-n}if(s=s?n-t:0;n-=a,o=n+(o-s),s=n}else if(o=o?n-t:0;n-=a,s=n+(s-o),o=n}return{from:n,toA:s,toB:o}}function p1(O){let e=[];if(O.root.activeElement!=O.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:n}=O.observer.selectionRange;return t&&(e.push(new of(t,i)),(r!=t||n!=i)&&e.push(new of(r,n))),e}function m1(O,e){if(O.length==0)return null;let t=O[0].pos,i=O.length==2?O[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}const P1={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Co=j.ie&&j.ie_version<=11;class g1{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Qy,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(j.ie&&j.ie_version<=11||j.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Co&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(ao)?i.root.activeElement!=this.dom:!ts(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);if(n&&n.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(j.ie&&j.ie_version<=11||j.android&&j.chrome)&&!i.state.selection.main.empty&&r.focusNode&&ms(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=j.safari&&e.root.nodeType==11&&ly(this.dom.ownerDocument)==this.dom&&S1(this.view)||ps(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=ts(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let n=this.delayedAndroidKey;n&&(this.clearDelayedAndroidKey(),!this.flush()&&n.force&&ki(this.dom,n.key,n.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let n of this.observer.takeRecords())e.push(n);e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let s=this.readMutation(n);s&&(s.typeOver&&(r=!0),t==-1?{from:t,to:i}=s:(t=Math.min(s.from,t),i=Math.max(s.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&ts(this.dom,this.selectionRange);return e<0&&!r?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new $1(this.view,e,t,i))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let i=this.view.state,r=tp(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let i=Wf(t,e.previousSibling||e.target.previousSibling,-1),r=Wf(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect(),(r=this.resizeContent)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Wf(O,e,t){for(;e;){let i=Se.get(e);if(i&&i.parent==O)return i;let r=e.parentNode;e=r!=O.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function S1(O){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(O.contentDOM.addEventListener("beforeinput",t,!0),O.dom.ownerDocument.execCommand("indent"),O.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=O.docView.domAtPos(O.state.selection.main.anchor);return ms(o.node,o.offset,n,s)&&([i,r,n,s]=[n,s,i,r]),{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:s}}class z{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||uy(e.parent)||document,this.viewState=new bf(e.state||te.create(e)),this.plugins=this.state.facet(Qr).map(t=>new zo(t));for(let t of this.plugins)t.update(this);this.observer=new g1(this),this.inputState=new Ey(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new af(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof ze?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,r,n=this.state;for(let Q of e){if(Q.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=Q.state}if(this.destroyed){this.viewState.state=n;return}let s=this.hasFocus,o=0,a=null;e.some(Q=>Q.annotation(Ld))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=Bd(n,s),a||(o=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(c=null)):this.observer.clear(),n.facet(te.phrases)!=this.state.facet(te.phrases))return this.setState(n);r=Ss.create(this,n,e),r.flags|=o;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let Q of e){if(h&&(h=h.map(Q.changes)),Q.scrollIntoView){let{main:u}=Q.state.selection;h=new gs(u.empty?u:X.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of Q.effects)u.is(nf)&&(h=u.value)}this.viewState.update(r,h),this.bidiCache=Xs.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(ur)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(Q=>Q.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Yn)!=r.state.facet(Yn)&&(this.viewState.mustMeasureContent=!0),(t||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let Q of this.state.facet(Ol))Q(r);(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!tp(this,c)&&l.force&&ki(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new bf(e),this.plugins=e.facet(Qr).map(i=>new zo(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new af(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Qr),i=e.state.facet(Qr);if(t!=i){let r=[];for(let n of i){let s=t.indexOf(n);if(s<0)r.push(new zo(n));else{let o=this.plugins[s];o.mustUpdate=e,r.push(o)}}for(let n of this.plugins)n.mustUpdate!=e&&n.destroy(this);this.plugins=r,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:i,scrollTop:r,clientHeight:n}=this.scrollDOM,s=r>i-n-4?i:r;try{for(let o=0;;o++){this.updateState=1;let a=this.viewport,l=this.viewState.lineBlockAtHeight(s),c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];c&4||([this.measureRequests,h]=[h,this.measureRequests]);let Q=h.map(p=>{try{return p.read(this)}catch(P){return xt(this.state,P),Tf}}),u=Ss.create(this,this.state,[]),$=!1,d=!1;u.flags|=c,t?t.flags|=c:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),$=this.docView.update(u));for(let p=0;p1||p<-1)&&(this.scrollDOM.scrollTop+=p,d=!0)}if($&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!d&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let o of this.state.facet(Ol))o(t)}get themeClasses(){return ll+" "+(this.state.facet(al)?Jd:Kd)+" "+this.state.facet(Yn)}updateAttrs(){let e=Yf(this,kd,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(ao)?"true":"false",class:"cm-content",style:`${j.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Yf(this,mc,t);let i=this.observer.ignore(()=>{let r=el(this.contentDOM,this.contentAttrs,t),n=el(this.dom,this.editorAttrs,e);return r||n});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let r of i.effects)if(r.is(z.announce)){t&&(this.announceDOM.textContent=""),t=!1;let n=this.announceDOM.appendChild(document.createElement("div"));n.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(ur),IO.mount(this.root,this.styleModules.concat(u1).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return jo(this,e,uf(this,e,t,i))}moveByGroup(e,t){return jo(this,e,uf(this,e,t,i=>Cy(this,e.head,i)))}moveToLineBoundary(e,t,i=!0){return Gy(this,e,t,i)}moveVertically(e,t,i){return jo(this,e,Iy(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Cd(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[Zi.find(n,e-r.from,-1,t)];return uc(i,s.dir==We.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(vd)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>X1)return Vd(e.length);let t=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t)return r.order;let i=wy(e.text,t);return this.bidiCache.push(new Xs(e.from,e.to,t,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||j.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{hd(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return nf.of(new gs(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return qe.define(()=>({}),{eventHandlers:e})}static theme(e,t){let i=IO.newName(),r=[Yn.of(i),ur.of(cl(`.${i}`,e))];return t&&t.dark&&r.push(al.of(!0)),r}static baseTheme(e){return MO.lowest(ur.of(cl("."+ll,e,ep)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&Se.get(i)||Se.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}}z.styleModule=ur;z.inputHandler=Td;z.focusChangeEffect=Yd;z.perLineTextDirection=vd;z.exceptionSink=Wd;z.updateListener=Ol;z.editable=ao;z.mouseSelectionStyle=wd;z.dragMovesSelection=bd;z.clickAddsSelectionRange=xd;z.decorations=Cr;z.atomicRanges=Zd;z.scrollMargins=Rd;z.darkTheme=al;z.contentAttributes=mc;z.editorAttributes=kd;z.lineWrapping=z.contentAttributes.of({class:"cm-lineWrapping"});z.announce=B.define();const X1=4096,Tf={};class Xs{constructor(e,t,i,r){this.from=e,this.to=t,this.dir=i,this.order=r}static update(e,t){if(t.empty)return e;let i=[],r=e.length?e[e.length-1].dir:We.LTR;for(let n=Math.max(0,e.length-10);n=0;r--){let n=i[r],s=typeof n=="function"?n(O):n;s&&Ja(s,t)}return t}const y1=j.mac?"mac":j.windows?"win":j.linux?"linux":"key";function x1(O,e){const t=O.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let r,n,s,o;for(let a=0;ai.concat(r),[]))),t}function w1(O,e,t){return ip(Op(O.state),e,O,t)}let qO=null;const W1=4e3;function T1(O,e=y1){let t=Object.create(null),i=Object.create(null),r=(s,o)=>{let a=i[s];if(a==null)i[s]=o;else if(a!=o)throw new Error("Key binding "+s+" is used both as a regular binding and as a multi-stroke prefix")},n=(s,o,a,l)=>{var c,h;let Q=t[s]||(t[s]=Object.create(null)),u=o.split(/ (?!$)/).map(p=>x1(p,e));for(let p=1;p{let x=qO={view:y,prefix:P,scope:s};return setTimeout(()=>{qO==x&&(qO=null)},W1),!0}]})}let $=u.join(" ");r($,!1);let d=Q[$]||(Q[$]={preventDefault:!1,run:((h=(c=Q._any)===null||c===void 0?void 0:c.run)===null||h===void 0?void 0:h.slice())||[]});a&&d.run.push(a),l&&(d.preventDefault=!0)};for(let s of O){let o=s.scope?s.scope.split(" "):["editor"];if(s.any)for(let l of o){let c=t[l]||(t[l]=Object.create(null));c._any||(c._any={preventDefault:!1,run:[]});for(let h in c)c[h].run.push(s.any)}let a=s[e]||s.key;if(a)for(let l of o)n(l,a,s.run,s.preventDefault),s.shift&&n(l,"Shift-"+a,s.shift,s.preventDefault)}return t}function ip(O,e,t,i){let r=ay(e),n=Be(r,0),s=wt(n)==r.length&&r!=" ",o="",a=!1;qO&&qO.view==t&&qO.scope==i&&(o=qO.prefix+" ",(a=Ed.indexOf(e.keyCode)<0)&&(qO=null));let l=new Set,c=$=>{if($){for(let d of $.run)if(!l.has(d)&&(l.add(d),d(t,e)))return!0;$.preventDefault&&(a=!0)}return!1},h=O[i],Q,u;if(h){if(c(h[o+vn(r,e,!s)]))return!0;if(s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(j.windows&&e.ctrlKey&&e.altKey)&&(Q=EO[e.keyCode])&&Q!=r){if(c(h[o+vn(Q,e,!0)]))return!0;if(e.shiftKey&&(u=_r[e.keyCode])!=r&&u!=Q&&c(h[o+vn(u,e,!1)]))return!0}else if(s&&e.shiftKey&&c(h[o+vn(r,e,!0)]))return!0;if(c(h._any))return!0}return a}class sn{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=rp(e);return[new sn(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}else return Y1(e,t,i)}}function rp(O){let e=O.scrollDOM.getBoundingClientRect();return{left:(O.textDirection==We.LTR?e.left:e.right-O.scrollDOM.clientWidth)-O.scrollDOM.scrollLeft,top:e.top-O.scrollDOM.scrollTop}}function qf(O,e,t){let i=X.cursor(e);return{from:Math.max(t.from,O.moveToLineBoundary(i,!1,!0).from),to:Math.min(t.to,O.moveToLineBoundary(i,!0,!0).from),type:$e.Text}}function kf(O,e){let t=O.lineBlockAt(e);if(Array.isArray(t.type)){for(let i of t.type)if(i.to>e||i.to==e&&(i.to==t.to||i.type==$e.Text))return i}return t}function Y1(O,e,t){if(t.to<=O.viewport.from||t.from>=O.viewport.to)return[];let i=Math.max(t.from,O.viewport.from),r=Math.min(t.to,O.viewport.to),n=O.textDirection==We.LTR,s=O.contentDOM,o=s.getBoundingClientRect(),a=rp(O),l=s.querySelector(".cm-line"),c=l&&window.getComputedStyle(l),h=o.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),Q=o.right-(c?parseInt(c.paddingRight):0),u=kf(O,i),$=kf(O,r),d=u.type==$e.Text?u:null,p=$.type==$e.Text?$:null;if(O.lineWrapping&&(d&&(d=qf(O,i,d)),p&&(p=qf(O,r,p))),d&&p&&d.from==p.from)return y(x(t.from,t.to,d));{let Y=d?x(t.from,null,d):b(u,!1),Z=p?x(null,t.to,p):b($,!0),E=[];return(d||u).to<(p||$).from-1?E.push(P(h,Y.bottom,Q,Z.top)):Y.bottomXe&&Ge.from=ne)break;be>ke&&oe(Math.max(fe,ke),Y==null&&fe<=Xe,Math.min(be,ne),Z==null&&be>=Te,F.dir)}if(ke=ie.to+1,ke>=ne)break}return N.length==0&&oe(Xe,Y==null,Te,Z==null,O.textDirection),{top:Oe,bottom:H,horizontal:N}}function b(Y,Z){let E=o.top+(Z?Y.top:Y.bottom);return{top:E,bottom:E,horizontal:[]}}}function v1(O,e){return O.constructor==e.constructor&&O.eq(e)}class q1{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(is)!=e.state.facet(is)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(is);for(;t!v1(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const is=_.define();function np(O){return[qe.define(e=>new q1(e,O)),is.of(O)]}const sp=!j.ios,Ir=_.define({combine(O){return cO(O,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function k1(O={}){return[Ir.of(O),Z1,R1,U1,qd.of(!0)]}function op(O){return O.startState.facet(Ir)!=O.state.facet(Ir)}const Z1=np({above:!0,markers(O){let{state:e}=O,t=e.facet(Ir),i=[];for(let r of e.selection.ranges){let n=r==e.selection.main;if(r.empty?!n||sp:t.drawRangeCursor){let s=n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",o=r.empty?r:X.cursor(r.head,r.head>r.anchor?-1:1);for(let a of sn.forRange(O,s,o))i.push(a)}}return i},update(O,e){O.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=op(O);return t&&Zf(O.state,e),O.docChanged||O.selectionSet||t},mount(O,e){Zf(e.state,O)},class:"cm-cursorLayer"});function Zf(O,e){e.style.animationDuration=O.facet(Ir).cursorBlinkRate+"ms"}const R1=np({above:!1,markers(O){return O.state.selection.ranges.map(e=>e.empty?[]:sn.forRange(O,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(O,e){return O.docChanged||O.selectionSet||O.viewportChanged||op(O)},class:"cm-selectionLayer"}),ap={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};sp&&(ap[".cm-line"].caretColor="transparent !important");const U1=MO.highest(z.theme(ap)),lp=B.define({map(O,e){return O==null?null:e.mapPos(O)}}),dr=Ae.define({create(){return null},update(O,e){return O!=null&&(O=e.changes.mapPos(O)),e.effects.reduce((t,i)=>i.is(lp)?i.value:t,O)}}),V1=qe.fromClass(class{constructor(O){this.view=O,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(O){var e;let t=O.state.field(dr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(O.startState.field(dr)!=t||O.docChanged||O.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let O=this.view.state.field(dr),e=O!=null&&this.view.coordsAtPos(O);if(!e)return null;let t=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-t.left+this.view.scrollDOM.scrollLeft,top:e.top-t.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(O){this.cursor&&(O?(this.cursor.style.left=O.left+"px",this.cursor.style.top=O.top+"px",this.cursor.style.height=O.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(O){this.view.state.field(dr)!=O&&this.view.dispatch({effects:lp.of(O)})}},{eventHandlers:{dragover(O){this.setDropPos(this.view.posAtCoords({x:O.clientX,y:O.clientY}))},dragleave(O){(O.target==this.view.contentDOM||!this.view.contentDOM.contains(O.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function z1(){return[dr,V1]}function Rf(O,e,t,i,r){e.lastIndex=0;for(let n=O.iterRange(t,i),s=t,o;!n.next().done;s+=n.value.length)if(!n.lineBreak)for(;o=e.exec(n.value);)r(s+o.index,o)}function _1(O,e){let t=O.visibleRanges;if(t.length==1&&t[0].from==O.viewport.from&&t[0].to==O.viewport.to)return t;let i=[];for(let{from:r,to:n}of t)r=Math.max(O.state.doc.lineAt(r).from,r-e),n=Math.min(O.state.doc.lineAt(n).to,n+e),i.length&&i[i.length-1].to>=r?i[i.length-1].to=n:i.push({from:r,to:n});return i}class j1{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:s=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(o,a,l,c)=>r(c,l,l+o[0].length,o,a);else if(typeof i=="function")this.addMatch=(o,a,l,c)=>{let h=i(o,a,l);h&&c(l,l+o[0].length,h)};else if(i)this.addMatch=(o,a,l,c)=>c(l,l+o[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=n,this.maxLength=s}createDeco(e){let t=new CO,i=t.add.bind(t);for(let{from:r,to:n}of _1(e,this.maxLength))Rf(e.state.doc,this.regexp,r,n,(s,o)=>this.addMatch(o,e,s,i));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((n,s,o,a)=>{a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let s=Math.max(n.from,i),o=Math.min(n.to,r);if(o>s){let a=e.state.doc.lineAt(s),l=a.toa.from;s--)if(this.boundary.test(a.text[s-1-a.from])){c=s;break}for(;oQ.push(P.range(d,p));if(a==l)for(this.regexp.lastIndex=c-a.from;(u=this.regexp.exec(a.text))&&u.indexthis.addMatch(p,e,d,$));t=t.update({filterFrom:c,filterTo:h,filter:(d,p)=>dh,add:Q})}}return t}}const hl=/x/.unicode!=null?"gu":"g",G1=new RegExp(`[\0-\b ---Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,hl),C1={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Io=null;function I1(){var O;if(Io==null&&typeof document<"u"&&document.body){let e=document.body.style;Io=((O=e.tabSize)!==null&&O!==void 0?O:e.MozTabSize)!=null}return Io||!1}const rs=_.define({combine(O){let e=cO(O,{render:null,specialChars:G1,addSpecialChars:null});return(e.replaceTabs=!I1())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,hl)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,hl)),e}});function E1(O={}){return[rs.of(O),A1()]}let Uf=null;function A1(){return Uf||(Uf=qe.fromClass(class{constructor(O){this.view=O,this.decorations=I.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(O.state.facet(rs)),this.decorations=this.decorator.createDeco(O)}makeDecorator(O){return new j1({regexp:O.specialChars,decoration:(e,t,i)=>{let{doc:r}=t.state,n=Be(e[0],0);if(n==9){let s=r.lineAt(i),o=t.state.tabSize,a=rn(s.text,o,i-s.from);return I.replace({widget:new L1((o-a%o)*this.view.defaultCharacterWidth)})}return this.decorationCache[n]||(this.decorationCache[n]=I.replace({widget:new N1(O,n)}))},boundary:O.replaceTabs?void 0:/[^]/})}update(O){let e=O.state.facet(rs);O.startState.facet(rs)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(O.view)):this.decorations=this.decorator.updateDeco(O,this.decorations)}},{decorations:O=>O.decorations}))}const D1="•";function M1(O){return O>=32?D1:O==10?"␤":String.fromCharCode(9216+O)}class N1 extends hO{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=M1(this.code),i=e.state.phrase("Control character")+" "+(C1[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class L1 extends hO{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function B1(){return F1}const H1=I.line({class:"cm-activeLine"}),F1=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.docChanged||O.selectionSet)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=-1,t=[];for(let i of O.state.selection.ranges){let r=O.lineBlockAt(i.head);r.from>e&&(t.push(H1.range(r.from)),e=r.from)}return I.set(t)}},{decorations:O=>O.decorations});class K1 extends hO{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function J1(O){return qe.fromClass(class{constructor(e){this.view=e,this.placeholder=I.set([I.widget({widget:new K1(O),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?I.none:this.placeholder}},{decorations:e=>e.decorations})}const fl=2e3;function ex(O,e,t){let i=Math.min(e.line,t.line),r=Math.max(e.line,t.line),n=[];if(e.off>fl||t.off>fl||e.col<0||t.col<0){let s=Math.min(e.off,t.off),o=Math.max(e.off,t.off);for(let a=i;a<=r;a++){let l=O.doc.line(a);l.length<=o&&n.push(X.range(l.from+s,l.to+o))}}else{let s=Math.min(e.col,t.col),o=Math.max(e.col,t.col);for(let a=i;a<=r;a++){let l=O.doc.line(a),c=Da(l.text,s,O.tabSize,!0);if(c<0)n.push(X.cursor(l.to));else{let h=Da(l.text,o,O.tabSize);n.push(X.range(l.from+c,l.from+h))}}}return n}function tx(O,e){let t=O.coordsAtPos(O.viewport.from);return t?Math.round(Math.abs((t.left-e)/O.defaultCharacterWidth)):-1}function Vf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1),i=O.state.doc.lineAt(t),r=t-i.from,n=r>fl?-1:r==i.length?tx(O,e.clientX):rn(i.text,O.state.tabSize,t-i.from);return{line:i.number,col:n,off:r}}function Ox(O,e){let t=Vf(O,e),i=O.state.selection;return t?{update(r){if(r.docChanged){let n=r.changes.mapPos(r.startState.doc.line(t.line).from),s=r.state.doc.lineAt(n);t={line:s.number,col:t.col,off:Math.min(t.off,s.length)},i=i.map(r.changes)}},get(r,n,s){let o=Vf(O,r);if(!o)return i;let a=ex(O.state,t,o);return a.length?s?X.create(a.concat(i.ranges)):X.create(a):i}}:null}function ix(O){let e=(O==null?void 0:O.eventFilter)||(t=>t.altKey&&t.button==0);return z.mouseSelectionStyle.of((t,i)=>e(i)?Ox(t,i):null)}const rx={Alt:[18,O=>O.altKey],Control:[17,O=>O.ctrlKey],Shift:[16,O=>O.shiftKey],Meta:[91,O=>O.metaKey]},nx={style:"cursor: crosshair"};function sx(O={}){let[e,t]=rx[O.key||"Alt"],i=qe.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventHandlers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[i,z.contentAttributes.of(r=>{var n;return!((n=r.plugin(i))===null||n===void 0)&&n.isDown?nx:null})]}const qn="-10000px";class cp{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(r=>r),this.tooltipViews=this.tooltips.map(i)}update(e){var t;let i=e.state.facet(this.facet),r=i.filter(s=>s);if(i===this.input){for(let s of this.tooltipViews)s.update&&s.update(e);return!1}let n=[];for(let s=0;s{var e,t,i;return{position:j.ios?"absolute":((e=O.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=O.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=O.find(r=>r.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||ox}}}),zf=new WeakMap,hp=qe.fromClass(class{constructor(O){this.view=O,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=O.state.facet(Eo);this.position=e.position,this.parent=e.parent,this.classes=O.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new cp(O,gc,t=>this.createTooltip(t)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),O.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let O of this.manager.tooltipViews)this.intersectionObserver.observe(O.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(O){O.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(O);e&&this.observeIntersection();let t=e||O.geometryChanged,i=O.state.facet(Eo);if(i.position!=this.position){this.position=i.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(O){let e=O.create(this.view);if(e.dom.classList.add("cm-tooltip"),O.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=qn,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var O,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(O=t.destroy)===null||O===void 0||O.call(t);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let O=this.view.dom.getBoundingClientRect();return{editor:O,parent:this.parent?this.container.getBoundingClientRect():O,pos:this.manager.tooltips.map((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(Eo).tooltipSpace(this.view)}}writeMeasure(O){var e;let{editor:t,space:i}=O,r=[];for(let n=0;n=Math.min(t.bottom,i.bottom)||l.rightMath.min(t.right,i.right)+.1){a.style.top=qn;continue}let h=s.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,Q=h?7:0,u=c.right-c.left,$=(e=zf.get(o))!==null&&e!==void 0?e:c.bottom-c.top,d=o.offset||lx,p=this.view.textDirection==We.LTR,P=c.width>i.right-i.left?p?i.left:i.right-c.width:p?Math.min(l.left-(h?14:0)+d.x,i.right-u):Math.max(i.left,l.left-u+(h?14:0)-d.x),y=!!s.above;!s.strictSide&&(y?l.top-(c.bottom-c.top)-d.yi.bottom)&&y==i.bottom-l.bottom>l.top-i.top&&(y=!y);let x=(y?l.top-i.top:i.bottom-l.bottom)-Q;if(x<$&&o.resize!==!1){if(xP&&Z.topb&&(b=y?Z.top-$-2-Q:Z.bottom+Q+2);this.position=="absolute"?(a.style.top=b-O.parent.top+"px",a.style.left=P-O.parent.left+"px"):(a.style.top=b+"px",a.style.left=P+"px"),h&&(h.style.left=`${l.left+(p?d.x:-d.x)-(P+14-7)}px`),o.overlap!==!0&&r.push({left:P,top:b,right:Y,bottom:b+$}),a.classList.toggle("cm-tooltip-above",y),a.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(O.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let O of this.manager.tooltipViews)O.dom.style.top=qn}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),ax=z.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lx={x:0,y:0},gc=_.define({enables:[hp,ax]}),ys=_.define();class Sc{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new cp(e,ys,t=>this.createHostedView(t))}static create(e){return new Sc(e)}createHostedView(e){let t=e.create(this.view);return t.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(t.dom),this.mounted&&t.mount&&t.mount(this.view),t}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}}const cx=gc.compute([ys],O=>{let e=O.facet(ys).filter(t=>t);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.filter(t=>t.end!=null).map(t=>t.end)),create:Sc.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class hx{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ei.bottom||e.xi.right+this.view.defaultCharacterWidth)return;let r=this.view.bidiSpans(this.view.state.doc.lineAt(t)).find(o=>o.from<=t&&o.to>=t),n=r&&r.dir==We.RTL?-1:1,s=this.source(this.view,t,e.x{this.pending==o&&(this.pending=null,a&&this.view.dispatch({effects:this.setHover.of(a)}))},a=>xt(this.view.state,a,"hover tooltip"))}else s&&this.view.dispatch({effects:this.setHover.of(s)})}mousemove(e){var t;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let i=this.active;if(i&&!_f(this.lastMove.target)||this.pending){let{pos:r}=i||this.pending,n=(t=i==null?void 0:i.end)!==null&&t!==void 0?t:r;(r==n?this.view.posAtCoords(this.lastMove)!=r:!fx(this.view,r,n,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!_f(e.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function _f(O){for(let e=O;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function fx(O,e,t,i,r,n){let s=document.createRange(),o=O.domAtPos(e),a=O.domAtPos(t);s.setEnd(a.node,a.offset),s.setStart(o.node,o.offset);let l=s.getClientRects();s.detach();for(let c=0;cys.from(r)});return[i,qe.define(r=>new hx(r,O,i,t,e.hoverTime||300)),cx]}function ux(O,e){let t=O.plugin(hp);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const $x=B.define(),jf=_.define({combine(O){let e,t;for(let i of O)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Er(O,e){let t=O.plugin(fp),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const fp=qe.fromClass(class{constructor(O){this.input=O.state.facet(Ar),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(O));let e=O.state.facet(jf);this.top=new kn(O,!0,e.topContainer),this.bottom=new kn(O,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(O){let e=O.state.facet(jf);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new kn(O.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new kn(O.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=O.state.facet(Ar);if(t!=this.input){let i=t.filter(a=>a),r=[],n=[],s=[],o=[];for(let a of i){let l=this.specs.indexOf(a),c;l<0?(c=a(O.view),o.push(c)):(c=this.panels[l],c.update&&c.update(O)),r.push(c),(c.top?n:s).push(c)}this.specs=i,this.panels=r,this.top.sync(n),this.bottom.sync(s);for(let a of o)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(O)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class kn{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Gf(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Gf(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Gf(O){let e=O.nextSibling;return O.remove(),e}const Ar=_.define({enables:fp});class XO extends fi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}XO.prototype.elementClass="";XO.prototype.toDOM=void 0;XO.prototype.mapMode=Fe.TrackBefore;XO.prototype.startSide=XO.prototype.endSide=-1;XO.prototype.point=!0;const ns=_.define(),dx={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>ce.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},xr=_.define();function px(O){return[Qp(),xr.of(Object.assign(Object.assign({},dx),O))]}const Ql=_.define({combine:O=>O.some(e=>e)});function Qp(O){let e=[mx];return O&&O.fixed===!1&&e.push(Ql.of(!0)),e}const mx=qe.fromClass(class{constructor(O){this.view=O,this.prevViewport=O.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=O.state.facet(xr).map(e=>new If(O,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!O.state.facet(Ql),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),O.scrollDOM.insertBefore(this.dom,O.contentDOM)}update(O){if(this.updateGutters(O)){let e=this.prevViewport,t=O.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}O.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Ql)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=O.view.viewport}syncGutters(O){let e=this.dom.nextSibling;O&&this.dom.remove();let t=ce.iter(this.view.state.facet(ns),this.view.viewport.from),i=[],r=this.gutters.map(n=>new Px(n,this.view.viewport,-this.view.documentPadding.top));for(let n of this.view.viewportLineBlocks){let s;if(Array.isArray(n.type)){for(let o of n.type)if(o.type==$e.Text){s=o;break}}else s=n.type==$e.Text?n:void 0;if(s){i.length&&(i=[]),up(t,i,n.from);for(let o of r)o.line(this.view,s,i)}}for(let n of r)n.finish();O&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(O){let e=O.startState.facet(xr),t=O.state.facet(xr),i=O.docChanged||O.heightChanged||O.viewportChanged||!ce.eq(O.startState.facet(ns),O.state.facet(ns),O.view.viewport.from,O.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(O)&&(i=!0);else{i=!0;let r=[];for(let n of t){let s=e.indexOf(n);s<0?r.push(new If(this.view,n)):(this.gutters[s].update(O),r.push(this.gutters[s]))}for(let n of this.gutters)n.dom.remove(),r.indexOf(n)<0&&n.destroy();for(let n of r)this.dom.appendChild(n.dom);this.gutters=r}return i}destroy(){for(let O of this.gutters)O.destroy();this.dom.remove()}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return!t||t.gutters.length==0||!t.fixed?null:e.textDirection==We.LTR?{left:t.dom.offsetWidth}:{right:t.dom.offsetWidth}})});function Cf(O){return Array.isArray(O)?O:[O]}function up(O,e,t){for(;O.value&&O.from<=t;)O.from==t&&e.push(O.value),O.next()}class Px{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=ce.iter(e.markers,t.from)}line(e,t,i){let r=[];up(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let s=this.gutter;if(r.length==0&&!s.config.renderEmptyElements)return;let o=t.top-this.height;if(this.i==s.elements.length){let a=new $p(e,t.height,o,r);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,t.height,o,r);this.height=t.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class If{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,r=>{let n=r.target,s;if(n!=this.dom&&this.dom.contains(n)){for(;n.parentNode!=this.dom;)n=n.parentNode;let a=n.getBoundingClientRect();s=(a.top+a.bottom)/2}else s=r.clientY;let o=e.lineBlockAtHeight(s-e.documentTop);t.domEventHandlers[i](e,o,r)&&r.preventDefault()});this.markers=Cf(t.markers(e)),t.initialSpacer&&(this.spacer=new $p(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Cf(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let i=e.view.viewport;return!ce.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class $p{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.dom.style.height=(this.height=t)+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),gx(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let i="cm-gutterElement",r=this.dom.firstChild;for(let n=0,s=0;;){let o=s,a=nn(o,a,l)||s(o,a,l):s}return i}})}});class Ao extends XO{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Do(O,e){return O.state.facet(xi).formatNumber(e,O.state)}const Xx=xr.compute([xi],O=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Sx)},lineMarker(e,t,i){return i.some(r=>r.toDOM)?null:new Ao(Do(e,e.state.doc.lineAt(t.from).number))},lineMarkerChange:e=>e.startState.facet(xi)!=e.state.facet(xi),initialSpacer(e){return new Ao(Do(e,Ef(e.state.doc.lines)))},updateSpacer(e,t){let i=Do(t.view,Ef(t.view.state.doc.lines));return i==e.number?e:new Ao(i)},domEventHandlers:O.facet(xi).domEventHandlers}));function yx(O={}){return[xi.of(O),Qp(),Xx]}function Ef(O){let e=9;for(;e{let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.head).from;r>t&&(t=r,e.push(xx.range(r)))}return ce.of(e)});function wx(){return bx}const dp=1024;let Wx=0;class Tt{constructor(e,t){this.from=e,this.to=t}}class M{constructor(e={}){this.id=Wx++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=je.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}M.closedBy=new M({deserialize:O=>O.split(" ")});M.openedBy=new M({deserialize:O=>O.split(" ")});M.group=new M({deserialize:O=>O.split(" ")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});class Tx{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}}const Yx=Object.create(null);class je{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Yx,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new je(e.name||"",t,e.id,i);if(e.props){for(let n of e.props)if(Array.isArray(n)||(n=n(r)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(M.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(M.group),n=-1;n<(r?r.length:0);n++){let s=t[n<0?i.name:r[n]];if(s)return s}}}}je.none=new je("",Object.create(null),0,8);class on{constructor(e){this.types=e;for(let t=0;t=r&&(s.type.isAnonymous||t(s)!==!1)){if(s.firstChild())continue;o=!0}for(;o&&i&&!s.type.isAnonymous&&i(s),!s.nextSibling();){if(!s.parent())return;o=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:xc(je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new he(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new he(je.none,t,i,r)))}static build(e){return qx(e)}}he.empty=new he(je.none,[],[],0);class Xc{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Xc(this.buffer,this.index)}}class $i{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return je.none}toString(){let e=[];for(let t=0;t0));a=s[a+3]);return o}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),s=0;for(let o=e,a=0;o=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function mp(O,e){let t=O.childBefore(e);for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(O=t,t=i.prevSibling):t=i}return O}function Ei(O,e,t,i){for(var r;O.from==O.to||(t<1?O.from>=e:O.from>e)||(t>-1?O.to<=e:O.to0?o.length:-1;e!=l;e+=t){let c=o[e],h=a[e]+s.from;if(pp(r,i,h,h+c.length)){if(c instanceof $i){if(n&Pe.ExcludeBuffers)continue;let Q=c.findChild(0,c.buffer.length,t,i-h,r);if(Q>-1)return new iO(new vx(s,c,e,h),null,Q)}else if(n&Pe.IncludeAnonymous||!c.type.isAnonymous||yc(c)){let Q;if(!(n&Pe.IgnoreMounts)&&c.props&&(Q=c.prop(M.mounted))&&!Q.overlay)return new qt(Q.tree,h,e,s);let u=new qt(c,h,e,s);return n&Pe.IncludeAnonymous||!u.type.isAnonymous?u:u.nextChild(t<0?c.children.length-1:0,t,i,r)}}}if(n&Pe.IncludeAnonymous||!s.type.isAnonymous||(s.index>=0?e=s.index+t:e=t<0?-1:s._parent._tree.children.length,s=s._parent,!s))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&Pe.IgnoreOverlays)&&(r=this._tree.prop(M.mounted))&&r.overlay){let n=e-this.from;for(let{from:s,to:o}of r.overlay)if((t>0?s<=n:s=n:o>n))return new qt(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Dr(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return bs(this,e)}}function xs(O,e,t,i){let r=O.cursor(),n=[];if(!r.firstChild())return n;if(t!=null){for(;!r.type.is(t);)if(!r.nextSibling())return n}for(;;){if(i!=null&&r.type.is(i))return n;if(r.type.is(e)&&n.push(r.node),!r.nextSibling())return i==null?n:[]}}function bs(O,e,t=e.length-1){for(let i=O.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class vx{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class iO{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new iO(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&Pe.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new iO(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new iO(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new iO(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Dr(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let s=i.buffer[this.index+1];e.push(i.slice(r,n,s)),t.push(0)}return new he(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}get node(){return this}matchContext(e){return bs(this,e)}}class Dr{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof qt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=i+r.buffer[e+1],this.to=i+r.buffer[e+2],!0}yield(e){return e?e instanceof qt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:r}=this.buffer,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,i);return n<0?!1:(this.stack.push(this.index),this.yieldBuf(n))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&Pe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let n=t+e,s=e<0?-1:i._tree.children.length;n!=s;n+=e){let o=i._tree.children[n];if(this.mode&Pe.IncludeAnonymous||o instanceof $i||!o.type.isAnonymous||yc(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==r){if(r==this.index)return s;t=s,i=n+1;break e}r=this.stack[--n]}}for(let r=i;r=0;n--){if(n<0)return bs(this.node,e,r);let s=i[t.buffer[this.stack[n]]];if(!s.isAnonymous){if(e[r]&&e[r]!=s.name)return!1;r--}}return!0}}function yc(O){return O.children.some(e=>e instanceof $i||!e.type.isAnonymous||yc(e))}function qx(O){var e;let{buffer:t,nodeSet:i,maxBufferLength:r=dp,reused:n=[],minRepeatType:s=i.types.length}=O,o=Array.isArray(t)?new Xc(t,t.length):t,a=i.types,l=0,c=0;function h(b,Y,Z,E,Oe){let{id:H,start:N,end:oe,size:Xe}=o,Te=c;for(;Xe<0;)if(o.next(),Xe==-1){let F=n[H];Z.push(F),E.push(N-b);return}else if(Xe==-3){l=H;return}else if(Xe==-4){c=H;return}else throw new RangeError(`Unrecognized record size: ${Xe}`);let Ge=a[H],ke,ne,ie=N-b;if(oe-N<=r&&(ne=d(o.pos-Y,Oe))){let F=new Uint16Array(ne.size-ne.skip),fe=o.pos-ne.size,be=F.length;for(;o.pos>fe;)be=p(ne.start,F,be);ke=new $i(F,oe-ne.start,i),ie=ne.start-b}else{let F=o.pos-Xe;o.next();let fe=[],be=[],nt=H>=s?H:-1,Me=0,LO=oe;for(;o.pos>F;)nt>=0&&o.id==nt&&o.size>=0?(o.end<=LO-r&&(u(fe,be,N,Me,o.end,LO,nt,Te),Me=fe.length,LO=o.end),o.next()):h(N,F,fe,be,nt);if(nt>=0&&Me>0&&Me-1&&Me>0){let Qn=Q(Ge);ke=xc(Ge,fe,be,0,fe.length,0,oe-N,Qn,Qn)}else ke=$(Ge,fe,be,oe-N,Te-oe)}Z.push(ke),E.push(ie)}function Q(b){return(Y,Z,E)=>{let Oe=0,H=Y.length-1,N,oe;if(H>=0&&(N=Y[H])instanceof he){if(!H&&N.type==b&&N.length==E)return N;(oe=N.prop(M.lookAhead))&&(Oe=Z[H]+N.length+oe)}return $(b,Y,Z,E,Oe)}}function u(b,Y,Z,E,Oe,H,N,oe){let Xe=[],Te=[];for(;b.length>E;)Xe.push(b.pop()),Te.push(Y.pop()+Z-Oe);b.push($(i.types[N],Xe,Te,H-Oe,oe-H)),Y.push(Oe-Z)}function $(b,Y,Z,E,Oe=0,H){if(l){let N=[M.contextHash,l];H=H?[N].concat(H):[N]}if(Oe>25){let N=[M.lookAhead,Oe];H=H?[N].concat(H):[N]}return new he(b,Y,Z,E,H)}function d(b,Y){let Z=o.fork(),E=0,Oe=0,H=0,N=Z.end-r,oe={size:0,start:0,skip:0};e:for(let Xe=Z.pos-b;Z.pos>Xe;){let Te=Z.size;if(Z.id==Y&&Te>=0){oe.size=E,oe.start=Oe,oe.skip=H,H+=4,E+=4,Z.next();continue}let Ge=Z.pos-Te;if(Te<0||Ge=s?4:0,ne=Z.start;for(Z.next();Z.pos>Ge;){if(Z.size<0)if(Z.size==-3)ke+=4;else break e;else Z.id>=s&&(ke+=4);Z.next()}Oe=ne,E+=Te,H+=ke}return(Y<0||E==b)&&(oe.size=E,oe.start=Oe,oe.skip=H),oe.size>4?oe:void 0}function p(b,Y,Z){let{id:E,start:Oe,end:H,size:N}=o;if(o.next(),N>=0&&E4){let Xe=o.pos-(N-4);for(;o.pos>Xe;)Z=p(b,Y,Z)}Y[--Z]=oe,Y[--Z]=H-b,Y[--Z]=Oe-b,Y[--Z]=E}else N==-3?l=E:N==-4&&(c=E);return Z}let P=[],y=[];for(;o.pos>0;)h(O.start||0,O.bufferStart||0,P,y,-1);let x=(e=O.length)!==null&&e!==void 0?e:P.length?y[0]+P[0].length:0;return new he(a[O.topID],P.reverse(),y.reverse(),x)}const Df=new WeakMap;function ss(O,e){if(!O.isAnonymous||e instanceof $i||e.type!=O)return 1;let t=Df.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=O||!(i instanceof he)){t=1;break}t+=ss(O,i)}Df.set(e,t)}return t}function xc(O,e,t,i,r,n,s,o,a){let l=0;for(let $=i;$=c)break;Z+=E}if(x==b+1){if(Z>c){let E=$[b];u(E.children,E.positions,0,E.children.length,d[b]+y);continue}h.push($[b])}else{let E=d[x-1]+$[x-1].length-Y;h.push(xc(O,$,d,b,x,Y,E,null,a))}Q.push(Y+y-n)}}return u(e,t,i,r,0),(o||a)(h,Q,s)}class bc{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof iO?this.setBuffer(e.context.buffer,e.index,t):e instanceof qt&&this.map.set(e.tree,t)}get(e){return e instanceof iO?this.getBuffer(e.context.buffer,e.index):e instanceof qt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class gO{constructor(e,t,i,r,n=!1,s=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(s?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let r=[new gO(0,e.length,e,0,!1,i)];for(let n of t)n.to>e.length&&r.push(n);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,s=e.length?e[0]:null;for(let o=0,a=0,l=0;;o++){let c=o=i)for(;s&&s.from=Q.from||h<=Q.to||l){let u=Math.max(Q.from,a)-l,$=Math.min(Q.to,h)-l;Q=u>=$?null:new gO(u,$,Q.tree,Q.offset+l,o>0,!!c)}if(Q&&r.push(Q),s.to>h)break;s=nnew Tt(r.from,r.to)):[new Tt(0,0)]:[new Tt(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let n=r.advance();if(n)return n}}}class kx{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function bO(O){return(e,t,i,r)=>new Rx(e,O,t,i,r)}class Mf{constructor(e,t,i,r,n){this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.ranges=n}}class Zx{constructor(e,t,i,r,n,s,o){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=s,this.prev=o,this.depth=0,this.ranges=[]}}const ul=new M({perNode:!0});class Rx{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new he(i.type,i.children,i.positions,i.length,i.propValues.concat([[ul,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[M.mounted.id]=new Tx(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;tc.frag.from<=r.from&&c.frag.to>=r.to&&c.mount.overlay);if(l)for(let c of l.mount.overlay){let h=c.from+l.pos,Q=c.to+l.pos;h>=r.from&&Q<=r.to&&!t.ranges.some(u=>u.fromh)&&t.ranges.push({from:h,to:Q})}}o=!1}else if(i&&(s=Ux(i.ranges,r.from,r.to)))o=s!=2;else if(!r.type.isAnonymous&&r.fromnew Tt(h.from-r.from,h.to-r.from)):null,r.tree,c)),n.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):o=!1}}else t&&(a=t.predicate(r))&&(a===!0&&(a=new Tt(r.from,r.to)),a.fromnew Tt(c.from-t.start,c.to-t.start)),t.target,l)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Ux(O,e,t){for(let i of O){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function Nf(O,e,t,i,r,n){if(e=e.to);i++);let s=r.children[i],o=s.buffer;function a(l,c,h,Q,u){let $=l;for(;o[$+2]+n<=e.from;)$=o[$+3];let d=[],p=[];Nf(s,l,$,d,p,Q);let P=o[$+1],y=o[$+2],x=P+n==e.from&&y+n==e.to&&o[$]==e.type.id;return d.push(x?e.toTree():a($+4,o[$+3],s.set.types[o[$]],P,y-P)),p.push(P-Q),Nf(s,o[$+3],c,d,p,Q),new he(h,d,p,u)}r.children[i]=a(0,o.length,je.none,0,s.length);for(let l=0;l<=t;l++)O.childAfter(e.from)}class Lf{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(Pe.IncludeAnonymous|Pe.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,Pe.IgnoreOverlays|Pe.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof he)t=t.children[0];else break}return!1}}let zx=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(ul))!==null&&t!==void 0?t:i.to,this.inner=new Lf(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(ul))!==null&&e!==void 0?e:t.to,this.inner=new Lf(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let n=this.inner.cursor.node;n;n=n.parent){let s=(i=n.tree)===null||i===void 0?void 0:i.prop(M.mounted);if(s&&s.parser==t)for(let o=this.fragI;o=n.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:n.from-a.offset,mount:s})}}}return r}};function Bf(O,e){let t=null,i=e;for(let r=1,n=0;r=o)break;a.to<=s||(t||(i=t=e.slice()),a.fromo&&t.splice(n+1,0,new Tt(o,a.to))):a.to>o?t[n--]=new Tt(o,a.to):t.splice(n--,1))}}return i}function _x(O,e,t,i){let r=0,n=0,s=!1,o=!1,a=-1e9,l=[];for(;;){let c=r==O.length?1e9:s?O[r].to:O[r].from,h=n==e.length?1e9:o?e[n].to:e[n].from;if(s!=o){let Q=Math.max(a,t),u=Math.min(c,h,i);Qnew Tt(Q.from+i,Q.to+i)),h=_x(e,c,a,l);for(let Q=0,u=a;;Q++){let $=Q==h.length,d=$?l:h[Q].from;if(d>u&&t.push(new gO(u,d,r.tree,-s,n.from>=u||n.openStart,n.to<=d||n.openEnd)),$)break;u=h[Q].to}}else t.push(new gO(a,l,r.tree,-s,n.from>=s||n.openStart,n.to<=o||n.openEnd))}return t}let jx=0;class Gt{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=jx++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new Gt([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new ws;return t=>t.modified.indexOf(e)>-1?t:ws.get(t.base||t,t.modified.concat(e).sort((i,r)=>i.id-r.id))}}let Gx=0;class ws{constructor(){this.instances=[],this.id=Gx++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(o=>o.base==e&&Cx(t,o.modified));if(i)return i;let r=[],n=new Gt(r,e,t);for(let o of t)o.instances.push(n);let s=Ix(t);for(let o of e.set)if(!o.modified.length)for(let a of s)r.push(ws.get(o,a));return n}}function Cx(O,e){return O.length==e.length&&O.every((t,i)=>t==e[i])}function Ix(O){let e=[[]];for(let t=0;ti.length-t.length)}function De(O){let e=Object.create(null);for(let t in O){let i=O[t];Array.isArray(i)||(i=[i]);for(let r of t.split(" "))if(r){let n=[],s=2,o=r;for(let h=0;;){if(o=="..."&&h>0&&h+3==r.length){s=1;break}let Q=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!Q)throw new RangeError("Invalid path: "+r);if(n.push(Q[0]=="*"?"":Q[0][0]=='"'?JSON.parse(Q[0]):Q[0]),h+=Q[0].length,h==r.length)break;let u=r[h++];if(h==r.length&&u=="!"){s=0;break}if(u!="/")throw new RangeError("Invalid path: "+r);o=r.slice(h)}let a=n.length-1,l=n[a];if(!l)throw new RangeError("Invalid path: "+r);let c=new Ws(i,s,a>0?n.slice(0,a):null);e[l]=c.sort(e[l])}}return Pp.add(e)}const Pp=new M;class Ws{constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let s=r;for(let o of n)for(let a of o.set){let l=t[a.id];if(l){s=s?s+" "+l:l;break}}return s},scope:i}}function Ex(O,e){let t=null;for(let i of O){let r=i.style(e);r&&(t=t?t+" "+r:r)}return t}function Ax(O,e,t,i=0,r=O.length){let n=new Dx(i,Array.isArray(e)?e:[e],t);n.highlightRange(O.cursor(),i,r,"",n.highlighters),n.flush(r)}class Dx{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,n){let{type:s,from:o,to:a}=e;if(o>=i||a<=t)return;s.isTop&&(n=this.highlighters.filter(u=>!u.scope||u.scope(s)));let l=r,c=Mx(e)||Ws.empty,h=Ex(n,c.tags);if(h&&(l&&(l+=" "),l+=h,c.mode==1&&(r+=(r?" ":"")+h)),this.startSpan(e.from,l),c.opaque)return;let Q=e.tree&&e.tree.prop(M.mounted);if(Q&&Q.overlay){let u=e.node.enter(Q.overlay[0].from+o,1),$=this.highlighters.filter(p=>!p.scope||p.scope(Q.tree.type)),d=e.firstChild();for(let p=0,P=o;;p++){let y=p=x||!e.nextSibling())););if(!y||x>i)break;P=y.to+o,P>t&&(this.highlightRange(u.cursor(),Math.max(t,y.from+o),Math.min(i,P),r,$),this.startSpan(P,l))}d&&e.parent()}else if(e.firstChild()){do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,n),this.startSpan(Math.min(i,e.to),l)}while(e.nextSibling());e.parent()}}}function Mx(O){let e=O.type.prop(Pp);for(;e&&e.context&&!O.matchContext(e.context);)e=e.next;return e||null}const R=Gt.define,Rn=R(),YO=R(),Ff=R(YO),Kf=R(YO),vO=R(),Un=R(vO),Mo=R(vO),Jt=R(),FO=R(Jt),Ft=R(),Kt=R(),$l=R(),nr=R($l),Vn=R(),f={comment:Rn,lineComment:R(Rn),blockComment:R(Rn),docComment:R(Rn),name:YO,variableName:R(YO),typeName:Ff,tagName:R(Ff),propertyName:Kf,attributeName:R(Kf),className:R(YO),labelName:R(YO),namespace:R(YO),macroName:R(YO),literal:vO,string:Un,docString:R(Un),character:R(Un),attributeValue:R(Un),number:Mo,integer:R(Mo),float:R(Mo),bool:R(vO),regexp:R(vO),escape:R(vO),color:R(vO),url:R(vO),keyword:Ft,self:R(Ft),null:R(Ft),atom:R(Ft),unit:R(Ft),modifier:R(Ft),operatorKeyword:R(Ft),controlKeyword:R(Ft),definitionKeyword:R(Ft),moduleKeyword:R(Ft),operator:Kt,derefOperator:R(Kt),arithmeticOperator:R(Kt),logicOperator:R(Kt),bitwiseOperator:R(Kt),compareOperator:R(Kt),updateOperator:R(Kt),definitionOperator:R(Kt),typeOperator:R(Kt),controlOperator:R(Kt),punctuation:$l,separator:R($l),bracket:nr,angleBracket:R(nr),squareBracket:R(nr),paren:R(nr),brace:R(nr),content:Jt,heading:FO,heading1:R(FO),heading2:R(FO),heading3:R(FO),heading4:R(FO),heading5:R(FO),heading6:R(FO),contentSeparator:R(Jt),list:R(Jt),quote:R(Jt),emphasis:R(Jt),strong:R(Jt),link:R(Jt),monospace:R(Jt),strikethrough:R(Jt),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:Vn,documentMeta:R(Vn),annotation:R(Vn),processingInstruction:R(Vn),definition:Gt.defineModifier(),constant:Gt.defineModifier(),function:Gt.defineModifier(),standard:Gt.defineModifier(),local:Gt.defineModifier(),special:Gt.defineModifier()};gp([{tag:f.link,class:"tok-link"},{tag:f.heading,class:"tok-heading"},{tag:f.emphasis,class:"tok-emphasis"},{tag:f.strong,class:"tok-strong"},{tag:f.keyword,class:"tok-keyword"},{tag:f.atom,class:"tok-atom"},{tag:f.bool,class:"tok-bool"},{tag:f.url,class:"tok-url"},{tag:f.labelName,class:"tok-labelName"},{tag:f.inserted,class:"tok-inserted"},{tag:f.deleted,class:"tok-deleted"},{tag:f.literal,class:"tok-literal"},{tag:f.string,class:"tok-string"},{tag:f.number,class:"tok-number"},{tag:[f.regexp,f.escape,f.special(f.string)],class:"tok-string2"},{tag:f.variableName,class:"tok-variableName"},{tag:f.local(f.variableName),class:"tok-variableName tok-local"},{tag:f.definition(f.variableName),class:"tok-variableName tok-definition"},{tag:f.special(f.variableName),class:"tok-variableName2"},{tag:f.definition(f.propertyName),class:"tok-propertyName tok-definition"},{tag:f.typeName,class:"tok-typeName"},{tag:f.namespace,class:"tok-namespace"},{tag:f.className,class:"tok-className"},{tag:f.macroName,class:"tok-macroName"},{tag:f.propertyName,class:"tok-propertyName"},{tag:f.operator,class:"tok-operator"},{tag:f.comment,class:"tok-comment"},{tag:f.meta,class:"tok-meta"},{tag:f.invalid,class:"tok-invalid"},{tag:f.punctuation,class:"tok-punctuation"}]);var No;const oi=new M;function Wc(O){return _.define({combine:O?e=>e.concat(O):void 0})}const Tc=new M;class Yt{constructor(e,t,i=[],r=""){this.data=e,this.name=r,te.prototype.hasOwnProperty("tree")||Object.defineProperty(te.prototype,"tree",{get(){return ue(this)}}),this.parser=t,this.extension=[DO.of(this),te.languageData.of((n,s,o)=>{let a=Jf(n,s,o),l=a.type.prop(oi);if(!l)return[];let c=n.facet(l),h=a.type.prop(Tc);if(h){let Q=a.resolve(s-a.from,o);for(let u of h)if(u.test(Q,n)){let $=n.facet(u.facet);return u.type=="replace"?$:$.concat(c)}}return c})].concat(i)}isActiveAt(e,t,i=-1){return Jf(e,t,i).type.prop(oi)==this.data}findRegions(e){let t=e.facet(DO);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=(n,s)=>{if(n.prop(oi)==this.data){i.push({from:s,to:s+n.length});return}let o=n.prop(M.mounted);if(o){if(o.tree.prop(oi)==this.data){if(o.overlay)for(let a of o.overlay)i.push({from:a.from+s,to:a.to+s});else i.push({from:s,to:s+n.length});return}else if(o.overlay){let a=i.length;if(r(o.tree,o.overlay[0].from+s),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ie(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ue(O){let e=O.field(Yt.state,!1);return e?e.tree:he.empty}class Nx{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let sr=null;class Mr{constructor(e,t,i=[],r,n,s,o,a){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=n,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Mr(e,t,[],he.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Nx(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=he.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(gO.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=sr;sr=this;try{return e()}finally{sr=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=eQ(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:n,viewport:s,skipped:o}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((l,c,h,Q)=>a.push({fromA:l,toA:c,fromB:h,toB:Q})),i=gO.applyChanges(i,a),r=he.empty,n=0,s={from:e.mapPos(s.from,-1),to:e.mapPos(s.to,1)},this.skipped.length){o=[];for(let l of this.skipped){let c=e.mapPos(l.from,1),h=e.mapPos(l.to,-1);ce.from&&(this.fragments=eQ(this.fragments,r,n),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends wc{createParse(t,i,r){let n=r[0].from,s=r[r.length-1].to;return{parsedPos:n,advance(){let a=sr;if(a){for(let l of r)a.tempSkipped.push(l);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=s,new he(je.none,[],[],s-n)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return sr}}function eQ(O,e,t){return gO.applyChanges(O,[{fromA:e,toA:t,fromB:e,toB:t}])}class Ai{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Ai(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Mr.create(e.facet(DO).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Ai(i)}}Yt.state=Ae.define({create:Ai.init,update(O,e){for(let t of e.effects)if(t.is(Yt.setState))return t.value;return e.startState.facet(DO)!=e.state.facet(DO)?Ai.init(e.state):O.apply(e)}});let Sp=O=>{let e=setTimeout(()=>O(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Sp=O=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(O,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Lo=typeof navigator<"u"&&(!((No=navigator.scheduling)===null||No===void 0)&&No.isInputPending)?()=>navigator.scheduling.isInputPending():null,Lx=qe.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Yt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Yt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Sp(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=n.context.work(()=>Lo&&Lo()||Date.now()>s,r+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(n.context.takeTree(),this.view.dispatch({effects:Yt.setState.of(new Ai(n.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(n.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>xt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),DO=_.define({combine(O){return O.length?O[0]:null},enables:O=>[Yt.state,Lx,z.contentAttributes.compute([O],e=>{let t=e.facet(O);return t&&t.name?{"data-language":t.name}:{}})]});class Je{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class Ts{constructor(e,t,i,r,n,s=void 0){this.name=e,this.alias=t,this.extensions=i,this.filename=r,this.loadFunc=n,this.support=s,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new Ts(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let i=/\.([^.]+)$/.exec(t);if(i){for(let r of e)if(r.extensions.indexOf(i[1])>-1)return r}return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(n=>n==t))return r;if(i)for(let r of e)for(let n of r.alias){let s=t.indexOf(n);if(s>-1&&(n.length>2||!/\w/.test(t[s-1])&&!/\w/.test(t[s+n.length])))return r}return null}}const Bx=_.define(),an=_.define({combine:O=>{if(!O.length)return" ";let e=O[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(O[0]));return e}});function Ys(O){let e=O.facet(an);return e.charCodeAt(0)==9?O.tabSize*e.length:e.length}function Nr(O,e){let t="",i=O.tabSize,r=O.facet(an)[0];if(r==" "){for(;e>=i;)t+=" ",e-=i;r=" "}for(let n=0;n=i.from&&r<=i.to?n&&r==e?{text:"",from:e}:(t<0?r-1&&(n+=s-this.countColumn(i,i.search(/\S|$/))),n}countColumn(e,t=e.length){return rn(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),n=this.options.overrideIndentation;if(n){let s=n(r);if(s>-1)return s}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const pt=new M;function Hx(O,e,t){return Xp(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,O)}function Fx(O){return O.pos==O.options.simulateBreak&&O.options.simulateDoubleBreak}function Kx(O){let e=O.type.prop(pt);if(e)return e;let t=O.firstChild,i;if(t&&(i=t.type.prop(M.closedBy))){let r=O.lastChild,n=r&&i.indexOf(r.name)>-1;return s=>yp(s,!0,1,void 0,n&&!Fx(s)?r.from:void 0)}return O.parent==null?Jx:null}function Xp(O,e,t){for(;O;O=O.parent){let i=Kx(O);if(i)return i(vc.create(t,e,O))}return null}function Jx(){return 0}class vc extends lo{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.node=i}static create(e,t,i){return new vc(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(eb(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?Xp(e,this.pos,this.base):0}}function eb(O,e){for(let t=e;t;t=t.parent)if(O==t)return!0;return!1}function tb(O){let e=O.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let r=O.options.simulateBreak,n=O.state.doc.lineAt(t.from),s=r==null||r<=n.from?n.to:Math.min(n.to,r);for(let o=t.to;;){let a=e.childAfter(o);if(!a||a==i)return null;if(!a.type.isSkipped)return a.fromyp(i,e,t,O)}function yp(O,e,t,i,r){let n=O.textAfter,s=n.match(/^\s*/)[0].length,o=i&&n.slice(s,s+i.length)==i||r==O.pos+s,a=e?tb(O):null;return a?o?O.column(a.from):O.column(a.to):O.baseIndent+(o?0:O.unit*t)}const qc=O=>O.baseIndent;function Ce({except:O,units:e=1}={}){return t=>{let i=O&&O.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const Ob=200;function ib(){return te.transactionFilter.of(O=>{if(!O.docChanged||!O.isUserEvent("input.type")&&!O.isUserEvent("input.complete"))return O;let e=O.startState.languageDataAt("indentOnInput",O.startState.selection.main.head);if(!e.length)return O;let t=O.newDoc,{head:i}=O.newSelection.main,r=t.lineAt(i);if(i>r.from+Ob)return O;let n=t.sliceString(r.from,i);if(!e.some(l=>l.test(n)))return O;let{state:s}=O,o=-1,a=[];for(let{head:l}of s.selection.ranges){let c=s.doc.lineAt(l);if(c.from==o)continue;o=c.from;let h=Yc(s,c.from);if(h==null)continue;let Q=/^\s*/.exec(c.text)[0],u=Nr(s,h);Q!=u&&a.push({from:c.from,to:c.from+Q.length,insert:u})}return a.length?[O,{changes:a,sequential:!0}]:O})}const xp=_.define(),ft=new M;function fO(O){let e=O.firstChild,t=O.lastChild;return e&&e.tot)continue;if(n&&s.from=e&&a.to>t&&(n=a)}}return n}function nb(O){let e=O.lastChild;return e&&e.to==O.to&&e.type.isError}function vs(O,e,t){for(let i of O.facet(xp)){let r=i(O,e,t);if(r)return r}return rb(O,e,t)}function bp(O,e){let t=e.mapPos(O.from,1),i=e.mapPos(O.to,-1);return t>=i?void 0:{from:t,to:i}}const co=B.define({map:bp}),ln=B.define({map:bp});function wp(O){let e=[];for(let{head:t}of O.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(O.lineBlockAt(t));return e}const ui=Ae.define({create(){return I.none},update(O,e){O=O.map(e.changes);for(let t of e.effects)t.is(co)&&!sb(O,t.value.from,t.value.to)?O=O.update({add:[tQ.range(t.value.from,t.value.to)]}):t.is(ln)&&(O=O.update({filter:(i,r)=>t.value.from!=i||t.value.to!=r,filterFrom:t.value.from,filterTo:t.value.to}));if(e.selection){let t=!1,{head:i}=e.selection.main;O.between(i,i,(r,n)=>{ri&&(t=!0)}),t&&(O=O.update({filterFrom:i,filterTo:i,filter:(r,n)=>n<=i||r>=i}))}return O},provide:O=>z.decorations.from(O),toJSON(O,e){let t=[];return O.between(0,e.doc.length,(i,r)=>{t.push(i,r)}),t},fromJSON(O){if(!Array.isArray(O)||O.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{(!r||r.from>n)&&(r={from:n,to:s})}),r}function sb(O,e,t){let i=!1;return O.between(e,e,(r,n)=>{r==e&&n==t&&(i=!0)}),i}function Wp(O,e){return O.field(ui,!1)?e:e.concat(B.appendConfig.of(vp()))}const ob=O=>{for(let e of wp(O)){let t=vs(O.state,e.from,e.to);if(t)return O.dispatch({effects:Wp(O.state,[co.of(t),Tp(O,t)])}),!0}return!1},ab=O=>{if(!O.state.field(ui,!1))return!1;let e=[];for(let t of wp(O)){let i=qs(O.state,t.from,t.to);i&&e.push(ln.of(i),Tp(O,i,!1))}return e.length&&O.dispatch({effects:e}),e.length>0};function Tp(O,e,t=!0){let i=O.state.doc.lineAt(e.from).number,r=O.state.doc.lineAt(e.to).number;return z.announce.of(`${O.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${O.state.phrase("to")} ${r}.`)}const lb=O=>{let{state:e}=O,t=[];for(let i=0;i{let e=O.state.field(ui,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,O.state.doc.length,(i,r)=>{t.push(ln.of({from:i,to:r}))}),O.dispatch({effects:t}),!0},hb=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:ob},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:ab},{key:"Ctrl-Alt-[",run:lb},{key:"Ctrl-Alt-]",run:cb}],fb={placeholderDOM:null,placeholderText:"…"},Yp=_.define({combine(O){return cO(O,fb)}});function vp(O){let e=[ui,$b];return O&&e.push(Yp.of(O)),e}const tQ=I.replace({widget:new class extends hO{toDOM(O){let{state:e}=O,t=e.facet(Yp),i=n=>{let s=O.lineBlockAt(O.posAtDOM(n.target)),o=qs(O.state,s.from,s.to);o&&O.dispatch({effects:ln.of(o)}),n.preventDefault()};if(t.placeholderDOM)return t.placeholderDOM(O,i);let r=document.createElement("span");return r.textContent=t.placeholderText,r.setAttribute("aria-label",e.phrase("folded code")),r.title=e.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=i,r}}}),Qb={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Bo extends XO{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function ub(O={}){let e=Object.assign(Object.assign({},Qb),O),t=new Bo(e,!0),i=new Bo(e,!1),r=qe.fromClass(class{constructor(s){this.from=s.viewport.from,this.markers=this.buildMarkers(s)}update(s){(s.docChanged||s.viewportChanged||s.startState.facet(DO)!=s.state.facet(DO)||s.startState.field(ui,!1)!=s.state.field(ui,!1)||ue(s.startState)!=ue(s.state)||e.foldingChanged(s))&&(this.markers=this.buildMarkers(s.view))}buildMarkers(s){let o=new CO;for(let a of s.viewportLineBlocks){let l=qs(s.state,a.from,a.to)?i:vs(s.state,a.from,a.to)?t:null;l&&o.add(a.from,a.from,l)}return o.finish()}}),{domEventHandlers:n}=e;return[r,px({class:"cm-foldGutter",markers(s){var o;return((o=s.plugin(r))===null||o===void 0?void 0:o.markers)||ce.empty},initialSpacer(){return new Bo(e,!1)},domEventHandlers:Object.assign(Object.assign({},n),{click:(s,o,a)=>{if(n.click&&n.click(s,o,a))return!0;let l=qs(s.state,o.from,o.to);if(l)return s.dispatch({effects:ln.of(l)}),!0;let c=vs(s.state,o.from,o.to);return c?(s.dispatch({effects:co.of(c)}),!0):!1}})}),vp()]}const $b=z.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class cn{constructor(e,t){this.specs=e;let i;function r(o){let a=IO.newName();return(i||(i=Object.create(null)))["."+a]=o,a}const n=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,s=t.scope;this.scope=s instanceof Yt?o=>o.prop(oi)==s.data:s?o=>o==s:void 0,this.style=gp(e.map(o=>({tag:o.tag,class:o.class||r(Object.assign({},o,{tag:null}))})),{all:n}).style,this.module=i?new IO(i):null,this.themeType=t.themeType}static define(e,t){return new cn(e,t||{})}}const dl=_.define(),qp=_.define({combine(O){return O.length?[O[0]]:null}});function Ho(O){let e=O.facet(dl);return e.length?e:O.facet(qp)}function kp(O,e){let t=[pb],i;return O instanceof cn&&(O.module&&t.push(z.styleModule.of(O.module)),i=O.themeType),e!=null&&e.fallback?t.push(qp.of(O)):i?t.push(dl.computeN([z.darkTheme],r=>r.facet(z.darkTheme)==(i=="dark")?[O]:[])):t.push(dl.of(O)),t}class db{constructor(e){this.markCache=Object.create(null),this.tree=ue(e.state),this.decorations=this.buildDeco(e,Ho(e.state))}update(e){let t=ue(e.state),i=Ho(e.state),r=i!=Ho(e.startState);t.length{i.add(s,o,this.markCache[a]||(this.markCache[a]=I.mark({class:a})))},r,n);return i.finish()}}const pb=MO.high(qe.fromClass(db,{decorations:O=>O.decorations})),mb=cn.define([{tag:f.meta,color:"#404740"},{tag:f.link,textDecoration:"underline"},{tag:f.heading,textDecoration:"underline",fontWeight:"bold"},{tag:f.emphasis,fontStyle:"italic"},{tag:f.strong,fontWeight:"bold"},{tag:f.strikethrough,textDecoration:"line-through"},{tag:f.keyword,color:"#708"},{tag:[f.atom,f.bool,f.url,f.contentSeparator,f.labelName],color:"#219"},{tag:[f.literal,f.inserted],color:"#164"},{tag:[f.string,f.deleted],color:"#a11"},{tag:[f.regexp,f.escape,f.special(f.string)],color:"#e40"},{tag:f.definition(f.variableName),color:"#00f"},{tag:f.local(f.variableName),color:"#30a"},{tag:[f.typeName,f.namespace],color:"#085"},{tag:f.className,color:"#167"},{tag:[f.special(f.variableName),f.macroName],color:"#256"},{tag:f.definition(f.propertyName),color:"#00c"},{tag:f.comment,color:"#940"},{tag:f.invalid,color:"#f00"}]),Pb=z.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Zp=1e4,Rp="()[]{}",Up=_.define({combine(O){return cO(O,{afterCursor:!0,brackets:Rp,maxScanDistance:Zp,renderMatch:Xb})}}),gb=I.mark({class:"cm-matchingBracket"}),Sb=I.mark({class:"cm-nonmatchingBracket"});function Xb(O){let e=[],t=O.matched?gb:Sb;return e.push(t.range(O.start.from,O.start.to)),O.end&&e.push(t.range(O.end.from,O.end.to)),e}const yb=Ae.define({create(){return I.none},update(O,e){if(!e.docChanged&&!e.selection)return O;let t=[],i=e.state.facet(Up);for(let r of e.state.selection.ranges){if(!r.empty)continue;let n=rO(e.state,r.head,-1,i)||r.head>0&&rO(e.state,r.head-1,1,i)||i.afterCursor&&(rO(e.state,r.head,1,i)||r.headz.decorations.from(O)}),xb=[yb,Pb];function bb(O={}){return[Up.of(O),xb]}const kc=new M;function pl(O,e,t){let i=O.prop(e<0?M.openedBy:M.closedBy);if(i)return i;if(O.name.length==1){let r=t.indexOf(O.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function ml(O){let e=O.type.prop(kc);return e?e(O.node):O}function rO(O,e,t,i={}){let r=i.maxScanDistance||Zp,n=i.brackets||Rp,s=ue(O),o=s.resolveInner(e,t);for(let a=o;a;a=a.parent){let l=pl(a.type,t,n);if(l&&a.from0?e>=c.from&&ec.from&&e<=c.to))return wb(O,e,t,a,c,l,n)}}return Wb(O,e,t,s,o.type,r,n)}function wb(O,e,t,i,r,n,s){let o=i.parent,a={from:r.from,to:r.to},l=0,c=o==null?void 0:o.cursor();if(c&&(t<0?c.childBefore(i.from):c.childAfter(i.to)))do if(t<0?c.to<=i.from:c.from>=i.to){if(l==0&&n.indexOf(c.type.name)>-1&&c.from0)return null;let l={from:t<0?e-1:e,to:t>0?e+1:e},c=O.doc.iterRange(e,t>0?O.doc.length:0),h=0;for(let Q=0;!c.next().done&&Q<=n;){let u=c.value;t<0&&(Q+=u.length);let $=e+Q*t;for(let d=t>0?0:u.length-1,p=t>0?u.length:-1;d!=p;d+=t){let P=s.indexOf(u[d]);if(!(P<0||i.resolveInner($+d,1).type!=r))if(P%2==0==t>0)h++;else{if(h==1)return{start:l,end:{from:$+d,to:$+d+1},matched:P>>1==a>>1};h--}}t>0&&(Q+=u.length)}return c.done?{start:l,matched:!1}:null}const Tb=Object.create(null),OQ=[je.none],iQ=[],Yb=Object.create(null);for(let[O,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Yb[O]=vb(Tb,e);function Fo(O,e){iQ.indexOf(O)>-1||(iQ.push(O),console.warn(e))}function vb(O,e){let t=null;for(let n of e.split(".")){let s=O[n]||f[n];s?typeof s=="function"?t?t=s(t):Fo(n,`Modifier ${n} used at start of tag`):t?Fo(n,`Tag ${n} used as modifier`):t=s:Fo(n,`Unknown highlighting tag ${n}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),r=je.define({id:OQ.length,name:i,props:[De({[i]:t})]});return OQ.push(r),r.id}const qb=O=>{let{state:e}=O,t=e.doc.lineAt(e.selection.main.from),i=Rc(O.state,t.from);return i.line?kb(O):i.block?Rb(O):!1};function Zc(O,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=O(e,t);return r?(i(t.update(r)),!0):!1}}const kb=Zc(zb,0),Zb=Zc(Vp,0),Rb=Zc((O,e)=>Vp(O,e,Vb(e)),0);function Rc(O,e){let t=O.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const or=50;function Ub(O,{open:e,close:t},i,r){let n=O.sliceDoc(i-or,i),s=O.sliceDoc(r,r+or),o=/\s*$/.exec(n)[0].length,a=/^\s*/.exec(s)[0].length,l=n.length-o;if(n.slice(l-e.length,l)==e&&s.slice(a,a+t.length)==t)return{open:{pos:i-o,margin:o&&1},close:{pos:r+a,margin:a&&1}};let c,h;r-i<=2*or?c=h=O.sliceDoc(i,r):(c=O.sliceDoc(i,i+or),h=O.sliceDoc(r-or,r));let Q=/^\s*/.exec(c)[0].length,u=/\s*$/.exec(h)[0].length,$=h.length-u-t.length;return c.slice(Q,Q+e.length)==e&&h.slice($,$+t.length)==t?{open:{pos:i+Q+e.length,margin:/\s/.test(c.charAt(Q+e.length))?1:0},close:{pos:r-u-t.length,margin:/\s/.test(h.charAt($-1))?1:0}}:null}function Vb(O){let e=[];for(let t of O.selection.ranges){let i=O.doc.lineAt(t.from),r=t.to<=i.to?i:O.doc.lineAt(t.to),n=e.length-1;n>=0&&e[n].to>i.from?e[n].to=r.to:e.push({from:i.from,to:r.to})}return e}function Vp(O,e,t=e.selection.ranges){let i=t.map(n=>Rc(e,n.from).block);if(!i.every(n=>n))return null;let r=t.map((n,s)=>Ub(e,i[s],n.from,n.to));if(O!=2&&!r.every(n=>n))return{changes:e.changes(t.map((n,s)=>r[s]?[]:[{from:n.from,insert:i[s].open+" "},{from:n.to,insert:" "+i[s].close}]))};if(O!=1&&r.some(n=>n)){let n=[];for(let s=0,o;sr&&(n==s||s>h.from)){r=h.from;let Q=/^\s*/.exec(h.text)[0].length,u=Q==h.length,$=h.text.slice(Q,Q+l.length)==l?Q:-1;Qn.comment<0&&(!n.empty||n.single))){let n=[];for(let{line:o,token:a,indent:l,empty:c,single:h}of i)(h||!c)&&n.push({from:o.from+l,insert:a+" "});let s=e.changes(n);return{changes:s,selection:e.selection.map(s,1)}}else if(O!=1&&i.some(n=>n.comment>=0)){let n=[];for(let{line:s,comment:o,token:a}of i)if(o>=0){let l=s.from+o,c=l+a.length;s.text[c-s.from]==" "&&c++,n.push({from:l,to:c})}return{changes:n}}return null}const Pl=xO.define(),_b=xO.define(),jb=_.define(),zp=_.define({combine(O){return cO(O,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,r)=>e(i,r)||t(i,r)})}});function Gb(O){let e=0;return O.iterChangedRanges((t,i)=>e=i),e}const _p=Ae.define({create(){return nO.empty},update(O,e){let t=e.state.facet(zp),i=e.annotation(Pl);if(i){let a=e.docChanged?X.single(Gb(e.changes)):void 0,l=$t.fromTransaction(e,a),c=i.side,h=c==0?O.undone:O.done;return l?h=ks(h,h.length,t.minDepth,l):h=Cp(h,e.startState.selection),new nO(c==0?i.rest:h,c==0?h:i.rest)}let r=e.annotation(_b);if((r=="full"||r=="before")&&(O=O.isolate()),e.annotation(ze.addToHistory)===!1)return e.changes.empty?O:O.addMapping(e.changes.desc);let n=$t.fromTransaction(e),s=e.annotation(ze.time),o=e.annotation(ze.userEvent);return n?O=O.addChanges(n,s,o,t,e):e.selection&&(O=O.addSelection(e.startState.selection,s,o,t.newGroupDelay)),(r=="full"||r=="after")&&(O=O.isolate()),O},toJSON(O){return{done:O.done.map(e=>e.toJSON()),undone:O.undone.map(e=>e.toJSON())}},fromJSON(O){return new nO(O.done.map($t.fromJSON),O.undone.map($t.fromJSON))}});function Cb(O={}){return[_p,zp.of(O),z.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?jp:e.inputType=="historyRedo"?gl:null;return i?(e.preventDefault(),i(t)):!1}})]}function ho(O,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let r=t.field(_p,!1);if(!r)return!1;let n=r.pop(O,t,e);return n?(i(n),!0):!1}}const jp=ho(0,!1),gl=ho(1,!1),Ib=ho(0,!0),Eb=ho(1,!0);class $t{constructor(e,t,i,r,n){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=n}setSelAfter(e){return new $t(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new $t(e.changes&&Ve.fromJSON(e.changes),[],e.mapped&&sO.fromJSON(e.mapped),e.startSelection&&X.fromJSON(e.startSelection),e.selectionsAfter.map(X.fromJSON))}static fromTransaction(e,t){let i=vt;for(let r of e.startState.facet(jb)){let n=r(e);n.length&&(i=i.concat(n))}return!i.length&&e.changes.empty?null:new $t(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,vt)}static selection(e){return new $t(void 0,vt,void 0,void 0,e)}}function ks(O,e,t,i){let r=e+1>t+20?e-t-1:0,n=O.slice(r,e);return n.push(i),n}function Ab(O,e){let t=[],i=!1;return O.iterChangedRanges((r,n)=>t.push(r,n)),e.iterChangedRanges((r,n,s,o)=>{for(let a=0;a=l&&s<=c&&(i=!0)}}),i}function Db(O,e){return O.ranges.length==e.ranges.length&&O.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Gp(O,e){return O.length?e.length?O.concat(e):O:e}const vt=[],Mb=200;function Cp(O,e){if(O.length){let t=O[O.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Mb));return i.length&&i[i.length-1].eq(e)?O:(i.push(e),ks(O,O.length-1,1e9,t.setSelAfter(i)))}else return[$t.selection([e])]}function Nb(O){let e=O[O.length-1],t=O.slice();return t[O.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Ko(O,e){if(!O.length)return O;let t=O.length,i=vt;for(;t;){let r=Lb(O[t-1],e,i);if(r.changes&&!r.changes.empty||r.effects.length){let n=O.slice(0,t);return n[t-1]=r,n}else e=r.mapped,t--,i=r.selectionsAfter}return i.length?[$t.selection(i)]:vt}function Lb(O,e,t){let i=Gp(O.selectionsAfter.length?O.selectionsAfter.map(o=>o.map(e)):vt,t);if(!O.changes)return $t.selection(i);let r=O.changes.map(e),n=e.mapDesc(O.changes,!0),s=O.mapped?O.mapped.composeDesc(n):n;return new $t(r,B.mapEffects(O.effects,e),s,O.startSelection.map(n),i)}const Bb=/^(input\.type|delete)($|\.)/;class nO{constructor(e,t,i=0,r=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new nO(this.done,this.undone):this}addChanges(e,t,i,r,n){let s=this.done,o=s[s.length-1];return o&&o.changes&&!o.changes.empty&&e.changes&&(!i||Bb.test(i))&&(!o.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?O.moveByChar(t,e):fo(t,e))}function rt(O){return O.textDirectionAt(O.state.selection.main.head)==We.LTR}const Ep=O=>Ip(O,!rt(O)),Ap=O=>Ip(O,rt(O));function Dp(O,e){return Nt(O,t=>t.empty?O.moveByGroup(t,e):fo(t,e))}const Fb=O=>Dp(O,!rt(O)),Kb=O=>Dp(O,rt(O));function Jb(O,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(O.sliceDoc(e.from,e.to)))||e.firstChild}function Qo(O,e,t){let i=ue(O).resolveInner(e.head),r=t?M.closedBy:M.openedBy;for(let a=e.head;;){let l=t?i.childAfter(a):i.childBefore(a);if(!l)break;Jb(O,l,r)?i=l:a=t?l.to:l.from}let n=i.type.prop(r),s,o;return n&&(s=t?rO(O,i.from,1):rO(O,i.to,-1))&&s.matched?o=t?s.end.to:s.end.from:o=t?i.to:i.from,X.cursor(o,t?-1:1)}const ew=O=>Nt(O,e=>Qo(O.state,e,!rt(O))),tw=O=>Nt(O,e=>Qo(O.state,e,rt(O)));function Mp(O,e){return Nt(O,t=>{if(!t.empty)return fo(t,e);let i=O.moveVertically(t,e);return i.head!=t.head?i:O.moveToLineBoundary(t,e)})}const Np=O=>Mp(O,!1),Lp=O=>Mp(O,!0);function Bp(O){let e=O.scrollDOM.clientHeights.empty?O.moveVertically(s,e,t.height):fo(s,e));if(r.eq(i.selection))return!1;let n;if(t.selfScroll){let s=O.coordsAtPos(i.selection.main.head),o=O.scrollDOM.getBoundingClientRect(),a=o.top+t.marginTop,l=o.bottom-t.marginBottom;s&&s.top>a&&s.bottomHp(O,!1),Sl=O=>Hp(O,!0);function NO(O,e,t){let i=O.lineBlockAt(e.head),r=O.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?i.to:i.from)&&(r=O.moveToLineBoundary(e,t,!1)),!t&&r.head==i.from&&i.length){let n=/^\s*/.exec(O.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&e.head!=i.from+n&&(r=X.cursor(i.from+n))}return r}const Ow=O=>Nt(O,e=>NO(O,e,!0)),iw=O=>Nt(O,e=>NO(O,e,!1)),rw=O=>Nt(O,e=>NO(O,e,!rt(O))),nw=O=>Nt(O,e=>NO(O,e,rt(O))),sw=O=>Nt(O,e=>X.cursor(O.lineBlockAt(e.head).from,1)),ow=O=>Nt(O,e=>X.cursor(O.lineBlockAt(e.head).to,-1));function aw(O,e,t){let i=!1,r=Ji(O.selection,n=>{let s=rO(O,n.head,-1)||rO(O,n.head,1)||n.head>0&&rO(O,n.head-1,1)||n.headaw(O,e,!1);function Rt(O,e){let t=Ji(O.state.selection,i=>{let r=e(i);return X.range(i.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(O.state.selection)?!1:(O.dispatch(QO(O.state,t)),!0)}function Fp(O,e){return Rt(O,t=>O.moveByChar(t,e))}const Kp=O=>Fp(O,!rt(O)),Jp=O=>Fp(O,rt(O));function em(O,e){return Rt(O,t=>O.moveByGroup(t,e))}const cw=O=>em(O,!rt(O)),hw=O=>em(O,rt(O)),fw=O=>Rt(O,e=>Qo(O.state,e,!rt(O))),Qw=O=>Rt(O,e=>Qo(O.state,e,rt(O)));function tm(O,e){return Rt(O,t=>O.moveVertically(t,e))}const Om=O=>tm(O,!1),im=O=>tm(O,!0);function rm(O,e){return Rt(O,t=>O.moveVertically(t,e,Bp(O).height))}const nQ=O=>rm(O,!1),sQ=O=>rm(O,!0),uw=O=>Rt(O,e=>NO(O,e,!0)),$w=O=>Rt(O,e=>NO(O,e,!1)),dw=O=>Rt(O,e=>NO(O,e,!rt(O))),pw=O=>Rt(O,e=>NO(O,e,rt(O))),mw=O=>Rt(O,e=>X.cursor(O.lineBlockAt(e.head).from)),Pw=O=>Rt(O,e=>X.cursor(O.lineBlockAt(e.head).to)),oQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:0})),!0),aQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.doc.length})),!0),lQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.selection.main.anchor,head:0})),!0),cQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.selection.main.anchor,head:O.doc.length})),!0),gw=({state:O,dispatch:e})=>(e(O.update({selection:{anchor:0,head:O.doc.length},userEvent:"select"})),!0),Sw=({state:O,dispatch:e})=>{let t=$o(O).map(({from:i,to:r})=>X.range(i,Math.min(r+1,O.doc.length)));return e(O.update({selection:X.create(t),userEvent:"select"})),!0},Xw=({state:O,dispatch:e})=>{let t=Ji(O.selection,i=>{var r;let n=ue(O).resolveInner(i.head,1);for(;!(n.from=i.to||n.to>i.to&&n.from<=i.from||!(!((r=n.parent)===null||r===void 0)&&r.parent));)n=n.parent;return X.range(n.to,n.from)});return e(QO(O,t)),!0},yw=({state:O,dispatch:e})=>{let t=O.selection,i=null;return t.ranges.length>1?i=X.create([t.main]):t.main.empty||(i=X.create([X.cursor(t.main.head)])),i?(e(QO(O,i)),!0):!1};function uo(O,e){if(O.state.readOnly)return!1;let t="delete.selection",{state:i}=O,r=i.changeByRange(n=>{let{from:s,to:o}=n;if(s==o){let a=e(s);as&&(t="delete.forward",a=zn(O,a,!0)),s=Math.min(s,a),o=Math.max(o,a)}else s=zn(O,s,!1),o=zn(O,o,!0);return s==o?{range:n}:{changes:{from:s,to:o},range:X.cursor(s)}});return r.changes.empty?!1:(O.dispatch(i.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?z.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function zn(O,e,t){if(O instanceof z)for(let i of O.state.facet(z.atomicRanges).map(r=>r(O)))i.between(e,e,(r,n)=>{re&&(e=t?n:r)});return e}const nm=(O,e)=>uo(O,t=>{let{state:i}=O,r=i.doc.lineAt(t),n,s;if(!e&&t>r.from&&tnm(O,!1),sm=O=>nm(O,!0),om=(O,e)=>uo(O,t=>{let i=t,{state:r}=O,n=r.doc.lineAt(i),s=r.charCategorizer(i);for(let o=null;;){if(i==(e?n.to:n.from)){i==t&&n.number!=(e?r.doc.lines:1)&&(i+=e?1:-1);break}let a=at(n.text,i-n.from,e)+n.from,l=n.text.slice(Math.min(i,a)-n.from,Math.max(i,a)-n.from),c=s(l);if(o!=null&&c!=o)break;(l!=" "||i!=t)&&(o=c),i=a}return i}),am=O=>om(O,!1),xw=O=>om(O,!0),lm=O=>uo(O,e=>{let t=O.lineBlockAt(e).to;return euo(O,e=>{let t=O.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)}),ww=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=O.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:le.of(["",""])},range:X.cursor(i.from)}));return e(O.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Ww=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=O.changeByRange(i=>{if(!i.empty||i.from==0||i.from==O.doc.length)return{range:i};let r=i.from,n=O.doc.lineAt(r),s=r==n.from?r-1:at(n.text,r-n.from,!1)+n.from,o=r==n.to?r+1:at(n.text,r-n.from,!0)+n.from;return{changes:{from:s,to:o,insert:O.doc.slice(r,o).append(O.doc.slice(s,r))},range:X.cursor(o)}});return t.changes.empty?!1:(e(O.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function $o(O){let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.from),n=O.doc.lineAt(i.to);if(!i.empty&&i.to==n.from&&(n=O.doc.lineAt(i.to-1)),t>=r.number){let s=e[e.length-1];s.to=n.to,s.ranges.push(i)}else e.push({from:r.from,to:n.to,ranges:[i]});t=n.number+1}return e}function cm(O,e,t){if(O.readOnly)return!1;let i=[],r=[];for(let n of $o(O)){if(t?n.to==O.doc.length:n.from==0)continue;let s=O.doc.lineAt(t?n.to+1:n.from-1),o=s.length+1;if(t){i.push({from:n.to,to:s.to},{from:n.from,insert:s.text+O.lineBreak});for(let a of n.ranges)r.push(X.range(Math.min(O.doc.length,a.anchor+o),Math.min(O.doc.length,a.head+o)))}else{i.push({from:s.from,to:n.from},{from:n.to,insert:O.lineBreak+s.text});for(let a of n.ranges)r.push(X.range(a.anchor-o,a.head-o))}}return i.length?(e(O.update({changes:i,scrollIntoView:!0,selection:X.create(r,O.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Tw=({state:O,dispatch:e})=>cm(O,e,!1),Yw=({state:O,dispatch:e})=>cm(O,e,!0);function hm(O,e,t){if(O.readOnly)return!1;let i=[];for(let r of $o(O))t?i.push({from:r.from,insert:O.doc.slice(r.from,r.to)+O.lineBreak}):i.push({from:r.to,insert:O.lineBreak+O.doc.slice(r.from,r.to)});return e(O.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const vw=({state:O,dispatch:e})=>hm(O,e,!1),qw=({state:O,dispatch:e})=>hm(O,e,!0),kw=O=>{if(O.state.readOnly)return!1;let{state:e}=O,t=e.changes($o(e).map(({from:r,to:n})=>(r>0?r--:nO.moveVertically(r,!0)).map(t);return O.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Zw(O,e){if(/\(\)|\[\]|\{\}/.test(O.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ue(O).resolveInner(e),i=t.childBefore(e),r=t.childAfter(e),n;return i&&r&&i.to<=e&&r.from>=e&&(n=i.type.prop(M.closedBy))&&n.indexOf(r.name)>-1&&O.doc.lineAt(i.to).from==O.doc.lineAt(r.from).from?{from:i.to,to:r.from}:null}const Rw=fm(!1),Uw=fm(!0);function fm(O){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(r=>{let{from:n,to:s}=r,o=e.doc.lineAt(n),a=!O&&n==s&&Zw(e,n);O&&(n=s=(s<=o.to?o:e.doc.lineAt(s)).to);let l=new lo(e,{simulateBreak:n,simulateDoubleBreak:!!a}),c=Yc(l,n);for(c==null&&(c=/^\s*/.exec(e.doc.lineAt(n).text)[0].length);so.from&&n{let r=[];for(let s=i.from;s<=i.to;){let o=O.doc.lineAt(s);o.number>t&&(i.empty||i.to>o.from)&&(e(o,r,i),t=o.number),s=o.to+1}let n=O.changes(r);return{changes:r,range:X.range(n.mapPos(i.anchor,1),n.mapPos(i.head,1))}})}const Vw=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=Object.create(null),i=new lo(O,{overrideIndentation:n=>{let s=t[n];return s??-1}}),r=Uc(O,(n,s,o)=>{let a=Yc(i,n.from);if(a==null)return;/\S/.test(n.text)||(a=0);let l=/^\s*/.exec(n.text)[0],c=Nr(O,a);(l!=c||o.fromO.readOnly?!1:(e(O.update(Uc(O,(t,i)=>{i.push({from:t.from,insert:O.facet(an)})}),{userEvent:"input.indent"})),!0),um=({state:O,dispatch:e})=>O.readOnly?!1:(e(O.update(Uc(O,(t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let n=rn(r,O.tabSize),s=0,o=Nr(O,Math.max(0,n-Ys(O)));for(;s({mac:O.key,run:O.run,shift:O.shift}))),jw=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ew,shift:fw},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:tw,shift:Qw},{key:"Alt-ArrowUp",run:Tw},{key:"Shift-Alt-ArrowUp",run:vw},{key:"Alt-ArrowDown",run:Yw},{key:"Shift-Alt-ArrowDown",run:qw},{key:"Escape",run:yw},{key:"Mod-Enter",run:Uw},{key:"Alt-l",mac:"Ctrl-l",run:Sw},{key:"Mod-i",run:Xw,preventDefault:!0},{key:"Mod-[",run:um},{key:"Mod-]",run:Qm},{key:"Mod-Alt-\\",run:Vw},{key:"Shift-Mod-k",run:kw},{key:"Shift-Mod-\\",run:lw},{key:"Mod-/",run:qb},{key:"Alt-A",run:Zb}].concat(_w),Gw={key:"Tab",run:Qm,shift:um};function me(){var O=arguments[0];typeof O=="string"&&(O=document.createElement(O));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];typeof r=="string"?O.setAttribute(i,r):r!=null&&(O[i]=r)}e++}for(;eO.normalize("NFKD"):O=>O;class Di{constructor(e,t,i=0,r=e.length,n,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=n?o=>n(hQ(o)):hQ,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Be(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=cc(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=wt(e);let r=this.normalize(t);for(let n=0,s=i;;n++){let o=r.charCodeAt(n),a=this.match(o,s);if(a)return this.value=a,this;if(n==r.length-1)break;s==i&&nthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=Zs(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||r.to<=t){let o=new Ri(t,e.sliceString(t,i));return Jo.set(e,o),o}if(r.from==t&&r.to==i)return r;let{text:n,from:s}=r;return s>t&&(n=e.sliceString(t,s)+n,s=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,r=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this.matchPos=Zs(this.text,r+(i==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ri.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(pm.prototype[Symbol.iterator]=mm.prototype[Symbol.iterator]=function(){return this});function Cw(O){try{return new RegExp(O,Vc),!0}catch{return!1}}function Zs(O,e){if(e>=O.length)return e;let t=O.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function yl(O){let e=me("input",{class:"cm-textfield",name:"line"}),t=me("form",{class:"cm-gotoLine",onkeydown:r=>{r.keyCode==27?(r.preventDefault(),O.dispatch({effects:Rs.of(!1)}),O.focus()):r.keyCode==13&&(r.preventDefault(),i())},onsubmit:r=>{r.preventDefault(),i()}},me("label",O.state.phrase("Go to line"),": ",e)," ",me("button",{class:"cm-button",type:"submit"},O.state.phrase("go")));function i(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!r)return;let{state:n}=O,s=n.doc.lineAt(n.selection.main.head),[,o,a,l,c]=r,h=l?+l.slice(1):0,Q=a?+a:s.number;if(a&&c){let $=Q/100;o&&($=$*(o=="-"?-1:1)+s.number/n.doc.lines),Q=Math.round(n.doc.lines*$)}else a&&o&&(Q=Q*(o=="-"?-1:1)+s.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,Q)));O.dispatch({effects:Rs.of(!1),selection:X.cursor(u.from+Math.max(0,Math.min(h,u.length))),scrollIntoView:!0}),O.focus()}return{dom:t}}const Rs=B.define(),fQ=Ae.define({create(){return!0},update(O,e){for(let t of e.effects)t.is(Rs)&&(O=t.value);return O},provide:O=>Ar.from(O,e=>e?yl:null)}),Iw=O=>{let e=Er(O,yl);if(!e){let t=[Rs.of(!0)];O.state.field(fQ,!1)==null&&t.push(B.appendConfig.of([fQ,Ew])),O.dispatch({effects:t}),e=Er(O,yl)}return e&&e.dom.querySelector("input").focus(),!0},Ew=z.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Aw={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Pm=_.define({combine(O){return cO(O,Aw,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Dw(O){let e=[Hw,Bw];return O&&e.push(Pm.of(O)),e}const Mw=I.mark({class:"cm-selectionMatch"}),Nw=I.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function QQ(O,e,t,i){return(t==0||O(e.sliceDoc(t-1,t))!=xe.Word)&&(i==e.doc.length||O(e.sliceDoc(i,i+1))!=xe.Word)}function Lw(O,e,t,i){return O(e.sliceDoc(t,t+1))==xe.Word&&O(e.sliceDoc(i-1,i))==xe.Word}const Bw=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.selectionSet||O.docChanged||O.viewportChanged)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=O.state.facet(Pm),{state:t}=O,i=t.selection;if(i.ranges.length>1)return I.none;let r=i.main,n,s=null;if(r.empty){if(!e.highlightWordAroundCursor)return I.none;let a=t.wordAt(r.head);if(!a)return I.none;s=t.charCategorizer(r.head),n=t.sliceDoc(a.from,a.to)}else{let a=r.to-r.from;if(a200)return I.none;if(e.wholeWords){if(n=t.sliceDoc(r.from,r.to),s=t.charCategorizer(r.head),!(QQ(s,t,r.from,r.to)&&Lw(s,t,r.from,r.to)))return I.none}else if(n=t.sliceDoc(r.from,r.to).trim(),!n)return I.none}let o=[];for(let a of O.visibleRanges){let l=new Di(t.doc,n,a.from,a.to);for(;!l.next().done;){let{from:c,to:h}=l.value;if((!s||QQ(s,t,c,h))&&(r.empty&&c<=r.from&&h>=r.to?o.push(Nw.range(c,h)):(c>=r.to||h<=r.from)&&o.push(Mw.range(c,h)),o.length>e.maxMatches))return I.none}}return I.set(o)}},{decorations:O=>O.decorations}),Hw=z.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Fw=({state:O,dispatch:e})=>{let{selection:t}=O,i=X.create(t.ranges.map(r=>O.wordAt(r.head)||X.cursor(r.head)),t.mainIndex);return i.eq(t)?!1:(e(O.update({selection:i})),!0)};function Kw(O,e){let{main:t,ranges:i}=O.selection,r=O.wordAt(t.head),n=r&&r.from==t.from&&r.to==t.to;for(let s=!1,o=new Di(O.doc,e,i[i.length-1].to);;)if(o.next(),o.done){if(s)return null;o=new Di(O.doc,e,0,Math.max(0,i[i.length-1].from-1)),s=!0}else{if(s&&i.some(a=>a.from==o.value.from))continue;if(n){let a=O.wordAt(o.value.from);if(!a||a.from!=o.value.from||a.to!=o.value.to)continue}return o.value}}const Jw=({state:O,dispatch:e})=>{let{ranges:t}=O.selection;if(t.some(n=>n.from===n.to))return Fw({state:O,dispatch:e});let i=O.sliceDoc(t[0].from,t[0].to);if(O.selection.ranges.some(n=>O.sliceDoc(n.from,n.to)!=i))return!1;let r=Kw(O,i);return r?(e(O.update({selection:O.selection.addRange(X.range(r.from,r.to),!1),effects:z.scrollIntoView(r.to)})),!0):!1},zc=_.define({combine(O){return cO(O,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new hW(e)})}});class gm{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Cw(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new iW(this):new tW(this)}getCursor(e,t=0,i){let r=e.doc?e:te.create({doc:e});return i==null&&(i=r.doc.length),this.regexp?Si(this,r,t,i):gi(this,r,t,i)}}class Sm{constructor(e){this.spec=e}}function gi(O,e,t,i){return new Di(e.doc,O.unquoted,t,i,O.caseSensitive?void 0:r=>r.toLowerCase(),O.wholeWord?eW(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function eW(O,e){return(t,i,r,n)=>((n>t||n+r.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=gi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}function Si(O,e,t,i){return new pm(e.doc,O.search,{ignoreCase:!O.caseSensitive,test:O.wholeWord?OW(e.charCategorizer(e.selection.main.head)):void 0},t,i)}function Us(O,e){return O.slice(at(O,e,!1),e)}function Vs(O,e){return O.slice(e,at(O,e))}function OW(O){return(e,t,i)=>!i[0].length||(O(Us(i.input,i.index))!=xe.Word||O(Vs(i.input,i.index))!=xe.Word)&&(O(Vs(i.input,i.index+i[0].length))!=xe.Word||O(Us(i.input,i.index+i[0].length))!=xe.Word)}class iW extends Sm{nextMatch(e,t,i){let r=Si(this.spec,e,i,e.doc.length).next();return r.done&&(r=Si(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-r*1e4),s=Si(this.spec,e,n,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(n==t||o.from>n+10))return o;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Si(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}const Lr=B.define(),_c=B.define(),_O=Ae.define({create(O){return new ea(xl(O).create(),null)},update(O,e){for(let t of e.effects)t.is(Lr)?O=new ea(t.value.create(),O.panel):t.is(_c)&&(O=new ea(O.query,t.value?jc:null));return O},provide:O=>Ar.from(O,e=>e.panel)});class ea{constructor(e,t){this.query=e,this.panel=t}}const rW=I.mark({class:"cm-searchMatch"}),nW=I.mark({class:"cm-searchMatch cm-searchMatch-selected"}),sW=qe.fromClass(class{constructor(O){this.view=O,this.decorations=this.highlight(O.state.field(_O))}update(O){let e=O.state.field(_O);(e!=O.startState.field(_O)||O.docChanged||O.selectionSet||O.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:O,panel:e}){if(!e||!O.spec.valid)return I.none;let{view:t}=this,i=new CO;for(let r=0,n=t.visibleRanges,s=n.length;rn[r+1].from-2*250;)a=n[++r].to;O.highlight(t.state,o,a,(l,c)=>{let h=t.state.selection.ranges.some(Q=>Q.from==l&&Q.to==c);i.add(l,c,h?nW:rW)})}return i.finish()}},{decorations:O=>O.decorations});function hn(O){return e=>{let t=e.state.field(_O,!1);return t&&t.query.spec.valid?O(e,t):Xm(e)}}const zs=hn((O,{query:e})=>{let{to:t}=O.state.selection.main,i=e.nextMatch(O.state,t,t);return i?(O.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:Gc(O,i),userEvent:"select.search"}),!0):!1}),_s=hn((O,{query:e})=>{let{state:t}=O,{from:i}=t.selection.main,r=e.prevMatch(t,i,i);return r?(O.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:Gc(O,r),userEvent:"select.search"}),!0):!1}),oW=hn((O,{query:e})=>{let t=e.matchAll(O.state,1e3);return!t||!t.length?!1:(O.dispatch({selection:X.create(t.map(i=>X.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),aW=({state:O,dispatch:e})=>{let t=O.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:r}=t.main,n=[],s=0;for(let o=new Di(O.doc,O.sliceDoc(i,r));!o.next().done;){if(n.length>1e3)return!1;o.value.from==i&&(s=n.length),n.push(X.range(o.value.from,o.value.to))}return e(O.update({selection:X.create(n,s),userEvent:"select.search.matches"})),!0},uQ=hn((O,{query:e})=>{let{state:t}=O,{from:i,to:r}=t.selection.main;if(t.readOnly)return!1;let n=e.nextMatch(t,i,i);if(!n)return!1;let s=[],o,a,l=[];if(n.from==i&&n.to==r&&(a=t.toText(e.getReplacement(n)),s.push({from:n.from,to:n.to,insert:a}),n=e.nextMatch(t,n.from,n.to),l.push(z.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),n){let c=s.length==0||s[0].from>=n.to?0:n.to-n.from-a.length;o={anchor:n.from-c,head:n.to-c},l.push(Gc(O,n))}return O.dispatch({changes:s,selection:o,scrollIntoView:!!o,effects:l,userEvent:"input.replace"}),!0}),lW=hn((O,{query:e})=>{if(O.state.readOnly)return!1;let t=e.matchAll(O.state,1e9).map(r=>{let{from:n,to:s}=r;return{from:n,to:s,insert:e.getReplacement(r)}});if(!t.length)return!1;let i=O.state.phrase("replaced $ matches",t.length)+".";return O.dispatch({changes:t,effects:z.announce.of(i),userEvent:"input.replace.all"}),!0});function jc(O){return O.state.facet(zc).createPanel(O)}function xl(O,e){var t,i,r,n;let s=O.selection.main,o=s.empty||s.to>s.from+100?"":O.sliceDoc(s.from,s.to);if(e&&!o)return e;let a=O.facet(zc);return new gm({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:a.literal)?o:o.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:a.caseSensitive,literal:(r=e==null?void 0:e.literal)!==null&&r!==void 0?r:a.literal,wholeWord:(n=e==null?void 0:e.wholeWord)!==null&&n!==void 0?n:a.wholeWord})}const Xm=O=>{let e=O.state.field(_O,!1);if(e&&e.panel){let t=Er(O,jc);if(!t)return!1;let i=t.dom.querySelector("[main-field]");if(i&&i!=O.root.activeElement){let r=xl(O.state,e.query.spec);r.valid&&O.dispatch({effects:Lr.of(r)}),i.focus(),i.select()}}else O.dispatch({effects:[_c.of(!0),e?Lr.of(xl(O.state,e.query.spec)):B.appendConfig.of(QW)]});return!0},ym=O=>{let e=O.state.field(_O,!1);if(!e||!e.panel)return!1;let t=Er(O,jc);return t&&t.dom.contains(O.root.activeElement)&&O.focus(),O.dispatch({effects:_c.of(!1)}),!0},cW=[{key:"Mod-f",run:Xm,scope:"editor search-panel"},{key:"F3",run:zs,shift:_s,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:zs,shift:_s,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ym,scope:"editor search-panel"},{key:"Mod-Shift-l",run:aW},{key:"Alt-g",run:Iw},{key:"Mod-d",run:Jw,preventDefault:!0}];class hW{constructor(e){this.view=e;let t=this.query=e.state.field(_O).query.spec;this.commit=this.commit.bind(this),this.searchField=me("input",{value:t.search,placeholder:Pt(e,"Find"),"aria-label":Pt(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=me("input",{value:t.replace,placeholder:Pt(e,"Replace"),"aria-label":Pt(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=me("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=me("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=me("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(r,n,s){return me("button",{class:"cm-button",name:r,onclick:n,type:"button"},s)}this.dom=me("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,i("next",()=>zs(e),[Pt(e,"next")]),i("prev",()=>_s(e),[Pt(e,"previous")]),i("select",()=>oW(e),[Pt(e,"all")]),me("label",null,[this.caseField,Pt(e,"match case")]),me("label",null,[this.reField,Pt(e,"regexp")]),me("label",null,[this.wordField,Pt(e,"by word")]),...e.state.readOnly?[]:[me("br"),this.replaceField,i("replace",()=>uQ(e),[Pt(e,"replace")]),i("replaceAll",()=>lW(e),[Pt(e,"replace all")])],me("button",{name:"close",onclick:()=>ym(e),"aria-label":Pt(e,"close"),type:"button"},["×"])])}commit(){let e=new gm({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Lr.of(e)}))}keydown(e){w1(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?_s:zs)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),uQ(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Lr)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(zc).top}}function Pt(O,e){return O.state.phrase(e)}const _n=30,jn=/[\s\.,:;?!]/;function Gc(O,{from:e,to:t}){let i=O.state.doc.lineAt(e),r=O.state.doc.lineAt(t).to,n=Math.max(i.from,e-_n),s=Math.min(r,t+_n),o=O.state.sliceDoc(n,s);if(n!=i.from){for(let a=0;a<_n;a++)if(!jn.test(o[a+1])&&jn.test(o[a])){o=o.slice(a);break}}if(s!=r){for(let a=o.length-1;a>o.length-_n;a--)if(!jn.test(o[a-1])&&jn.test(o[a])){o=o.slice(0,a);break}}return z.announce.of(`${O.state.phrase("current match")}. ${o} ${O.state.phrase("on line")} ${i.number}.`)}const fW=z.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),QW=[_O,MO.lowest(sW),fW];class xm{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=ue(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),n=r.search(bm(e,!1));return n<0?null:{from:i+n,to:this.pos,text:r.slice(n)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}}function $Q(O){let e=Object.keys(O).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function uW(O){let e=Object.create(null),t=Object.create(null);for(let{label:r}of O){e[r[0]]=!0;for(let n=1;ntypeof r=="string"?{label:r}:r),[t,i]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:uW(e);return r=>{let n=r.matchBefore(i);return n||r.explicit?{from:n?n.from:r.pos,options:e,validFor:t}:null}}function Cc(O,e){return t=>{for(let i=ue(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(O.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}class dQ{constructor(e,t,i){this.completion=e,this.source=t,this.match=i}}function jO(O){return O.selection.main.head}function bm(O,e){var t;let{source:i}=O,r=e&&i[0]!="^",n=i[i.length-1]!="$";return!r&&!n?O:new RegExp(`${r?"^":""}(?:${i})${n?"$":""}`,(t=O.flags)!==null&&t!==void 0?t:O.ignoreCase?"i":"")}const wm=xO.define();function $W(O,e,t,i){return Object.assign(Object.assign({},O.changeByRange(r=>{if(r==O.selection.main)return{changes:{from:t,to:i,insert:e},range:X.cursor(t+e.length)};let n=i-t;return!r.empty||n&&O.sliceDoc(r.from-n,r.from)!=O.sliceDoc(t,i)?{range:r}:{changes:{from:r.from-n,to:r.from,insert:e},range:X.cursor(r.from-n+e.length)}})),{userEvent:"input.complete"})}function Wm(O,e){const t=e.completion.apply||e.completion.label;let i=e.source;typeof t=="string"?O.dispatch(Object.assign(Object.assign({},$W(O.state,t,i.from,i.to)),{annotations:wm.of(e.completion)})):t(O,e.completion,i.from,i.to)}const pQ=new WeakMap;function dW(O){if(!Array.isArray(O))return O;let e=pQ.get(O);return e||pQ.set(O,e=po(O)),e}class pW{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t=48&&Y<=57||Y>=97&&Y<=122?2:Y>=65&&Y<=90?1:0:(Z=cc(Y))!=Z.toLowerCase()?1:Z!=Z.toUpperCase()?2:0;(!y||E==1&&p||b==0&&E!=0)&&(t[h]==Y||i[h]==Y&&(Q=!0)?s[h++]=y:s.length&&(P=!1)),b=E,y+=wt(Y)}return h==a&&s[0]==0&&P?this.result(-100+(Q?-200:0),s,e):u==a&&$==0?[-200-e.length+(d==e.length?0:-100),0,d]:o>-1?[-700-e.length,o,o+this.pattern.length]:u==a?[-200+-700-e.length,$,d]:h==a?this.result(-100+(Q?-200:0)+-700+(P?0:-1100),s,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,i){let r=[e-i.length],n=1;for(let s of t){let o=s+(this.astral?wt(Be(i,s)):1);n>1&&r[n-1]==s?r[n-1]=o:(r[n++]=s,r[n++]=o)}return r}}const Zt=_.define({combine(O){return cO(O,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>mQ(e(i),t(i)),optionClass:(e,t)=>i=>mQ(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})}});function mQ(O,e){return O?e?O+" "+e:O:e}function mW(O){let e=O.addToOptions.slice();return O.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,r){let n=document.createElement("span");n.className="cm-completionLabel";let{label:s}=t,o=0;for(let a=1;ao&&n.appendChild(document.createTextNode(s.slice(o,l)));let h=n.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(s.slice(l,c))),h.className="cm-completionMatchedText",o=c}return ot.position-i.position).map(t=>t.render)}function PQ(O,e,t){if(O<=t)return{from:0,to:O};if(e<0&&(e=0),e<=O>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let i=Math.floor((O-e)/t);return{from:O-(i+1)*t,to:O-i*t}}class PW{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:o=>this.positionInfo(o),key:this},this.space=null,this.currentClass="";let i=e.state.field(t),{options:r,selected:n}=i.open,s=e.state.facet(Zt);this.optionContent=mW(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=PQ(r.length,n,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",o=>{for(let a=o.target,l;a&&a!=this.dom;a=a.parentNode)if(a.nodeName=="LI"&&(l=/-(\d+)$/.exec(a.id))&&+l[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){var t,i,r;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);this.updateTooltipClass(e.state),n!=s&&(this.updateSel(),((t=n.open)===null||t===void 0?void 0:t.disabled)!=((i=s.open)===null||i===void 0?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((r=n.open)===null||r===void 0)&&r.disabled)))}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=PQ(t.options.length,t.selected,this.view.state.facet(Zt).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:i}=t.options[t.selected],{info:r}=i;if(!r)return;let n=typeof r=="string"?document.createTextNode(r):r(i);if(!n)return;"then"in n?n.then(s=>{s&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(s)}).catch(s=>xt(this.view.state,s,"completion info")):this.addInfoPane(n)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&SW(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),n=this.space;if(!n){let $=this.dom.ownerDocument.defaultView||window;n={left:0,top:0,right:$.innerWidth,bottom:$.innerHeight}}if(r.top>Math.min(n.bottom,t.bottom)-10||r.bottom=i.height||$>t.top?c=r.bottom-t.top+"px":h=t.bottom-r.top+"px"}return{top:c,bottom:h,maxWidth:l,class:a?s?"left-narrow":"right-narrow":o?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,i){const r=document.createElement("ul");r.id=t,r.setAttribute("role","listbox"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let n=i.from;nnew PW(e,O)}function SW(O,e){let t=O.getBoundingClientRect(),i=e.getBoundingClientRect();i.topt.bottom&&(O.scrollTop+=i.bottom-t.bottom)}function gQ(O){return(O.boost||0)*100+(O.apply?10:0)+(O.info?5:0)+(O.type?1:0)}function XW(O,e){let t=[],i=0;for(let o of O)if(o.hasResult())if(o.result.filter===!1){let a=o.result.getMatch;for(let l of o.result.options){let c=[1e9-i++];if(a)for(let h of a(l))c.push(h);t.push(new dQ(l,o,c))}}else{let a=new pW(e.sliceDoc(o.from,o.to)),l;for(let c of o.result.options)(l=a.match(c.label))&&(c.boost!=null&&(l[0]+=c.boost),t.push(new dQ(c,o,l)))}let r=[],n=null,s=e.facet(Zt).compareCompletions;for(let o of t.sort((a,l)=>l.match[0]-a.match[0]||s(a.completion,l.completion)))!n||n.label!=o.completion.label||n.detail!=o.completion.detail||n.type!=null&&o.completion.type!=null&&n.type!=o.completion.type||n.apply!=o.completion.apply?r.push(o):gQ(o.completion)>gQ(n)&&(r[r.length-1]=o),n=o.completion;return r}class bi{constructor(e,t,i,r,n,s){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=r,this.selected=n,this.disabled=s}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new bi(this.options,SQ(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,n){let s=XW(e,t);if(!s.length)return r&&e.some(a=>a.state==1)?new bi(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let o=t.facet(Zt).selectOnOpen?0:-1;if(r&&r.selected!=o&&r.selected!=-1){let a=r.options[r.selected].completion;for(let l=0;ll.hasResult()?Math.min(a,l.from):a,1e8),create:gW(bt),above:n.aboveCursor},r?r.timestamp:Date.now(),o,!1)}map(e){return new bi(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class js{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new js(bW,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Zt),n=(i.override||t.languageDataAt("autocomplete",jO(t)).map(dW)).map(o=>(this.active.find(l=>l.source==o)||new ut(o,this.active.some(l=>l.state!=0)?1:0)).update(e,i));n.length==this.active.length&&n.every((o,a)=>o==this.active[a])&&(n=this.active);let s=this.open;s&&e.docChanged&&(s=s.map(e.changes)),e.selection||n.some(o=>o.hasResult()&&e.changes.touchesRange(o.from,o.to))||!yW(n,this.active)?s=bi.build(n,t,this.id,s,i):s&&s.disabled&&!n.some(o=>o.state==1)&&(s=null),!s&&n.every(o=>o.state!=1)&&n.some(o=>o.hasResult())&&(n=n.map(o=>o.hasResult()?new ut(o.source,0):o));for(let o of e.effects)o.is(Ym)&&(s=s&&s.setSelected(o.value,this.id));return n==this.active&&s==this.open?this:new js(n,this.id,s)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:xW}}function yW(O,e){if(O==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=O+"-"+e),t}const bW=[];function bl(O){return O.isUserEvent("input.type")?"input":O.isUserEvent("delete.backward")?"delete":null}class ut{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=bl(e),r=this;i?r=r.handleUserEvent(e,i,t):e.docChanged?r=r.handleChange(e):e.selection&&r.state!=0&&(r=new ut(r.source,0));for(let n of e.effects)if(n.is(Ic))r=new ut(r.source,1,n.value?jO(e.state):-1);else if(n.is(Gs))r=new ut(r.source,0);else if(n.is(Tm))for(let s of n.value)s.source==r.source&&(r=s);return r}handleUserEvent(e,t,i){return t=="delete"||!i.activateOnTyping?this.map(e.changes):new ut(this.source,1)}handleChange(e){return e.changes.touchesRange(jO(e.startState))?new ut(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ut(this.source,this.state,e.mapPos(this.explicitPos))}}class br extends ut{constructor(e,t,i,r,n){super(e,2,t),this.result=i,this.from=r,this.to=n}hasResult(){return!0}handleUserEvent(e,t,i){var r;let n=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1),o=jO(e.state);if((this.explicitPos<0?o<=n:os||t=="delete"&&jO(e.startState)==this.from)return new ut(this.source,t=="input"&&i.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),l;return wW(this.result.validFor,e.state,n,s)?new br(this.source,a,this.result,n,s):this.result.update&&(l=this.result.update(this.result,n,s,new xm(e.state,o,a>=0)))?new br(this.source,a,l,l.from,(r=l.to)!==null&&r!==void 0?r:jO(e.state)):new ut(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ut(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new br(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function wW(O,e,t,i){if(!O)return!1;let r=e.sliceDoc(t,i);return typeof O=="function"?O(r,t,i,e):bm(O,!0).test(r)}const Ic=B.define(),Gs=B.define(),Tm=B.define({map(O,e){return O.map(t=>t.map(e))}}),Ym=B.define(),bt=Ae.define({create(){return js.start()},update(O,e){return O.update(e)},provide:O=>[gc.from(O,e=>e.tooltip),z.contentAttributes.from(O,e=>e.attrs)]});function Gn(O,e="option"){return t=>{let i=t.state.field(bt,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+r*(O?1:-1):O?0:s-1;return o<0?o=e=="page"?0:s-1:o>=s&&(o=e=="page"?s-1:0),t.dispatch({effects:Ym.of(o)}),!0}}const WW=O=>{let e=O.state.field(bt,!1);return O.state.readOnly||!e||!e.open||e.open.selected<0||Date.now()-e.open.timestampO.state.field(bt,!1)?(O.dispatch({effects:Ic.of(!0)}),!0):!1,YW=O=>{let e=O.state.field(bt,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(O.dispatch({effects:Gs.of(null)}),!0)};class vW{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const XQ=50,qW=50,kW=1e3,ZW=qe.fromClass(class{constructor(O){this.view=O,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of O.state.field(bt).active)e.state==1&&this.startQuery(e)}update(O){let e=O.state.field(bt);if(!O.selectionSet&&!O.docChanged&&O.startState.field(bt)==e)return;let t=O.transactions.some(i=>(i.selection||i.docChanged)&&!bl(i));for(let i=0;iqW&&Date.now()-r.time>kW){for(let n of r.context.abortListeners)try{n()}catch(s){xt(this.view.state,s)}r.context.abortListeners=null,this.running.splice(i--,1)}else r.updates.push(...O.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(i=>i.state==1&&!this.running.some(r=>r.active.source==i.source))?setTimeout(()=>this.startUpdate(),XQ):-1,this.composing!=0)for(let i of O.transactions)bl(i)=="input"?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:O}=this.view,e=O.field(bt);for(let t of e.active)t.state==1&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t)}startQuery(O){let{state:e}=this.view,t=jO(e),i=new xm(e,t,O.explicitPos==t),r=new vW(O,i);this.running.push(r),Promise.resolve(O.source(i)).then(n=>{r.context.aborted||(r.done=n||null,this.scheduleAccept())},n=>{this.view.dispatch({effects:Gs.of(null)}),xt(this.view.state,n)})}scheduleAccept(){this.running.every(O=>O.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),XQ))}accept(){var O;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Zt);for(let i=0;is.source==r.active.source);if(n&&n.state==1)if(r.done==null){let s=new ut(r.active.source,0);for(let o of r.updates)s=s.update(o,t);s.state!=1&&e.push(s)}else this.startQuery(n)}e.length&&this.view.dispatch({effects:Tm.of(e)})}},{eventHandlers:{blur(){let O=this.view.state.field(bt,!1);O&&O.tooltip&&this.view.state.facet(Zt).closeOnBlur&&this.view.dispatch({effects:Gs.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ic.of(!1)}),20),this.composing=0}}}),vm=z.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:`${400}px`,boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`${30}px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`${30}px`},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class RW{constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}}class Ec{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,Fe.TrackDel),i=e.mapPos(this.to,1,Fe.TrackDel);return t==null||i==null?null:new Ec(this.field,t,i)}}class Ac{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],n=e.doc.lineAt(t),s=/^\s*/.exec(n.text)[0];for(let a of this.lines){if(i.length){let l=s,c=/^\t*/.exec(a)[0].length;for(let h=0;hnew Ec(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:i,ranges:o}}static parse(e){let t=[],i=[],r=[],n;for(let s of e.split(/\r\n?|\n/)){for(;n=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let o=n[1]?+n[1]:null,a=n[2]||n[3]||"",l=-1;for(let c=0;c=l&&h.field++}r.push(new RW(l,i.length,n.index,n.index+a.length)),s=s.slice(0,n.index)+a+s.slice(n.index+n[0].length)}for(let o;o=/\\([{}])/.exec(s);){s=s.slice(0,o.index)+o[1]+s.slice(o.index+o[0].length);for(let a of r)a.line==i.length&&a.from>o.index&&(a.from--,a.to--)}i.push(s)}return new Ac(i,r)}}let UW=I.widget({widget:new class extends hO{toDOM(){let O=document.createElement("span");return O.className="cm-snippetFieldPosition",O}ignoreEvent(){return!1}}}),VW=I.mark({class:"cm-snippetField"});class er{constructor(e,t){this.ranges=e,this.active=t,this.deco=I.set(e.map(i=>(i.from==i.to?UW:VW).range(i.from,i.to)))}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new er(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}}const fn=B.define({map(O,e){return O&&O.map(e)}}),zW=B.define(),Br=Ae.define({create(){return null},update(O,e){for(let t of e.effects){if(t.is(fn))return t.value;if(t.is(zW)&&O)return new er(O.ranges,t.value)}return O&&e.docChanged&&(O=O.map(e.changes)),O&&e.selection&&!O.selectionInsideField(e.selection)&&(O=null),O},provide:O=>z.decorations.from(O,e=>e?e.deco:I.none)});function Dc(O,e){return X.create(O.filter(t=>t.field==e).map(t=>X.range(t.from,t.to)))}function _W(O){let e=Ac.parse(O);return(t,i,r,n)=>{let{text:s,ranges:o}=e.instantiate(t.state,r),a={changes:{from:r,to:n,insert:le.of(s)},scrollIntoView:!0,annotations:wm.of(i)};if(o.length&&(a.selection=Dc(o,0)),o.length>1){let l=new er(o,0),c=a.effects=[fn.of(l)];t.state.field(Br,!1)===void 0&&c.push(B.appendConfig.of([Br,EW,AW,vm]))}t.dispatch(t.state.update(a))}}function qm(O){return({state:e,dispatch:t})=>{let i=e.field(Br,!1);if(!i||O<0&&i.active==0)return!1;let r=i.active+O,n=O>0&&!i.ranges.some(s=>s.field==r+O);return t(e.update({selection:Dc(i.ranges,r),effects:fn.of(n?null:new er(i.ranges,r))})),!0}}const jW=({state:O,dispatch:e})=>O.field(Br,!1)?(e(O.update({effects:fn.of(null)})),!0):!1,GW=qm(1),CW=qm(-1),IW=[{key:"Tab",run:GW,shift:CW},{key:"Escape",run:jW}],yQ=_.define({combine(O){return O.length?O[0]:IW}}),EW=MO.highest(Ki.compute([yQ],O=>O.facet(yQ)));function Re(O,e){return Object.assign(Object.assign({},e),{apply:_W(O)})}const AW=z.domEventHandlers({mousedown(O,e){let t=e.state.field(Br,!1),i;if(!t||(i=e.posAtCoords({x:O.clientX,y:O.clientY}))==null)return!1;let r=t.ranges.find(n=>n.from<=i&&n.to>=i);return!r||r.field==t.active?!1:(e.dispatch({selection:Dc(t.ranges,r.field),effects:fn.of(t.ranges.some(n=>n.field>r.field)?new er(t.ranges,r.field):null)}),!0)}}),Hr={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ai=B.define({map(O,e){let t=e.mapPos(O,-1,Fe.TrackAfter);return t??void 0}}),Mc=B.define({map(O,e){return e.mapPos(O)}}),Nc=new class extends fi{};Nc.startSide=1;Nc.endSide=-1;const km=Ae.define({create(){return ce.empty},update(O,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,i=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(i,-1)&&(O=ce.empty)}O=O.map(e.changes);for(let t of e.effects)t.is(ai)?O=O.update({add:[Nc.range(t.value,t.value+1)]}):t.is(Mc)&&(O=O.update({filter:i=>i!=t.value}));return O}});function DW(){return[NW,km]}const ta="()[]{}<>";function Zm(O){for(let e=0;e{if((MW?O.composing:O.compositionStarted)||O.state.readOnly)return!1;let r=O.state.selection.main;if(i.length>2||i.length==2&&wt(Be(i,0))==1||e!=r.from||t!=r.to)return!1;let n=HW(O.state,i);return n?(O.dispatch(n),!0):!1}),LW=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let i=Rm(O,O.selection.main.head).brackets||Hr.brackets,r=null,n=O.changeByRange(s=>{if(s.empty){let o=FW(O.doc,s.head);for(let a of i)if(a==o&&mo(O.doc,s.head)==Zm(Be(a,0)))return{changes:{from:s.head-a.length,to:s.head+a.length},range:X.cursor(s.head-a.length)}}return{range:r=s}});return r||e(O.update(n,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},BW=[{key:"Backspace",run:LW}];function HW(O,e){let t=Rm(O,O.selection.main.head),i=t.brackets||Hr.brackets;for(let r of i){let n=Zm(Be(r,0));if(e==r)return n==r?e0(O,r,i.indexOf(r+r+r)>-1,t):KW(O,r,n,t.before||Hr.before);if(e==n&&Um(O,O.selection.main.from))return JW(O,r,n)}return null}function Um(O,e){let t=!1;return O.field(km).between(0,O.doc.length,i=>{i==e&&(t=!0)}),t}function mo(O,e){let t=O.sliceString(e,e+2);return t.slice(0,wt(Be(t,0)))}function FW(O,e){let t=O.sliceString(e-2,e);return wt(Be(t,0))==t.length?t:t.slice(1)}function KW(O,e,t,i){let r=null,n=O.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:t,from:s.to}],effects:ai.of(s.to+e.length),range:X.range(s.anchor+e.length,s.head+e.length)};let o=mo(O.doc,s.head);return!o||/\s/.test(o)||i.indexOf(o)>-1?{changes:{insert:e+t,from:s.head},effects:ai.of(s.head+e.length),range:X.cursor(s.head+e.length)}:{range:r=s}});return r?null:O.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function JW(O,e,t){let i=null,r=O.selection.ranges.map(n=>n.empty&&mo(O.doc,n.head)==t?X.cursor(n.head+t.length):i=n);return i?null:O.update({selection:X.create(r,O.selection.mainIndex),scrollIntoView:!0,effects:O.selection.ranges.map(({from:n})=>Mc.of(n))})}function e0(O,e,t,i){let r=i.stringPrefixes||Hr.stringPrefixes,n=null,s=O.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:e,from:o.to}],effects:ai.of(o.to+e.length),range:X.range(o.anchor+e.length,o.head+e.length)};let a=o.head,l=mo(O.doc,a),c;if(l==e){if(xQ(O,a))return{changes:{insert:e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)};if(Um(O,a)){let h=t&&O.sliceDoc(a,a+e.length*3)==e+e+e;return{range:X.cursor(a+e.length*(h?3:1)),effects:Mc.of(a)}}}else{if(t&&O.sliceDoc(a-2*e.length,a)==e+e&&(c=bQ(O,a-2*e.length,r))>-1&&xQ(O,c))return{changes:{insert:e+e+e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)};if(O.charCategorizer(a)(l)!=xe.Word&&bQ(O,a,r)>-1&&!t0(O,a,e,r))return{changes:{insert:e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)}}return{range:n=o}});return n?null:O.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function xQ(O,e){let t=ue(O).resolveInner(e+1);return t.parent&&t.from==e}function t0(O,e,t,i){let r=ue(O).resolveInner(e,-1),n=i.reduce((s,o)=>Math.max(s,o.length),0);for(let s=0;s<5;s++){let o=O.sliceDoc(r.from,Math.min(r.to,r.from+t.length+n)),a=o.indexOf(t);if(!a||a>-1&&i.indexOf(o.slice(0,a))>-1){let c=r.firstChild;for(;c&&c.from==r.from&&c.to-c.from>t.length+a;){if(O.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let l=r.to==e&&r.parent;if(!l)break;r=l}return!1}function bQ(O,e,t){let i=O.charCategorizer(e);if(i(O.sliceDoc(e-1,e))!=xe.Word)return e;for(let r of t){let n=e-r.length;if(O.sliceDoc(n,e)==r&&i(O.sliceDoc(n-1,n))!=xe.Word)return n}return-1}function O0(O={}){return[bt,Zt.of(O),ZW,i0,vm]}const Vm=[{key:"Ctrl-Space",run:TW},{key:"Escape",run:YW},{key:"ArrowDown",run:Gn(!0)},{key:"ArrowUp",run:Gn(!1)},{key:"PageDown",run:Gn(!0,"page")},{key:"PageUp",run:Gn(!1,"page")},{key:"Enter",run:WW}],i0=MO.highest(Ki.computeN([Zt],O=>O.facet(Zt).defaultKeymap?[Vm]:[]));class r0{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class ri{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=e,n=i.facet(wi).markerFilter;n&&(r=n(r));let s=I.set(r.map(o=>o.from==o.to||o.from==o.to-1&&i.doc.lineAt(o.from).to==o.from?I.widget({widget:new u0(o),diagnostic:o}).range(o.from):I.mark({attributes:{class:"cm-lintRange cm-lintRange-"+o.severity},diagnostic:o}).range(o.from,o.to)),!0);return new ri(s,t,Mi(s))}}function Mi(O,e=null,t=0){let i=null;return O.between(t,1e9,(r,n,{spec:s})=>{if(!(e&&s.diagnostic!=e))return i=new r0(r,n,s.diagnostic),!1}),i}function n0(O,e){return!!(O.effects.some(t=>t.is(Lc))||O.changes.touchesRange(e.pos))}function zm(O,e){return O.field(yt,!1)?e:e.concat(B.appendConfig.of([yt,z.decorations.compute([yt],t=>{let{selected:i,panel:r}=t.field(yt);return!i||!r||i.from==i.to?I.none:I.set([o0.range(i.from,i.to)])}),Qx(a0,{hideOn:n0}),d0]))}function s0(O,e){return{effects:zm(O,[Lc.of(e)])}}const Lc=B.define(),Bc=B.define(),_m=B.define(),yt=Ae.define({create(){return new ri(I.none,null,null)},update(O,e){if(e.docChanged){let t=O.diagnostics.map(e.changes),i=null;if(O.selected){let r=e.changes.mapPos(O.selected.from,1);i=Mi(t,O.selected.diagnostic,r)||Mi(t,null,r)}O=new ri(t,O.panel,i)}for(let t of e.effects)t.is(Lc)?O=ri.init(t.value,O.panel,e.state):t.is(Bc)?O=new ri(O.diagnostics,t.value?Po.open:null,O.selected):t.is(_m)&&(O=new ri(O.diagnostics,O.panel,t.value));return O},provide:O=>[Ar.from(O,e=>e.panel),z.decorations.from(O,e=>e.diagnostics)]}),o0=I.mark({class:"cm-lintRange cm-lintRange-active"});function a0(O,e,t){let{diagnostics:i}=O.state.field(yt),r=[],n=2e8,s=0;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,l,{spec:c})=>{e>=a&&e<=l&&(a==l||(e>a||t>0)&&(eGm(O,t,!1)))}const c0=O=>{let e=O.state.field(yt,!1);(!e||!e.panel)&&O.dispatch({effects:zm(O.state,[Bc.of(!0)])});let t=Er(O,Po.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},wQ=O=>{let e=O.state.field(yt,!1);return!e||!e.panel?!1:(O.dispatch({effects:Bc.of(!1)}),!0)},h0=O=>{let e=O.state.field(yt,!1);if(!e)return!1;let t=O.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(O.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},f0=[{key:"Mod-Shift-m",run:c0,preventDefault:!0},{key:"F8",run:h0}],Q0=qe.fromClass(class{constructor(O){this.view=O,this.timeout=-1,this.set=!0;let{delay:e}=O.state.facet(wi);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let O=Date.now();if(OPromise.resolve(i(this.view)))).then(i=>{let r=i.reduce((n,s)=>n.concat(s));this.view.state.doc==e.doc&&this.view.dispatch(s0(this.view.state,r))},i=>{xt(this.view.state,i)})}}update(O){let e=O.state.facet(wi);(O.docChanged||e!=O.startState.facet(wi)||e.needsRefresh&&e.needsRefresh(O))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),wi=_.define({combine(O){return Object.assign({sources:O.map(e=>e.source)},cO(O.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t}))},enables:Q0});function jm(O){let e=[];if(O)e:for(let{name:t}of O){for(let i=0;in.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function Gm(O,e,t){var i;let r=t?jm(e.actions):[];return me("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},me("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(i=e.actions)===null||i===void 0?void 0:i.map((n,s)=>{let o=!1,a=Q=>{if(Q.preventDefault(),o)return;o=!0;let u=Mi(O.state.field(yt).diagnostics,e);u&&n.apply(O,u.from,u.to)},{name:l}=n,c=r[s]?l.indexOf(r[s]):-1,h=c<0?l:[l.slice(0,c),me("u",l.slice(c,c+1)),l.slice(c+1)];return me("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${l}${c<0?"":` (access key "${r[s]})"`}.`},h)}),e.source&&me("div",{class:"cm-diagnosticSource"},e.source))}class u0 extends hO{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return me("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class WQ{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Gm(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Po{constructor(e){this.view=e,this.items=[];let t=r=>{if(r.keyCode==27)wQ(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],s=jm(n.actions);for(let o=0;o{for(let n=0;nwQ(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(yt).selected;if(!e)return-1;for(let t=0;t{let l=-1,c;for(let h=i;hi&&(this.items.splice(i,l-i),r=!0)),t&&c.diagnostic==t.diagnostic?c.dom.hasAttribute("aria-selected")||(c.dom.setAttribute("aria-selected","true"),n=c):c.dom.hasAttribute("aria-selected")&&c.dom.removeAttribute("aria-selected"),i++});i({sel:n.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:o})=>{s.topo.bottom&&(this.list.scrollTop+=s.bottom-o.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(yt),i=Mi(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:_m.of(i)})}static open(e){return new Po(e)}}function $0(O,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(O)}')`}function Oa(O){return $0(``,'width="6" height="3"')}const d0=z.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Oa("#d11")},".cm-lintRange-warning":{backgroundImage:Oa("orange")},".cm-lintRange-info":{backgroundImage:Oa("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),p0=(()=>[yx(),wx(),E1(),Cb(),ub(),k1(),z1(),te.allowMultipleSelections.of(!0),ib(),kp(mb,{fallback:!0}),bb(),DW(),O0(),ix(),sx(),B1(),Dw(),Ki.of([...BW,...jw,...cW,...Hb,...hb,...Vm,...f0])])();/*! -* VueCodemirror v6.1.1 -* Copyright (c) Surmon. All rights reserved. -* Released under the MIT License. -* Surmon -*/var m0=Object.freeze({autofocus:!1,disabled:!1,indentWithTab:!0,tabSize:2,placeholder:"",autoDestroy:!0,extensions:[p0]}),P0=Symbol("vue-codemirror-global-config"),ot,g0=function(O){var e=O.onUpdate,t=O.onChange,i=O.onFocus,r=O.onBlur,n=function(s,o){var a={};for(var l in s)Object.prototype.hasOwnProperty.call(s,l)&&o.indexOf(l)<0&&(a[l]=s[l]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var c=0;for(l=Object.getOwnPropertySymbols(s);ct%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new Cs(e,[],t,i,i,0,[],0,r?new YQ(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=e&65535,{parser:n}=this.p,s=n.dynamicPrecedence(r);if(s&&(this.score+=s),i==0){this.pushState(n.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,i,r=4,n=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&s.buffer[o-4]==0&&s.buffer[o-1]>-1){if(t==i)return;if(s.buffer[o-2]>=t){s.buffer[o-2]=i;return}}}if(!n||this.pos==i)this.buffer.push(e,t,i,r);else{let s=this.buffer.length;if(s>0&&this.buffer[s-4]!=0)for(;s>0&&this.buffer[s-2]>i;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,r>4&&(r-=4);this.buffer[s]=e,this.buffer[s+1]=t,this.buffer[s+2]=i,this.buffer[s+3]=r}}shift(e,t,i){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=i,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,i,4);else{let n=e,{parser:s}=this.p;(i>this.pos||t<=s.maxNode)&&(this.pos=i,s.stateFlag(n,1)||(this.reducePos=i)),this.pushState(n,r),this.shiftContext(t,r),t<=s.maxNode&&this.buffer.push(t,r,i,4)}}apply(e,t,i){e&65536?this.reduce(e):this.shift(e,t,i)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Cs(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new W0(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if(!(i&65536))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let r=[];for(let n=0,s;na&1&&o==s)||r.push(t[n],s)}t=r}let i=[];for(let r=0;r>19,r=e&65535,n=this.stack.length-i*3;if(n<0||t.getGoto(this.stack[n],r,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class YQ{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}var vQ;(function(O){O[O.Insert=200]="Insert",O[O.Delete=190]="Delete",O[O.Reduce=100]="Reduce",O[O.MaxNext=4]="MaxNext",O[O.MaxInsertStackDepth=300]="MaxInsertStackDepth",O[O.DampenInsertStackDepth=120]="DampenInsertStackDepth",O[O.MinBigReduction=2e3]="MinBigReduction"})(vQ||(vQ={}));class W0{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class Is{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Is(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Is(this.stack,this.pos,this.index)}}function pr(O,e=Uint16Array){if(typeof O!="string")return O;let t=null;for(let i=0,r=0;i=92&&s--,s>=34&&s--;let a=s-32;if(a>=46&&(a-=46,o=!0),n+=a,o)break;n*=46}t?t[r++]=n:t=new e(n)}return t}class os{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const qQ=new os;class T0{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=qQ,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,n=this.pos+e;for(;ni.to:n>=i.to;){if(r==this.ranges.length-1)return null;let s=this.ranges[++r];n+=s.from-i.to,i=s}return n}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,r;if(t>=0&&t=this.chunk2Pos&&io.to&&(this.chunk2=this.chunk2.slice(0,o.to-i)),r=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),r}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=qQ,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}}class Ui{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Im(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}Ui.prototype.contextual=Ui.prototype.fallback=Ui.prototype.extend=!1;class pO{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data=typeof e=="string"?pr(e):e}token(e,t){let i=e.pos,r;for(;r=e.pos,Im(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(r+1,e.token)}r>i&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r-i))}}pO.prototype.contextual=Ui.prototype.fallback=Ui.prototype.extend=!1;class de{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Im(O,e,t,i,r,n){let s=0,o=1<0){let $=O[u];if(a.allows($)&&(e.token.value==-1||e.token.value==$||Y0($,e.token.value,r,n))){e.acceptToken($);break}}let c=e.next,h=0,Q=O[s+2];if(e.next<0&&Q>h&&O[l+Q*3-3]==65535&&O[l+Q*3-3]==65535){s=O[l+Q*3-1];continue e}for(;h>1,$=l+u+(u<<1),d=O[$],p=O[$+1]||65536;if(c=p)h=u+1;else{s=O[$+2],e.advance();continue e}}break}}function kQ(O,e,t){for(let i=e,r;(r=O[i])!=65535;i++)if(r==t)return i-e;return-1}function Y0(O,e,t,i){let r=kQ(t,i,e);return r<0||kQ(t,i,O)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(O.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:O.length}}let v0=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?RQ(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?RQ(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=s,null;if(n instanceof he){if(s==e){if(s=Math.max(this.safeFrom,e)&&(this.trees.push(n),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+n.length}}};class q0{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new os)}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:n}=r,s=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,a=0;for(let l=0;lh.end+25&&(a=Math.max(h.lookAhead,a)),h.value!=0)){let Q=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!c.extend&&(i=h,t>Q))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new os,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new os,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:n}=i.p;for(let s=0;s=0&&i.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let n=0;ne.bufferLength*4?new v0(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],r,n;if(this.bigReductionCount>300&&e.length==1){let[s]=e;for(;s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;st)i.push(o);else{if(this.advanceStack(o,i,e))continue;{r||(r=[],n=[]),r.push(o);let a=this.tokens.getMainToken(o);n.push(a.value,a.end)}}break}}if(!i.length){let s=r&&R0(r);if(s)return this.stackToTree(s);if(this.parser.strict)throw zt&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let s=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,n,i);if(s)return this.stackToTree(s.forceAll())}if(this.recovering){let s=this.recovering==1?1:this.recovering*3;if(i.length>s)for(i.sort((o,a)=>a.score-o.score);i.length>s;)i.pop();i.some(o=>o.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let s=0;s500&&l.buffer.length>500)if((o.score-l.score||o.buffer.length-l.buffer.length)>0)i.splice(a--,1);else{i.splice(s--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let s=1;s ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,c=l?e.curContext.hash:0;for(let h=this.fragments.nodeAt(r);h;){let Q=this.parser.nodeSet.types[h.type.id]==h.type?n.getGoto(e.state,h.type.id):-1;if(Q>-1&&h.length&&(!l||(h.prop(M.contextHash)||0)==c))return e.useNode(h,Q),zt&&console.log(s+this.stackID(e)+` (via reuse of ${n.getName(h.type.id)})`),!0;if(!(h instanceof he)||h.children.length==0||h.positions[0]>0)break;let u=h.children[0];if(u instanceof he&&h.positions[0]==0)h=u;else break}}let o=n.stateSlot(e.state,4);if(o>0)return e.reduce(o),zt&&console.log(s+this.stackID(e)+` (via always-reduce ${n.getName(o&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let l=0;lr?t.push($):i.push($)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return VQ(e,t),!0}}runRecovery(e,t,i){let r=null,n=!1;for(let s=0;s ":"";if(o.deadEnd&&(n||(n=!0,o.restart(),zt&&console.log(c+this.stackID(o)+" (restarted)"),this.advanceFully(o,i))))continue;let h=o.split(),Q=c;for(let u=0;h.forceReduce()&&u<10&&(zt&&console.log(Q+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));u++)zt&&(Q=this.stackID(h)+" -> ");for(let u of o.recoverByInsert(a))zt&&console.log(c+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,i);this.stream.end>o.pos?(l==o.pos&&(l++,a=0),o.recoverByDelete(a,l),zt&&console.log(c+this.stackID(o)+` (via recover-delete ${this.parser.getName(a)})`),VQ(o,i)):(!r||r.scoreO;class go{constructor(e){this.start=e.start,this.shift=e.shift||ra,this.reduce=e.reduce||ra,this.reuse=e.reuse||ra,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Ee extends wc{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${14})`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let o=0;oe.topRules[o][1]),r=[];for(let o=0;o=0)n(c,a,o[l++]);else{let h=o[l+-c];for(let Q=-c;Q>0;Q--)n(o[l++],a,h);l++}}}this.nodeSet=new on(t.map((o,a)=>je.define({name:a>=this.minRepeatTerm?void 0:o,id:a,props:r[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=dp;let s=pr(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new Ui(s,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new k0(this,e,t,i);for(let n of this.wrappers)r=n(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let n=r[t+1];;){let s=r[n++],o=s&1,a=r[n++];if(o&&i)return a;for(let l=n+(s>>1);n0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=mO(this.data,i+2);else return!1;if(t==mO(this.data,i+1))return!0}}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=mO(this.data,i+2);else break;if(!(this.data[i+2]&1)){let r=this.data[i+1];t.some((n,s)=>s&1&&n==r)||t.push(this.data[i],r)}}return t}configure(e){let t=Object.assign(Object.create(Ee.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let r=e.tokenizers.find(n=>n.from==i);return r?r.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,r)=>{let n=e.specializers.find(o=>o.from==i.external);if(!n)return i;let s=Object.assign(Object.assign({},i),{external:n.to});return t.specializers[r]=zQ(s),s})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let n of e.split(" ")){let s=t.indexOf(n);s>=0&&(i[s]=!0)}let r=null;for(let n=0;ni)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoreO.external(t,i)<<1|e}return O.get}const _Q=301,jQ=1,U0=2,GQ=302,V0=304,z0=305,_0=3,j0=4,G0=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Em=125,C0=59,CQ=47,I0=42,E0=43,A0=45,D0=new go({start:!1,shift(O,e){return e==_0||e==j0||e==V0?O:e==z0},strict:!1}),M0=new de((O,e)=>{let{next:t}=O;(t==Em||t==-1||e.context)&&e.canShift(GQ)&&O.acceptToken(GQ)},{contextual:!0,fallback:!0}),N0=new de((O,e)=>{let{next:t}=O,i;G0.indexOf(t)>-1||t==CQ&&((i=O.peek(1))==CQ||i==I0)||t!=Em&&t!=C0&&t!=-1&&!e.context&&e.canShift(_Q)&&O.acceptToken(_Q)},{contextual:!0}),L0=new de((O,e)=>{let{next:t}=O;if((t==E0||t==A0)&&(O.advance(),t==O.next)){O.advance();let i=!e.context&&e.canShift(jQ);O.acceptToken(i?jQ:U0)}},{contextual:!0}),B0=De({"get set async static":f.modifier,"for while do if else switch try catch finally return throw break continue default case":f.controlKeyword,"in of await yield void typeof delete instanceof":f.operatorKeyword,"let var const function class extends":f.definitionKeyword,"import export from":f.moduleKeyword,"with debugger as new":f.keyword,TemplateString:f.special(f.string),super:f.atom,BooleanLiteral:f.bool,this:f.self,null:f.null,Star:f.modifier,VariableName:f.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":f.function(f.variableName),VariableDefinition:f.definition(f.variableName),Label:f.labelName,PropertyName:f.propertyName,PrivatePropertyName:f.special(f.propertyName),"CallExpression/MemberExpression/PropertyName":f.function(f.propertyName),"FunctionDeclaration/VariableDefinition":f.function(f.definition(f.variableName)),"ClassDeclaration/VariableDefinition":f.definition(f.className),PropertyDefinition:f.definition(f.propertyName),PrivatePropertyDefinition:f.definition(f.special(f.propertyName)),UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Number:f.number,String:f.string,Escape:f.escape,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,RegExp:f.regexp,Equals:f.definitionOperator,Arrow:f.function(f.punctuation),": Spread":f.punctuation,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,"InterpolationStart InterpolationEnd":f.special(f.brace),".":f.derefOperator,", ;":f.separator,"@":f.meta,TypeName:f.typeName,TypeDefinition:f.definition(f.typeName),"type enum interface implements namespace module declare":f.definitionKeyword,"abstract global Privacy readonly override":f.modifier,"is keyof unique infer":f.operatorKeyword,JSXAttributeValue:f.attributeValue,JSXText:f.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":f.angleBracket,"JSXIdentifier JSXNameSpacedName":f.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":f.attributeName,"JSXBuiltin/JSXIdentifier":f.standard(f.tagName)}),H0={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:219,private:219,protected:219,readonly:221,instanceof:240,satisfies:243,in:244,const:246,import:278,keyof:333,unique:337,infer:343,is:379,abstract:399,implements:401,type:403,let:406,var:408,interface:415,enum:419,namespace:425,module:427,declare:431,global:435,for:456,of:465,while:468,with:472,do:476,if:480,else:482,switch:486,case:492,try:498,catch:502,finally:506,return:510,throw:514,break:518,continue:522,debugger:526},F0={__proto__:null,async:117,get:119,set:121,public:181,private:181,protected:181,static:183,abstract:185,override:187,readonly:193,accessor:195,new:383},K0={__proto__:null,"<":137},J0=Ee.deserialize({version:14,states:"$BhO`QUOOO%QQUOOO'TQWOOP(_OSOOO*mQ(CjO'#CfO*tOpO'#CgO+SO!bO'#CgO+bO07`O'#DZO-sQUO'#DaO.TQUO'#DlO%QQUO'#DvO0[QUO'#EOOOQ(CY'#EW'#EWO0rQSO'#ETOOQO'#I_'#I_O0zQSO'#GjOOQO'#Eh'#EhO1VQSO'#EgO1[QSO'#EgO3^Q(CjO'#JbO5}Q(CjO'#JcO6kQSO'#FVO6pQ#tO'#FnOOQ(CY'#F_'#F_O6{O&jO'#F_O7ZQ,UO'#FuO8qQSO'#FtOOQ(CY'#Jc'#JcOOQ(CW'#Jb'#JbOOQQ'#J|'#J|O8vQSO'#IOO8{Q(C[O'#IPOOQQ'#JO'#JOOOQQ'#IT'#ITQ`QUOOO%QQUO'#DnO9TQUO'#DzO%QQUO'#D|O9[QSO'#GjO9aQ,UO'#ClO9oQSO'#EfO9zQSO'#EqO:PQ,UO'#F^O:nQSO'#GjO:sQSO'#GnO;OQSO'#GnO;^QSO'#GqO;^QSO'#GrO;^QSO'#GtO9[QSO'#GwO;}QSO'#GzO=`QSO'#CbO=pQSO'#HXO=xQSO'#H_O=xQSO'#HaO`QUO'#HcO=xQSO'#HeO=xQSO'#HhO=}QSO'#HnO>SQ(C]O'#HtO%QQUO'#HvO>_Q(C]O'#HxO>jQ(C]O'#HzO8{Q(C[O'#H|O>uQ(CjO'#CfO?wQWO'#DfQOQSOOO@_QSO'#EPO9aQ,UO'#EfO@jQSO'#EfO@uQ`O'#F^OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jf'#JfO%QQUO'#JfOBOQWO'#E_OOQ(CW'#E^'#E^OBYQ(C`O'#E_OBtQWO'#ESOOQO'#Ji'#JiOCYQWO'#ESOCgQWO'#E_OC}QWO'#EeODQQWO'#E_O@}QWO'#E_OBtQWO'#E_PDkO?MpO'#C`POOO)CDm)CDmOOOO'#IU'#IUODvOpO,59ROOQ(CY,59R,59ROOOO'#IV'#IVOEUO!bO,59RO%QQUO'#D]OOOO'#IX'#IXOEdO07`O,59uOOQ(CY,59u,59uOErQUO'#IYOFVQSO'#JdOHXQbO'#JdO+pQUO'#JdOH`QSO,59{OHvQSO'#EhOITQSO'#JqOI`QSO'#JpOI`QSO'#JpOIhQSO,5;UOImQSO'#JoOOQ(CY,5:W,5:WOItQUO,5:WOKuQ(CjO,5:bOLfQSO,5:jOLkQSO'#JmOMeQ(C[O'#JnO:sQSO'#JmOMlQSO'#JmOMtQSO,5;TOMyQSO'#JmOOQ(CY'#Cf'#CfO%QQUO'#EOONmQ`O,5:oOOQO'#Jj'#JjOOQO-E<]-E<]O9[QSO,5=UO! TQSO,5=UO! YQUO,5;RO!#]Q,UO'#EcO!$pQSO,5;RO!&YQ,UO'#DpO!&aQUO'#DuO!&kQWO,5;[O!&sQWO,5;[O%QQUO,5;[OOQQ'#E}'#E}OOQQ'#FP'#FPO%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]OOQQ'#FT'#FTO!'RQUO,5;nOOQ(CY,5;s,5;sOOQ(CY,5;t,5;tO!)UQSO,5;tOOQ(CY,5;u,5;uO%QQUO'#IeO!)^Q(C[O,5jOOQQ'#JW'#JWOOQQ,5>k,5>kOOQQ-EgQWO'#EkOOQ(CW'#Jo'#JoO!>nQ(C[O'#J}O8{Q(C[O,5=YO;^QSO,5=`OOQO'#Cr'#CrO!>yQWO,5=]O!?RQ,UO,5=^O!?^QSO,5=`O!?cQ`O,5=cO=}QSO'#G|O9[QSO'#HOO!?kQSO'#HOO9aQ,UO'#HRO!?pQSO'#HROOQQ,5=f,5=fO!?uQSO'#HSO!?}QSO'#ClO!@SQSO,58|O!@^QSO,58|O!BfQUO,58|OOQQ,58|,58|O!BsQ(C[O,58|O%QQUO,58|O!COQUO'#HZOOQQ'#H['#H[OOQQ'#H]'#H]O`QUO,5=sO!C`QSO,5=sO`QUO,5=yO`QUO,5={O!CeQSO,5=}O`QUO,5>PO!CjQSO,5>SO!CoQUO,5>YOOQQ,5>`,5>`O%QQUO,5>`O8{Q(C[O,5>bOOQQ,5>d,5>dO!GvQSO,5>dOOQQ,5>f,5>fO!GvQSO,5>fOOQQ,5>h,5>hO!G{QWO'#DXO%QQUO'#JfO!HjQWO'#JfO!IXQWO'#DgO!IjQWO'#DgO!K{QUO'#DgO!LSQSO'#JeO!L[QSO,5:QO!LaQSO'#ElO!LoQSO'#JrO!LwQSO,5;VO!L|QWO'#DgO!MZQWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO!MbQSO,5:kO=}QSO,5;QO!;xQWO,5;QO!tO+pQUO,5>tOOQO,5>z,5>zO#$vQUO'#IYOOQO-EtO$8XQSO1G5jO$8aQSO1G5vO$8iQbO1G5wO:sQSO,5>zO$8sQSO1G5sO$8sQSO1G5sO:sQSO1G5sO$8{Q(CjO1G5tO%QQUO1G5tO$9]Q(C[O1G5tO$9nQSO,5>|O:sQSO,5>|OOQO,5>|,5>|O$:SQSO,5>|OOQO-E<`-E<`OOQO1G0]1G0]OOQO1G0_1G0_O!)XQSO1G0_OOQQ7+([7+([O!#]Q,UO7+([O%QQUO7+([O$:bQSO7+([O$:mQ,UO7+([O$:{Q(CjO,59nO$=TQ(CjO,5UOOQQ,5>U,5>UO%QQUO'#HkO%&qQSO'#HmOOQQ,5>[,5>[O:sQSO,5>[OOQQ,5>^,5>^OOQQ7+)`7+)`OOQQ7+)f7+)fOOQQ7+)j7+)jOOQQ7+)l7+)lO%&vQWO1G5lO%'[Q$IUO1G0rO%'fQSO1G0rOOQO1G/m1G/mO%'qQ$IUO1G/mO=}QSO1G/mO!'RQUO'#DgOOQO,5>u,5>uOOQO-E{,5>{OOQO-E<_-E<_O!;xQWO1G/mOOQO-E<[-E<[OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO!MeQSO7+%qOOQ(CY7+&W7+&WO=}QSO7+&WO!;xQWO7+&WOOQO7+%t7+%tO$7kQ(CjO7+&POOQO7+&P7+&PO%QQUO7+&PO%'{Q(C[O7+&PO=}QSO7+%tO!;xQWO7+%tO%(WQ(C[O7+&POBtQWO7+%tO%(fQ(C[O7+&PO%(zQ(C`O7+&PO%)UQWO7+%tOBtQWO7+&PO%)cQWO7+&PO%)yQSO7++_O%)yQSO7++_O%*RQ(CjO7++`O%QQUO7++`OOQO1G4h1G4hO:sQSO1G4hO%*cQSO1G4hOOQO7+%y7+%yO!MeQSO<vOOQO-EwO%QQUO,5>wOOQO-ESQ$IUO1G0wO%>ZQ$IUO1G0wO%@RQ$IUO1G0wO%@fQ(CjO<VOOQQ,5>X,5>XO&#WQSO1G3vO:sQSO7+&^O!'RQUO7+&^OOQO7+%X7+%XO&#]Q$IUO1G5wO=}QSO7+%XOOQ(CY<zAN>zO%QQUOAN?VO=}QSOAN>zO&<^Q(C[OAN?VO!;xQWOAN>zO&zO&RO!V+iO^(qX'j(qX~O#W+mO'|%OO~Og+pO!X$yO'|%OO~O!X+rO~Oy+tO!XXO~O!t+yO~Ob,OO~O's#jO!W(sP~Ob%lO~O%a!OO's%|O~PRO!V,yO!W(fa~O!W2SO~P'TO^%^O#W2]O'j%^O~O^%^O!a#rO#W2]O'j%^O~O^%^O!a#rO!h%ZO!l2aO#W2]O'j%^O'|%OO(`'dO~O!]2bO!^2bO't!iO~PBtO![2eO!]2bO!^2bO#S2fO#T2fO't!iO~PBtO![2eO!]2bO!^2bO#P2gO#S2fO#T2fO't!iO~PBtO^%^O!a#rO!l2aO#W2]O'j%^O(`'dO~O^%^O'j%^O~P!3jO!V$^Oo$ja~O!S&|i!V&|i~P!3jO!V'xO!S(Wi~O!V(PO!S(di~O!S(ei!V(ei~P!3jO!V(]O!g(ai~O!V(bi!g(bi^(bi'j(bi~P!3jO#W2kO!V(bi!g(bi^(bi'j(bi~O|%vO!X%wO!x]O#a2nO#b2mO's%eO~O|%vO!X%wO#b2mO's%eO~Og2uO!X'QO%`2tO~Og2uO!X'QO%`2tO'|%OO~O#cvaPvaXva^vakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva'jva(Qva(`va!gva!Sva'hvaova!Xva%`va!ava~P#M{O#c$kaP$kaX$ka^$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka'j$ka(Q$ka(`$ka!g$ka!S$ka'h$kao$ka!X$ka%`$ka!a$ka~P#NqO#c$maP$maX$ma^$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma'j$ma(Q$ma(`$ma!g$ma!S$ma'h$mao$ma!X$ma%`$ma!a$ma~P$ dO#c${aP${aX${a^${ak${az${a!V${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a'j${a(Q${a(`${a!g${a!S${a'h${a#W${ao${a!X${a%`${a!a${a~P#(yO^#Zq!V#Zq'j#Zq'h#Zq!S#Zq!g#Zqo#Zq!X#Zq%`#Zq!a#Zq~P!3jOd'OX!V'OX~P!$uO!V._Od(Za~O!U2}O!V'PX!g'PX~P%QO!V.bO!g([a~O!V.bO!g([a~P!3jO!S3QO~O#x!ja!W!ja~PI{O#x!ba!V!ba!W!ba~P#?dO#x!na!W!na~P!6TO#x!pa!W!pa~P!8nO!X3dO$TfO$^3eO~O!W3iO~Oo3jO~P#(yO^$gq!V$gq'j$gq'h$gq!S$gq!g$gqo$gq!X$gq%`$gq!a$gq~P!3jO!S3kO~Ol.}O'uTO'xUO~Oy)sO|)tO(h)xOg%Wi(g%Wi!V%Wi#W%Wi~Od%Wi#x%Wi~P$HbOy)sO|)tOg%Yi(g%Yi(h%Yi!V%Yi#W%Yi~Od%Yi#x%Yi~P$ITO(`$WO~P#(yO!U3nO's%eO!V'YX!g'YX~O!V/VO!g(ma~O!V/VO!a#rO!g(ma~O!V/VO!a#rO(`'dO!g(ma~Od$ti!V$ti#W$ti#x$ti~P!-jO!U3vO's*UO!S'[X!V'[X~P!.XO!V/_O!S(na~O!V/_O!S(na~P#(yO!a#rO~O!a#rO#n4OO~Ok4RO!a#rO(`'dO~Od(Oi!V(Oi~P!-jO#W4UOd(Oi!V(Oi~P!-jO!g4XO~O^$hq!V$hq'j$hq'h$hq!S$hq!g$hqo$hq!X$hq%`$hq!a$hq~P!3jO!V4]O!X(oX~P#(yO!f#tO~P3zO!X$rX%TYX^$rX!V$rX'j$rX~P!,aO%T4_OghXyhX|hX!XhX(ghX(hhX^hX!VhX'jhX~O%T4_O~O%a4fO's+WO'uTO'xUO!V'eX!W'eX~O!V0_O!W(ua~OX4jO~O]4kO~O!S4oO~O^%^O'j%^O~P#(yO!X$yO~P#(yO!V4tO#W4vO!W(rX~O!W4wO~Ol!kO|4yO![5WO!]4}O!^4}O!x;oO!|5VO!}5UO#O5UO#P5TO#S5SO#T!wO't!iO'uTO'xUO(T!jO(_!nO~O!W5RO~P%#XOg5]O!X0zO%`5[O~Og5]O!X0zO%`5[O'|%OO~O's#jO!V'dX!W'dX~O!V1VO!W(sa~O'uTO'xUO(T5fO~O]5jO~O!g5mO~P%QO^5oO~O^5oO~P%QO#n5qO&Q5rO~PMPO_1mO!W5vO&`1lO~P`O!a5xO~O!a5zO!V(Yi!W(Yi!a(Yi!h(Yi'|(Yi~O!V#`i!W#`i~P#?dO#W5{O!V#`i!W#`i~O!V!Zi!W!Zi~P#?dO^%^O#W6UO'j%^O~O^%^O!a#rO#W6UO'j%^O~O^%^O!a#rO!l6ZO#W6UO'j%^O(`'dO~O!h%ZO'|%OO~P%(fO!]6[O!^6[O't!iO~PBtO![6_O!]6[O!^6[O#S6`O#T6`O't!iO~PBtO!V(]O!g(aq~O!V(bq!g(bq^(bq'j(bq~P!3jO|%vO!X%wO#b6dO's%eO~O!X'QO%`6gO~Og6jO!X'QO%`6gO~O#c%WiP%WiX%Wi^%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi'j%Wi(Q%Wi(`%Wi!g%Wi!S%Wi'h%Wio%Wi!X%Wi%`%Wi!a%Wi~P$HbO#c%YiP%YiX%Yi^%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi'j%Yi(Q%Yi(`%Yi!g%Yi!S%Yi'h%Yio%Yi!X%Yi%`%Yi!a%Yi~P$ITO#c$tiP$tiX$ti^$tik$tiz$ti!V$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti'j$ti(Q$ti(`$ti!g$ti!S$ti'h$ti#W$tio$ti!X$ti%`$ti!a$ti~P#(yOd'Oa!V'Oa~P!-jO!V'Pa!g'Pa~P!3jO!V.bO!g([i~O#x#Zi!V#Zi!W#Zi~P#?dOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(QVOX#eik#ei!e#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~O#f#ei~P%2xO#f;wO~P%2xOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO(QVOX#ei!e#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~Ok#ei~P%5TOk;yO~P%5TOP$YOk;yOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO#j;zO(QVO#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~OX#ei!e#ei#k#ei#l#ei#m#ei#n#ei~P%7`OXbO^#vy!V#vy'j#vy'h#vy!S#vy!g#vyo#vy!X#vy%`#vy!a#vy~P!3jOg=jOy)sO|)tO(g)vO(h)xO~OP#eiX#eik#eiz#ei!e#ei!f#ei!h#ei!l#ei#f#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(Q#ei(`#ei!V#ei!W#ei~P%AYO!f#tOP(PXX(PXg(PXk(PXy(PXz(PX|(PX!e(PX!h(PX!l(PX#f(PX#g(PX#h(PX#i(PX#j(PX#k(PX#l(PX#m(PX#n(PX#p(PX#r(PX#t(PX#u(PX#x(PX(Q(PX(`(PX(g(PX(h(PX!V(PX!W(PX~O#x#yi!V#yi!W#yi~P#?dO#x!ni!W!ni~P$!qO!W6vO~O!V'Xa!W'Xa~P#?dO!a#rO(`'dO!V'Ya!g'Ya~O!V/VO!g(mi~O!V/VO!a#rO!g(mi~Od$tq!V$tq#W$tq#x$tq~P!-jO!S'[a!V'[a~P#(yO!a6}O~O!V/_O!S(ni~P#(yO!V/_O!S(ni~O!S7RO~O!a#rO#n7WO~Ok7XO!a#rO(`'dO~O!S7ZO~Od$vq!V$vq#W$vq#x$vq~P!-jO^$hy!V$hy'j$hy'h$hy!S$hy!g$hyo$hy!X$hy%`$hy!a$hy~P!3jO!V4]O!X(oa~O^#Zy!V#Zy'j#Zy'h#Zy!S#Zy!g#Zyo#Zy!X#Zy%`#Zy!a#Zy~P!3jOX7`O~O!V0_O!W(ui~O]7fO~O!a5zO~O(T(qO!V'aX!W'aX~O!V4tO!W(ra~O!h%ZO'|%OO^(YX!a(YX!l(YX#W(YX'j(YX(`(YX~O's7oO~P.[O!x;oO!|7rO!}7qO#O7qO#P7pO#S'bO#T'bO~PBtO^%^O!a#rO!l'hO#W'fO'j%^O(`'dO~O!W7vO~P%#XOl!kO'uTO'xUO(T!jO(_!nO~O|7wO~P%MdO![7{O!]7zO!^7zO#P7pO#S'bO#T'bO't!iO~PBtO![7{O!]7zO!^7zO!}7|O#O7|O#P7pO#S'bO#T'bO't!iO~PBtO!]7zO!^7zO't!iO(T!jO(_!nO~O!X0zO~O!X0zO%`8OO~Og8RO!X0zO%`8OO~OX8WO!V'da!W'da~O!V1VO!W(si~O!g8[O~O!g8]O~O!g8^O~O!g8^O~P%QO^8`O~O!a8cO~O!g8dO~O!V(ei!W(ei~P#?dO^%^O#W8lO'j%^O~O^%^O!a#rO#W8lO'j%^O~O^%^O!a#rO!l8pO#W8lO'j%^O(`'dO~O!h%ZO'|%OO~P&$QO!]8qO!^8qO't!iO~PBtO!V(]O!g(ay~O!V(by!g(by^(by'j(by~P!3jO!X'QO%`8uO~O#c$tqP$tqX$tq^$tqk$tqz$tq!V$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq'j$tq(Q$tq(`$tq!g$tq!S$tq'h$tq#W$tqo$tq!X$tq%`$tq!a$tq~P#(yO#c$vqP$vqX$vq^$vqk$vqz$vq!V$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq'j$vq(Q$vq(`$vq!g$vq!S$vq'h$vq#W$vqo$vq!X$vq%`$vq!a$vq~P#(yO!V'Pi!g'Pi~P!3jO#x#Zq!V#Zq!W#Zq~P#?dOy/yOz/yO|/zOPvaXvagvakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva#xva(Qva(`va(gva(hva!Vva!Wva~Oy)sO|)tOP$kaX$kag$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka#x$ka(Q$ka(`$ka(g$ka(h$ka!V$ka!W$ka~Oy)sO|)tOP$maX$mag$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma#x$ma(Q$ma(`$ma(g$ma(h$ma!V$ma!W$ma~OP${aX${ak${az${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a#x${a(Q${a(`${a!V${a!W${a~P%AYO#x$gq!V$gq!W$gq~P#?dO#x$hq!V$hq!W$hq~P#?dO!W9PO~O#x9QO~P!-jO!a#rO!V'Yi!g'Yi~O!a#rO(`'dO!V'Yi!g'Yi~O!V/VO!g(mq~O!S'[i!V'[i~P#(yO!V/_O!S(nq~O!S9WO~P#(yO!S9WO~Od(Oy!V(Oy~P!-jO!V'_a!X'_a~P#(yO!X%Sq^%Sq!V%Sq'j%Sq~P#(yOX9]O~O!V0_O!W(uq~O#W9aO!V'aa!W'aa~O!V4tO!W(ri~P#?dOPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#WYX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!a%QX#n%QX~P&6lO#S-cO#T-cO~PBtO#P9eO#S-cO#T-cO~PBtO!}9fO#O9fO#P9eO#S-cO#T-cO~PBtO!]9iO!^9iO't!iO(T!jO(_!nO~O![9lO!]9iO!^9iO#P9eO#S-cO#T-cO't!iO~PBtO!X0zO%`9oO~O'uTO'xUO(T9tO~O!V1VO!W(sq~O!g9wO~O!g9wO~P%QO!g9yO~O!g9zO~O#W9|O!V#`y!W#`y~O!V#`y!W#`y~P#?dO^%^O#W:QO'j%^O~O^%^O!a#rO#W:QO'j%^O~O^%^O!a#rO!l:UO#W:QO'j%^O(`'dO~O!X'QO%`:XO~O#x#vy!V#vy!W#vy~P#?dOP$tiX$tik$tiz$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti#x$ti(Q$ti(`$ti!V$ti!W$ti~P%AYOy)sO|)tO(h)xOP%WiX%Wig%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi#x%Wi(Q%Wi(`%Wi(g%Wi!V%Wi!W%Wi~Oy)sO|)tOP%YiX%Yig%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi#x%Yi(Q%Yi(`%Yi(g%Yi(h%Yi!V%Yi!W%Yi~O#x$hy!V$hy!W$hy~P#?dO#x#Zy!V#Zy!W#Zy~P#?dO!a#rO!V'Yq!g'Yq~O!V/VO!g(my~O!S'[q!V'[q~P#(yO!S:`O~P#(yO!V0_O!W(uy~O!V4tO!W(rq~O#S2fO#T2fO~PBtO#P:gO#S2fO#T2fO~PBtO!]:kO!^:kO't!iO(T!jO(_!nO~O!X0zO%`:nO~O!g:qO~O^%^O#W:vO'j%^O~O^%^O!a#rO#W:vO'j%^O~O!X'QO%`:{O~OP$tqX$tqk$tqz$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq#x$tq(Q$tq(`$tq!V$tq!W$tq~P%AYOP$vqX$vqk$vqz$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq#x$vq(Q$vq(`$vq!V$vq!W$vq~P%AYOd%[!Z!V%[!Z#W%[!Z#x%[!Z~P!-jO!V'aq!W'aq~P#?dO#S6`O#T6`O~PBtO!V#`!Z!W#`!Z~P#?dO^%^O#W;ZO'j%^O~O#c%[!ZP%[!ZX%[!Z^%[!Zk%[!Zz%[!Z!V%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z'j%[!Z(Q%[!Z(`%[!Z!g%[!Z!S%[!Z'h%[!Z#W%[!Zo%[!Z!X%[!Z%`%[!Z!a%[!Z~P#(yOP%[!ZX%[!Zk%[!Zz%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z#x%[!Z(Q%[!Z(`%[!Z!V%[!Z!W%[!Z~P%AYOo(UX~P1dO't!iO~P!'RO!ScX!VcX#WcX~P&6lOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#WYX#WcX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!acX!gYX!gcX(`cX~P'!sOP;nOQ;nOa=_Ob!fOikOk;nOlkOmkOskOu;nOw;nO|WO!QkO!RkO!XXO!c;qO!hZO!k;nO!l;nO!m;nO!o;rO!q;sO!t!eO$P!hO$TfO's)RO'uTO'xUO(QVO(_[O(l=]O~O!Vv!>v!BnPPP!BuHdPPPPPPPPPPP!FTP!GiPPHd!HyPHdPHdHdHdHdPHd!J`PP!MiP#!nP#!r#!|##Q##QP!MfP##U##UP#&ZP#&_HdHd#&e#)iAQPAQPAQAQP#*sAQAQ#,mAQ#.zAQ#0nAQAQ#1[#3W#3W#3[#3d#3W#3lP#3WPAQ#4hAQ#5pAQAQ6iPPP#6{PP#7e#7eP#7eP#7z#7ePP#8QP#7wP#7w#8d!1p#7w#9O#9U6f(}#9X(}P#9`#9`#9`P(}P(}P(}P(}PP(}P#9f#9iP#9i(}P#9mP#9pP(}P(}P(}P(}P(}P(}(}PP#9v#9|#:W#:^#:d#:j#:p#;O#;U#;[#;f#;l#b#?r#@Q#@W#@^#@d#@j#@t#@z#AQ#A[#An#AtPPPPPPPPPP#AzPPPPPPP#Bn#FYP#Gu#G|#HUPPPP#L`$ U$'t$'w$'z$)w$)z$)}$*UPP$*[$*`$+X$,X$,]$,qPP$,u$,{$-PP$-S$-W$-Z$.P$.g$.l$.o$.r$.x$.{$/P$/TR!yRmpOXr!X#a%]&d&f&g&i,^,c1g1jU!pQ'Q-OQ%ctQ%kwQ%rzQ&[!TS&x!c,vQ'W!f[']!m!r!s!t!u!vS*[$y*aQ+U%lQ+c%tQ+}&UQ,|'PQ-W'XW-`'^'_'`'aQ/p*cQ1U,OU2b-b-d-eS4}0z5QS6[2e2gU7z5U5V5WQ8q6_S9i7{7|Q:k9lR TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:362,context:D0,nodeProps:[["group",-26,6,14,16,62,198,202,205,206,208,211,214,225,227,233,235,237,239,242,248,254,256,258,260,262,264,265,"Statement",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,102,103,112,113,130,133,135,136,137,138,140,141,161,162,164,"Expression",-23,24,26,30,34,36,38,165,167,169,170,172,173,174,176,177,178,180,181,182,192,194,196,197,"Type",-3,84,95,101,"ClassItem"],["openedBy",31,"InterpolationStart",50,"[",54,"{",69,"(",142,"JSXStartTag",154,"JSXStartTag JSXStartCloseTag"],["closedBy",33,"InterpolationEnd",44,"]",55,"}",70,")",143,"JSXSelfCloseEndTag JSXEndTag",159,"JSXEndTag"]],propSources:[B0],skippedNodes:[0,3,4,268],repeatNodeCount:32,tokenData:"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$c&j'vpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'vpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'vp'y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$c&j'vp'y!b'l(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'w#S$c&j'm(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$c&j'vp'y!b'm(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$c&j!l$Ip'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'u$(n$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$c&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$^#t$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$^#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$^#t$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'y!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$^#t'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}st%Ztu`k$c&j'vp'y!b(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$c&j'vp'y!b$V#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$c&j'vp'y!b#h$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$c&j#z$Id'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(h%Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$c&j'vp'y!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$c&j#x%Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$c&j'vp'y!b'm(;d(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P",tokenizers:[N0,L0,2,3,4,5,6,7,8,9,10,11,12,13,M0,new pO("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(S~~",141,325),new pO("j~RQYZXz{^~^O'p~~aP!P!Qd~iO'q~~",25,307)],topRules:{Script:[0,5],SingleExpression:[1,266],SingleClassItem:[2,267]},dialects:{jsx:13213,ts:13215},dynamicPrecedences:{76:1,78:1,162:1,190:1},specialized:[{term:311,get:O=>H0[O]||-1},{term:327,get:O=>F0[O]||-1},{term:67,get:O=>K0[O]||-1}],tokenPrec:13238}),eT=[Re("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Re("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Re("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Re("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Re("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Re(`try { - \${} -} catch (\${error}) { - \${} -}`,{label:"try",detail:"/ catch block",type:"keyword"}),Re("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Re(`if (\${}) { - \${} -} else { - \${} -}`,{label:"if",detail:"/ else block",type:"keyword"}),Re(`class \${name} { - constructor(\${params}) { - \${} - } -}`,{label:"class",detail:"definition",type:"keyword"}),Re('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Re('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],IQ=new bc,Am=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function ar(O){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,O),!0}}const tT=["FunctionDeclaration"],OT={FunctionDeclaration:ar("function"),ClassDeclaration:ar("class"),ClassExpression:()=>!0,EnumDeclaration:ar("constant"),TypeAliasDeclaration:ar("type"),NamespaceDeclaration:ar("namespace"),VariableDefinition(O,e){O.matchContext(tT)||e(O,"variable")},TypeDefinition(O,e){e(O,"type")},__proto__:null};function Dm(O,e){let t=IQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(Pe.IncludeAnonymous).iterate(s=>{if(r)r=!1;else if(s.name){let o=OT[s.name];if(o&&o(s,n)||Am.has(s.name))return!1}else if(s.to-s.from>8192){for(let o of Dm(O,s.node))i.push(o);return!1}}),IQ.set(e,i),i}const EQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Mm=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function iT(O){let e=ue(O.state).resolveInner(O.pos,-1);if(Mm.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&EQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)Am.has(r.name)&&(i=i.concat(Dm(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:EQ}}const kt=Ie.define({name:"javascript",parser:J0.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:qc,SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:zO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ce({except:/^{/}),JSXElement(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},JSXEscape(O){let e=/\s*\}/.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"JSXOpenTag JSXSelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ft.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Nm={test:O=>/^JSX/.test(O.name),facet:Wc({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Lm=kt.configure({dialect:"ts"},"typescript"),Bm=kt.configure({dialect:"jsx",props:[Tc.add(O=>O.isTop?[Nm]:void 0)]}),Hm=kt.configure({dialect:"jsx ts",props:[Tc.add(O=>O.isTop?[Nm]:void 0)]},"typescript"),rT="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(O=>({label:O,type:"keyword"}));function Fm(O={}){let e=O.jsx?O.typescript?Hm:Bm:O.typescript?Lm:kt;return new Je(e,[kt.data.of({autocomplete:Cc(Mm,po(eT.concat(rT)))}),kt.data.of({autocomplete:iT}),O.jsx?oT:[]])}function nT(O){for(;;){if(O.name=="JSXOpenTag"||O.name=="JSXSelfClosingTag"||O.name=="JSXFragmentTag")return O;if(!O.parent)return null;O=O.parent}}function AQ(O,e,t=O.length){for(let i=e==null?void 0:e.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return O.sliceString(i.from,Math.min(i.to,t));return""}const sT=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),oT=z.inputHandler.of((O,e,t,i)=>{if((sT?O.composing:O.compositionStarted)||O.state.readOnly||e!=t||i!=">"&&i!="/"||!kt.isActiveAt(O.state,e,-1))return!1;let{state:r}=O,n=r.changeByRange(s=>{var o,a;let{head:l}=s,c=ue(r).resolveInner(l,-1),h;if(c.name=="JSXStartTag"&&(c=c.parent),i==">"&&c.name=="JSXFragmentTag")return{range:X.cursor(l+1),changes:{from:l,insert:">"}};if(i=="/"&&c.name=="JSXFragmentTag"){let Q=c.parent,u=Q==null?void 0:Q.parent;if(Q.from==l-1&&((o=u.lastChild)===null||o===void 0?void 0:o.name)!="JSXEndTag"&&(h=AQ(r.doc,u==null?void 0:u.firstChild,l))){let $=`/${h}>`;return{range:X.cursor(l+$.length),changes:{from:l,insert:$}}}}else if(i==">"){let Q=nT(c);if(Q&&((a=Q.lastChild)===null||a===void 0?void 0:a.name)!="JSXEndTag"&&r.sliceDoc(l,l+2)!="`}}}return{range:s}});return n.changes.empty?!1:(O.dispatch(n,{userEvent:"input.type",scrollIntoView:!0}),!0)}),aT=De({null:f.null,instanceof:f.operatorKeyword,this:f.self,"new super assert open to with void":f.keyword,"class interface extends implements enum var":f.definitionKeyword,"module package import":f.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":f.controlKeyword,["requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws"]:f.modifier,IntegerLiteral:f.integer,FloatingPointLiteral:f.float,"StringLiteral TextBlock":f.string,CharacterLiteral:f.character,LineComment:f.lineComment,BlockComment:f.blockComment,BooleanLiteral:f.bool,PrimitiveType:f.standard(f.typeName),TypeName:f.typeName,Identifier:f.variableName,"MethodName/Identifier":f.function(f.variableName),Definition:f.definition(f.variableName),ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,UpdateOp:f.updateOperator,Asterisk:f.punctuation,Label:f.labelName,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,".":f.derefOperator,", ;":f.separator}),lT={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:236,open:265,module:267,requires:272,transitive:274,exports:276,to:278,opens:280,uses:282,provides:284,with:286,package:290,import:294,if:306,else:308,while:312,for:316,var:323,assert:330,switch:334,case:340,do:344,break:348,continue:352,return:356,throw:362,try:366,catch:370,finally:378},cT=Ee.deserialize({version:14,states:"#!hQ]QPOOO&tQQO'#H[O(xQQO'#CbOOQO'#Cb'#CbO)PQPO'#CaO)XOSO'#CpOOQO'#Ha'#HaOOQO'#Cu'#CuO*tQPO'#D_O+_QQO'#HkOOQO'#Hk'#HkO-sQQO'#HfO-zQQO'#HfOOQO'#Hf'#HfOOQO'#He'#HeO0OQPO'#DUO0]QPO'#GlO3TQPO'#D_O3[QPO'#DzO)PQPO'#E[O3}QPO'#E[OOQO'#DV'#DVO5]QQO'#H_O7dQQO'#EeO7kQPO'#EdO7pQPO'#EfOOQO'#H`'#H`O5sQQO'#H`O8sQQO'#FgO8zQPO'#EwO9PQPO'#E|O9PQPO'#FOOOQO'#H_'#H_OOQO'#HW'#HWOOQO'#Gf'#GfOOQO'#HV'#HVO:aQPO'#FhOOQO'#HU'#HUOOQO'#Ge'#GeQ]QPOOOOQO'#Hq'#HqO:fQPO'#HqO:kQPO'#D{O:kQPO'#EVO:kQPO'#EQO:sQPO'#HnO;UQQO'#EfO)PQPO'#C`O;^QPO'#C`O)PQPO'#FbO;cQPO'#FdO;nQPO'#FjO;nQPO'#FmO:kQPO'#FrO;sQPO'#FoO9PQPO'#FvO;nQPO'#FxO]QPO'#F}O;xQPO'#GPOyOSO,59[OOQO,59[,59[OOQO'#Hg'#HgO?jQPO,59eO@lQPO,59yOOQO-E:d-E:dO)PQPO,58zOA`QPO,58zO)PQPO,5;|OAeQPO'#DQOAjQPO'#DQOOQO'#Gi'#GiOBjQQO,59jOOQO'#Dm'#DmODRQPO'#HsOD]QPO'#DlODkQPO'#HrODsQPO,5<^ODxQPO,59^OEcQPO'#CxOOQO,59c,59cOEjQPO,59bOGrQQO'#H[OJVQQO'#CbOJmQPO'#D_OKrQQO'#HkOLSQQO,59pOLZQPO'#DvOLiQPO'#HzOLqQPO,5:`OLvQPO,5:`OM^QPO,5;mOMiQPO'#IROMtQPO,5;dOMyQPO,5=WOOQO-E:j-E:jOOQO,5:f,5:fO! aQPO,5:fO! hQPO,5:vO! mQPO,5<^O)PQPO,5:vO:kQPO,5:gO:kQPO,5:qO:kQPO,5:lO:kQPO,5<^O!!^QPO,59qO9PQPO,5:}O!!eQPO,5;QO9PQPO,59TO!!sQPO'#DXOOQO,5;O,5;OOOQO'#El'#ElOOQO'#En'#EnO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;eOOQO,5;h,5;hOOQO,5],5>]O!%SQPO,5:gO!%bQPO,5:qO!%jQPO,5:lO!%uQPO,5>YOLZQPO,5>YO! {QPO,59UO!&QQQO,58zO!&YQQO,5;|O!&bQQO,5_O!.ZQPO,5:WO:kQPO'#GnO!.bQPO,5>^OOQO1G1x1G1xOOQO1G.x1G.xO!.{QPO'#CyO!/kQPO'#HkO!/uQPO'#CzO!0TQPO'#HjO!0]QPO,59dOOQO1G.|1G.|OEjQPO1G.|O!0sQPO,59eO!1QQQO'#H[O!1cQQO'#CbOOQO,5:b,5:bO:kQPO,5:cOOQO,5:a,5:aO!1tQQO,5:aOOQO1G/[1G/[O!1yQPO,5:bO!2[QPO'#GqO!2oQPO,5>fOOQO1G/z1G/zO!2wQPO'#DvO!3YQPO'#D_O!3aQPO1G/zO!!zQPO'#GoO!3fQPO1G1XO9PQPO1G1XO:kQPO'#GwO!3nQPO,5>mOOQO1G1O1G1OOOQO1G0Q1G0QO!3vQPO'#E]OOQO1G0b1G0bO!4gQPO1G1xO! hQPO1G0bO!%SQPO1G0RO!%bQPO1G0]O!%jQPO1G0WOOQO1G/]1G/]O!4lQQO1G.pO7kQPO1G0jO)PQPO1G0jO:sQPO'#HnO!6`QQO1G.pOOQO1G.p1G.pO!6eQQO1G0iOOQO1G0l1G0lO!6lQPO1G0lO!6wQQO1G.oO!7_QQO'#HoO!7lQPO,59sO!8{QQO1G0pO!:dQQO1G0pO!;rQQO1G0pO!UOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#1TQQO1G/{OOQO1G/}1G/}O#1YQPO1G/{OOQO1G/|1G/|O:kQPO1G/}OOQO,5=],5=]OOQO-E:o-E:oOOQO7+%f7+%fOOQO,5=Z,5=ZOOQO-E:m-E:mO9PQPO7+&sOOQO7+&s7+&sOOQO,5=c,5=cOOQO-E:u-E:uO#1_QPO'#EUO#1mQPO'#EUOOQO'#Gu'#GuO#2UQPO,5:wOOQO,5:w,5:wOOQO7+'d7+'dOOQO7+%|7+%|OOQO7+%m7+%mO!AYQPO7+%mO!A_QPO7+%mO!AgQPO7+%mOOQO7+%w7+%wO!BVQPO7+%wOOQO7+%r7+%rO!CUQPO7+%rO!CZQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO7kQPO7+&UO7kQPO,5>YO#2uQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO9PQPO'#GjO#3TQPO,5>ZOOQO1G/_1G/_O9PQPO7+&kO#3`QQO,59eO#4cQPO'#DrO! pQPO'#DrO#4nQPO'#HwO#4vQPO,5:]O#5aQQO'#HgO#5|QQO'#CuO! mQPO'#HvO#6lQPO'#DpO#6vQPO'#HvO#7XQPO'#DpO#7aQPO'#IPO#7fQPO'#E`OOQO'#Hp'#HpOOQO'#Gk'#GkO#7nQPO,59vOOQO,59v,59vO#7uQPO'#HqOOQO,5:h,5:hO#9]QPO'#H|OOQO'#EP'#EPOOQO,5:i,5:iO#9hQPO'#EYO:kQPO'#EYO#9yQPO'#H}O#:UQPO,5:sO! mQPO'#HvO!!zQPO'#HvO#:^QPO'#DpOOQO'#Gs'#GsO#:eQPO,5:oOOQO,5:o,5:oOOQO,5:n,5:nOOQO,5;S,5;SO#;_QQO,5;SO#;fQPO,5;SOOQO-E:t-E:tOOQO7+&X7+&XOOQO7+)`7+)`O#;mQQO7+)`OOQO'#Gz'#GzO#=ZQPO,5;rOOQO,5;r,5;rO#=bQPO'#FXO)PQPO'#FXO)PQPO'#FXO)PQPO'#FXO#=pQPO7+'UO#=uQPO7+'UOOQO7+'U7+'UO]QPO7+'[O#>QQPO1G1{O! mQPO1G1{O#>`QQO1G1wO!!sQPO1G1wO#>gQPO1G1wO#>nQQO7+'hOOQO'#G}'#G}O#>uQPO,5|QPO'#HqO9PQPO'#F{O#?UQPO7+'oO#?ZQPO,5=OO! mQPO,5=OO#?`QPO1G2iO#@iQPO1G2iOOQO1G2i1G2iOOQO-E:|-E:|OOQO7+'z7+'zO!2[QPO'#G^OpOOQO1G.n1G.nOOQO<X,5>XOOQO,5=S,5=SOOQO-E:f-E:fO#EjQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<cOOQO1G/w1G/wO#IfQPO'#HsO#ImQPO,59xO#IrQPO,5>bO! mQPO,59xO#I}QPO,5:[O#7fQPO,5:zO! mQPO,5>bO!!zQPO,5>bO#7aQPO,5>kOOQO,5:[,5:[OLvQPO'#DtOOQO,5>k,5>kO#JVQPO'#EaOOQO,5:z,5:zO#MWQPO,5:zO!!zQPO'#DxOOQO-E:i-E:iOOQO1G/b1G/bOOQO,5:y,5:yO!!zQPO'#GrO#M]QPO,5>hOOQO,5:t,5:tO#MhQPO,5:tO#MvQPO,5:tO#NXQPO'#GtO#NoQPO,5>iO#NzQPO'#EZOOQO1G0_1G0_O$ RQPO1G0_O! mQPO,5:pOOQO-E:q-E:qOOQO1G0Z1G0ZOOQO1G0n1G0nO$ WQQO1G0nOOQO<oOOQO1G1Y1G1YO$%uQPO'#FTOOQO,5=e,5=eOOQO-E:w-E:wO$%zQPO'#GmO$&XQPO,5>aOOQO1G/u1G/uOOQO<sAN>sO!AYQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O7kQPOAN?[O$&pQPO,5:_OOQO1G/x1G/xOOQO,5=[,5=[OOQO-E:n-E:nO$&{QPO,5>eOOQO1G/d1G/dOOQO1G3|1G3|O$'^QPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO#MWQPO1G0fO#7aQPO'#HyO$'cQPO1G3|O! mQPO1G3|OOQO1G4V1G4VOK^QPO'#DvOJmQPO'#D_OOQO,5:{,5:{O$'nQPO,5:{O$'nQPO,5:{O$'uQQO'#H_O$'|QQO'#H`O$(WQQO'#EbO$(cQPO'#EbOOQO,5:d,5:dOOQO,5=^,5=^OOQO-E:p-E:pOOQO1G0`1G0`O$(kQPO1G0`OOQO,5=`,5=`OOQO-E:r-E:rO$(yQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1_1G1_O$)QQQO1G1_OOQO-E:y-E:yO$)YQQO'#IWO$)TQPO1G1_O$ mQPO1G1_O)PQPO1G1_OOQOAN@[AN@[O$)eQQO<rO$,cQPO7+&yO$,hQQO'#IXOOQOAN@mAN@mO$,sQQOAN@mOOQOAN@iAN@iO$,zQPOAN@iO$-PQQO<sOOQOG26XG26XOOQOG26TG26TOOQO<bPPP>hP@|PPPAv2vPCoPPDjPEaEgPPPPPPPPPPPPFpGXPJ_JgJqKZKaKgMVMZMZMcPMrNx! k! uP!![NxP!!b!!l!!{!#TP!#r!#|!$SNx!$V!$]EaEa!$a!$k!$n2v!&Y2v2v!(RP.^P!(VP!(vPPPPPP.^P.^!)d.^PP.^P.^PP.^!*x!+SPP!+Y!+cPPPPPPPP&}P&}PP!+g!+g!+z!+gPP!+gP!+gP!,e!,hP!+g!-O!+gP!+gP!-R!-UP!+gP!+gP!+gP!+gP!+g!+gP!+gP!-YP!-`!-c!-iP!+g!-u!-x!.Q!.d!2a!2g!2m!3s!3y!4T!5X!5_!5e!5o!5u!5{!6R!6X!6_!6e!6k!6q!6w!6}!7T!7Z!7e!7k!7u!7{PPP!8R!+g!8vP!a!]!^!?q!^!_!@_!_!`!Ax!`!a!Bl!a!b!DY!b!c!Dx!c!}!Kt!}#O!MQ#O#P%Q#P#Q!Mn#Q#R!N[#R#S4e#S#T%Q#T#o4e#o#p# O#p#q# l#q#r##U#r#s##r#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%QS%VV&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&WSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&WS%wZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&WS%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#sP&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&WSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&WSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&WSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&USXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&VP_4la%}Z&WSOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o;'S%Q;'S;=`&s<%lO%QU5xX#gQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU6lV#]Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7YZ&lR&WSOY%QYZ%lZr%Qrs%qsv%Qvw7{w!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU8SV#aQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8nZ&WSOY9aYZ%lZr9ars:Xsw9awx%Qx#O9a#O#Pt<%lO9aT9fZ&WSOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT:[ZOY:}YZ%lZr:}rs>zsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T;QZOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT;zVbP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTt<%lO9aT=QW&WSOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP=mWOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP>[ObPP>_TOY=jYZ=jZ;'S=j;'S;=`>n<%lO=jP>qP;=`<%l=jT>wP;=`<%l9aT>}ZOY:}YZ%lZr:}rs=jsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T?uVbPOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT@_VOY9aYZ<{Zr9ars:Xs;'S9a;'S;=`>t<%lO9aT@wP;=`<%l:}_ARVZZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVAoVYR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVB_X$YP&WS#fQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVCRZ#eR&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ct|!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVC{V#qR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDiVqR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEV[#eR&WSOY%QYZ%lZr%Qrs%qs}%Q}!OCt!O!_%Q!_!`6e!`!aE{!a;'S%Q;'S;=`&s<%lO%QVFSV&vR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_FpZWY&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGc!P!Q%Q!Q![Hq![;'S%Q;'S;=`&s<%lO%QVGhX&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHT!P;'S%Q;'S;=`&s<%lO%QVH[V&oR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTHxc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#R%Q#R#SNk#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTJ[V&WS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTJv]&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ko|}%Q}!OKo!O!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTKtX&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTLhc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![!f%Q!f!gJT!g!h%Q!h!iJT!i#R%Q#R#SMs#S#W%Q#W#XJT#X#Y%Q#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTMxZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![#R%Q#R#SMs#S;'S%Q;'S;=`&s<%lO%QTNpZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![#R%Q#R#SNk#S;'S%Q;'S;=`&s<%lO%Q_! j]&WS#fQOY%QYZ%lZr%Qrs%qsz%Qz{!!c{!P%Q!P!Q!)U!Q!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%Q_!!hX&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!#YT&WSOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!#lTOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!$OVOz!#iz{!#{{!P!#i!P!Q!$e!Q;'S!#i;'S;=`!$j<%lO!#iZ!$jOQZZ!$mP;=`<%l!#i_!$sXOY!%`YZ!#TZr!%`rs!'jsz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!%cXOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!&TZ&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!&}V&WSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'gP;=`<%l!!c_!'mXOY!%`YZ!#TZr!%`rs!#isz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!(]ZOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!)RP;=`<%l!%`_!)]V&WSPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!)wVPZOY!*^YZ%lZr!*^rs!+Os;'S!*^;'S;=`!,R<%lO!*^_!*cVPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!*{P;=`<%l!)U_!+TVPZOY!*^YZ%lZr!*^rs!+js;'S!*^;'S;=`!,R<%lO!*^Z!+oSPZOY!+jZ;'S!+j;'S;=`!+{<%lO!+jZ!,OP;=`<%l!+j_!,UP;=`<%l!*^T!,`u&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!d%Q!d!e!3Z!e!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o!q%Q!q!r!5X!r!z%Q!z!{!7P!{#R%Q#R#S!2c#S#U%Q#U#V!3Z#V#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a#c%Q#c#d!5X#d#l%Q#l#m!7P#m;'S%Q;'S;=`&s<%lO%QT!.za&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QT!0Wi&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o#R%Q#R#S!2c#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!1|V&WS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2hZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0P![#R%Q#R#S!2c#S;'S%Q;'S;=`&s<%lO%QT!3`Y&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S;'S%Q;'S;=`&s<%lO%QT!4V`&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S!n%Q!n!o!1u!o#R%Q#R#S!3Z#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!5^X&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y;'S%Q;'S;=`&s<%lO%QT!6Q_&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y!n%Q!n!o!1u!o#R%Q#R#S!5X#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!7U_&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8T!P!Q%Q!Q![!:c![!c%Q!c!i!:c!i#T%Q#T#Z!:c#Z;'S%Q;'S;=`&s<%lO%QT!8Y]&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i#T%Q#T#Z!9R#Z;'S%Q;'S;=`&s<%lO%QT!9Wc&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i!r%Q!r!sJq!s#R%Q#R#S!8T#S#T%Q#T#Z!9R#Z#d%Q#d#eJq#e;'S%Q;'S;=`&s<%lO%QT!:ji&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!hX#oR&WSOY%QYZ%lZr%Qrs%qs![%Q![!]!?T!];'S%Q;'S;=`&s<%lO%QV!?[V&tR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!?xV!PR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@fY&]Z&WSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!AU!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!A]X#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV!BPX!bR&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!BsY&[R&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cc!a;'S%Q;'S;=`&s<%lO%QU!CjY#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`!a!AU!a;'S%Q;'S;=`&s<%lO%Q_!DcV&`X#nQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!EPX%{Z&WSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!El#^;'S%Q;'S;=`&s<%lO%QV!EqX&WSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!F^#c;'S%Q;'S;=`&s<%lO%QV!FcX&WSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!GO#i;'S%Q;'S;=`&s<%lO%QV!GTX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Gp#Y;'S%Q;'S;=`&s<%lO%QV!GuX&WSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hb#g;'S%Q;'S;=`&s<%lO%QV!HgX&WSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!IS#Z;'S%Q;'S;=`&s<%lO%QV!IXX&WSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!It#U;'S%Q;'S;=`&s<%lO%QV!IyX&WSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Jf#W;'S%Q;'S;=`&s<%lO%QV!JkX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!KW#Y;'S%Q;'S;=`&s<%lO%QV!K_V&rR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!K{a&PZ&WSOY%QYZ%lZr%Qrs%qst%Qtu!Ktu!Q%Q!Q![!Kt![!c%Q!c!}!Kt!}#R%Q#R#S!Kt#S#T%Q#T#o!Kt#o;'S%Q;'S;=`&s<%lO%Q_!MXVuZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!MuVsR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!NcX#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV# VV}R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_# uZ&|X#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`#p%Q#p#q#!h#q;'S%Q;'S;=`&s<%lO%QU#!oV#dQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##]V|R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT##yV#tP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q",tokenizers:[0,1,2,3],topRules:{Program:[0,3]},dynamicPrecedences:{27:1,230:-1,241:-1},specialized:[{term:229,get:O=>lT[O]||-1}],tokenPrec:7067}),hT=Ie.define({name:"java",parser:cT.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch|finally)\b/}),LabeledStatement:qc,SwitchBlock:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:zO({closing:"}"}),BlockComment:()=>null,Statement:Ce({except:/^{/})}),ft.add({["Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer"]:fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function fT(){return new Je(hT)}const QT=De({String:f.string,Number:f.number,"True False":f.bool,PropertyName:f.propertyName,Null:f.null,",":f.separator,"[ ]":f.squareBracket,"{ }":f.brace}),uT=Ee.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",stateData:"#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",goto:"!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",maxTerm:25,nodeProps:[["openedBy",7,"{",12,"["],["closedBy",8,"}",13,"]"]],propSources:[QT],skippedNodes:[0],repeatNodeCount:2,tokenData:"(p~RaXY!WYZ!W]^!Wpq!Wrs!]|}$i}!O$n!Q!R$w!R![&V![!]&h!}#O&m#P#Q&r#Y#Z&w#b#c'f#h#i'}#o#p(f#q#r(k~!]Oc~~!`Upq!]qr!]rs!rs#O!]#O#P!w#P~!]~!wOe~~!zXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#g~#jR!Q![#s!c!i#s#T#Z#s~#vR!Q![$P!c!i$P#T#Z$P~$SR!Q![$]!c!i$]#T#Z$]~$`R!Q![!]!c!i!]#T#Z!]~$nOh~~$qQ!Q!R$w!R![&V~$|RT~!O!P%V!g!h%k#X#Y%k~%YP!Q![%]~%bRT~!Q![%]!g!h%k#X#Y%k~%nR{|%w}!O%w!Q![%}~%zP!Q![%}~&SPT~!Q![%}~&[ST~!O!P%V!Q![&V!g!h%k#X#Y%k~&mOg~~&rO]~~&wO[~~&zP#T#U&}~'QP#`#a'T~'WP#g#h'Z~'^P#X#Y'a~'fOR~~'iP#i#j'l~'oP#`#a'r~'uP#`#a'x~'}OS~~(QP#f#g(T~(WP#i#j(Z~(^P#X#Y(a~(fOQ~~(kOW~~(pOV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),$T=Ie.define({name:"json",parser:uT.configure({props:[pt.add({Object:Ce({except:/^\s*\}/}),Array:Ce({except:/^\s*\]/})}),ft.add({"Object Array":fO})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function dT(){return new Je($T)}const DQ=1,pT=2,mT=3,PT=82,gT=76,ST=117,XT=85,yT=97,xT=122,bT=65,wT=90,WT=95,wl=48,MQ=34,TT=40,NQ=41,YT=32,LQ=62,vT=new de(O=>{if(O.next==gT||O.next==XT?O.advance():O.next==ST&&(O.advance(),O.next==wl+8&&O.advance()),O.next!=PT||(O.advance(),O.next!=MQ))return;O.advance();let e="";for(;O.next!=TT;){if(O.next==YT||O.next<=13||O.next==NQ)return;e+=String.fromCharCode(O.next),O.advance()}for(O.advance();;){if(O.next<0)return O.acceptToken(DQ);if(O.next==NQ){let t=!0;for(let i=0;t&&i{if(O.next==LQ)O.peek(1)==LQ&&O.acceptToken(pT,1);else{let e=!1,t=0;for(;;t++){if(O.next>=bT&&O.next<=wT)e=!0;else{if(O.next>=yT&&O.next<=xT)return;if(O.next!=WT&&!(O.next>=wl&&O.next<=wl+9))break}O.advance()}e&&t>1&&O.acceptToken(mT)}},{extend:!0}),kT=De({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":f.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":f.modifier,"if else switch for while do case default return break continue goto throw try catch":f.controlKeyword,"co_return co_yield co_await":f.controlKeyword,"new sizeof delete static_assert":f.operatorKeyword,"NULL nullptr":f.null,this:f.self,"True False":f.bool,"TypeSize PrimitiveType":f.standard(f.typeName),TypeIdentifier:f.typeName,FieldIdentifier:f.propertyName,"CallExpression/FieldExpression/FieldIdentifier":f.function(f.propertyName),"ModuleName/Identifier":f.namespace,PartitionName:f.labelName,StatementIdentifier:f.labelName,"Identifier DestructorName":f.variableName,"CallExpression/Identifier":f.function(f.variableName),"CallExpression/ScopedIdentifier/Identifier":f.function(f.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":f.function(f.definition(f.variableName)),NamespaceIdentifier:f.namespace,OperatorName:f.operator,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Number:f.number,String:f.string,"RawString SystemLibString":f.special(f.string),CharLiteral:f.character,EscapeSequence:f.escape,"UserDefinedLiteral/Identifier":f.literal,PreProcArg:f.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":f.processingInstruction,MacroName:f.special(f.name),"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,"< >":f.angleBracket,". ->":f.derefOperator,", ;":f.separator}),ZT={__proto__:null,bool:34,char:34,int:34,float:34,double:34,void:34,size_t:34,ssize_t:34,intptr_t:34,uintptr_t:34,charptr_t:34,int8_t:34,int16_t:34,int32_t:34,int64_t:34,uint8_t:34,uint16_t:34,uint32_t:34,uint64_t:34,char8_t:34,char16_t:34,char32_t:34,char64_t:34,const:68,volatile:70,restrict:72,_Atomic:74,mutable:76,constexpr:78,constinit:80,consteval:82,struct:86,__declspec:90,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:786,true:786,FALSE:788,false:788,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:284,import:288,case:298,default:300,if:310,else:316,switch:320,do:324,while:326,for:332,return:336,break:340,continue:344,goto:348,co_return:352,co_yield:356,using:364,typedef:368,namespace:382,new:400,delete:402,co_await:404,concept:408,enum:412,static_assert:416,friend:424,union:426,explicit:432,operator:446,module:458,signed:520,unsigned:520,long:520,short:520,decltype:530,auto:532,sizeof:568,NULL:574,nullptr:588,this:590},RT={__proto__:null,"<":131},UT={__proto__:null,">":135},VT={__proto__:null,operator:390,new:578,delete:584},zT=Ee.deserialize({version:14,states:"$;fQ!QQVOOP'gOUOOO(XOWO'#CdO,RQUO'#CgO,]QUO'#FkO-sQbO'#CwO.UQUO'#CwO0TQUO'#K[O0[QUO'#CvO0gOpO'#DvO0oQ!dO'#D]OOQR'#JP'#JPO5XQVO'#GVO5fQUO'#JWOOQQ'#JW'#JWO8zQUO'#KnO{QVO'#E^O?]QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?bQVO'#EfO@XQVO'#EiOBUQUO'#FPOBvQUO'#FiOOQR'#Fk'#FkOB{QUO'#FkOOQR'#LR'#LROOQR'#LQ'#LQOETQVO'#KROFxQUO'#LWOGVQUO'#KrOGkQUO'#LWOH]QUO'#LYOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#HX'#HXOOQR'#K}'#K}OOQR'#J`'#J`Q!QQVOOOHkQVO'#F^OIWQUO'#EhOI_QUOOOKZQVO'#HhOKkQUO'#HhONVQUO'#KrONaQUO'#KrOOQQ'#Kr'#KrO!!_QUO'#KrOOQQ'#Jr'#JrO!!lQUO'#HyOOQQ'#K['#K[O!&^QUO'#K[O!&zQUO'#KRO!(zQVO'#I^O!(zQVO'#IaOCQQUO'#KROOQQ'#Iq'#IqOOQQ'#KR'#KRO!,}QUO'#K[OOQR'#KZ'#KZO!-UQUO'#DYO!/mQUO'#KoOOQQ'#Ko'#KoO!/tQUO'#KoO!/{QUO'#ETO!0QQUO'#EWO!0VQUO'#FRO8zQUO'#FPO!QQVO'#F_O!0[Q#vO'#FaO!0gQUO'#FlO!0oQUO'#FqO!0tQVO'#FsO!0oQUO'#FvO!3sQUO'#FwO!3xQVO'#FyO!4SQUO'#F{O!4XQUO'#F}O!4^QUO'#GPO!4cQVO'#GRO!(zQVO'#GTO!4jQUO'#GqO!4xQUO'#GZO!(zQVO'#FfO!6VQUO'#FfO!6[QVO'#GaO!6cQUO'#GbO!6nQUO'#GoO!6sQUO'#GsO!6xQUO'#G{O!7jQ&lO'#HjO!:mQUO'#GvO!:}QUO'#HYO!;YQUO'#H[O!;bQUO'#DWO!;bQUO'#HvO!;bQUO'#HwO!;yQUO'#HxO!<[QUO'#H}O!=PQUO'#IOO!>uQVO'#IcO!(zQVO'#IeO!?PQUO'#IhO!?WQVO'#IkP!@}{,UO'#CbP!6n{,UO'#CbP!AY{7[O'#CbP!6n{,UO'#CbP!A_{,UO'#CbP!AjOSO'#I{POOO)CEo)CEoOOOO'#I}'#I}O!AtOWO,59OOOQR,59O,59OO!(zQVO,59UOOQQ,59W,59WO!(zQVO,5;ROOQR,5rOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[OOQR'#I]'#I]O!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!DOQVO,5>{OOQQ,5?X,5?XO!EqQVO'#ChO!IjQUO'#CyOOQQ,59c,59cOOQQ,59b,59bOOQQ,5=O,5=OO!IwQ&lO,5=nO!?PQUO,5?SO!LkQVO,5?VO!LrQbO,59cO!L}QVO'#FYOOQQ,5?Q,5?QO!M_QVO,59VO!MfO`O,5:bO!MkQbO'#D^O!M|QbO'#K_O!N[QbO,59wO!NdQbO'#CwO!NuQUO'#CwO!NzQUO'#K[O# UQUO'#CvOOQR-E<}-E<}O# aQUO,5ApO# hQVO'#EfO@XQVO'#EiOBUQUO,5;kOOQR,5m,5>mO#3gQUO'#CgO#4]QUO,5>qO#6OQUO'#IfOOQR'#JO'#JOO#6WQUO,5:xO#6tQUO,5:xO#7eQUO,5:xO#8YQUO'#CtO!0QQUO'#ClOOQQ'#JX'#JXO#6tQUO,5:xO#8bQUO,5;QO!4xQUO'#C}O#9kQUO,5;QO#9pQUO,5>RO#:|QUO'#C}O#;dQUO,5>|O#;iQUO'#KxO#}QUO'#L]O#?UQUO,5>VO#?ZQbO'#CwO#?fQUO'#GdO#?kQUO'#E^O#@[QUO,5;kO#@sQUO'#LOO#@{QUO,5;rOKkQUO'#HgOBUQUO'#HhO#AQQUO'#KrO!6nQUO'#HkO#AxQUO'#CtO!0tQVO,5QO$(WQUO'#E[O$(eQUO,5>SOOQQ,5>T,5>TO$,RQVO'#C{OOQQ-E=p-E=pOOQQ,5>e,5>eOOQQ,59`,59`O$,]QUO,5>xO$.]QUO,5>{O!6nQUO,59tO$.pQUO,5;qO$.}QUO,5<|O!0QQUO,5:oOOQQ,5:r,5:rO$/YQUO,5;mO$/_QUO'#KnOBUQUO,5;kOOQR,5;y,5;yO$0OQUO'#FcO$0^QUO'#FcO$0cQUO,5;{O$3|QVO'#FnO!0tQVO,5eQUO,5pQUO,5=]O$>uQUO,5=]O!4xQUO,5}QUO,5uQUO,5<|O$DXQUO,5<|O$DdQUO,5=ZO!(zQVO,5=_O!(zQVO,5=gO#NeQUO,5=nOOQQ,5>U,5>UO$FiQUO,5>UO$FsQUO,5>UO$FxQUO,5>UO$F}QUO,5>UO!6nQUO,5>UO$H{QUO'#K[O$ISQUO,5=pO$I_QUO,5=bOKkQUO,5=pO$JXQUO,5=tOOQR,5=t,5=tO$JaQUO,5=tO$LlQVO'#H]OOQQ,5=v,5=vO!;]QUO,5=vO%#gQUO'#KkO%#nQUO'#K]O%$SQUO'#KkO%$^QUO'#DyO%$oQUO'#D|O%'lQUO'#K]OOQQ'#K]'#K]O%)_QUO'#K]O%#nQUO'#K]O%)dQUO'#K]OOQQ,59r,59rOOQQ,5>b,5>bOOQQ,5>c,5>cO%)lQUO'#H{O%)tQUO,5>dOOQQ,5>d,5>dO%-`QUO,5>dO%-kQUO,5>iO%1VQVO,5>jO%1^QUO,5>}O# hQVO'#EfO%4dQUO,5>}OOQQ,5>},5>}O%5TQUO,5?PO%7XQUO,5?SO!<[QUO,5?SO%9TQUO,5?VO%zQUO1G0mOOQQ1G0m1G0mO%@WQUO'#CoO%BgQbO'#CwO%BrQUO'#CrO%BwQUO'#CrO%B|QUO1G.tO#AxQUO'#CqOOQQ1G.t1G.tO%EPQUO1G4^O%FVQUO1G4_O%GxQUO1G4_O%IkQUO1G4_O%K^QUO1G4_O%MPQUO1G4_O%NrQUO1G4_O&!eQUO1G4_O&$WQUO1G4_O&%yQUO1G4_O&'lQUO1G4_O&)_QUO1G4_O&+QQUO'#KQO&,ZQUO'#KQO&,cQUO,59SOOQQ,5=Q,5=QO&.kQUO,5=QO&.uQUO,5=QO&.zQUO,5=QO&/PQUO,5=QO!6nQUO,5=QO#NeQUO1G3YO&/ZQUO1G4nO!<[QUO1G4nO&1VQUO1G4qO&2xQVO1G4qOOQQ1G.}1G.}OOQQ1G.|1G.|OOQQ1G2j1G2jO!IwQ&lO1G3YO&3PQUO'#LPO@XQVO'#EiO&4YQUO'#F]OOQQ'#Jb'#JbO&4_QUO'#FZO&4jQUO'#LPO&4rQUO,5;tO&4wQUO1G.qOOQQ1G.q1G.qOOQR1G/|1G/|O&6jQ!dO'#JQO&6oQbO,59xO&9QQ!eO'#D`O&9XQ!dO'#JSO&9^QbO,5@yO&9^QbO,5@yOOQR1G/c1G/cO&9iQbO1G/cO&9nQ&lO'#GfO&:lQbO,59cOOQR1G7[1G7[O#@[QUO1G1VO&:wQUO1G1^OBUQUO1G1VO&=YQUO'#CyO#*wQbO,59cO&@{QUO1G6tOOQR-E<|-E<|O&B_QUO1G0dO#6WQUO1G0dOOQQ-E=V-E=VO#6tQUO1G0dOOQQ1G0l1G0lO&CSQUO,59iOOQQ1G3m1G3mO&CjQUO,59iO&DQQUO,59iO!M_QVO1G4hO!(zQVO'#JZO&DlQUO,5AdOOQQ1G0o1G0oO!(zQVO1G0oO!6nQUO'#JoO&DtQUO,5AwOOQQ1G3q1G3qOOQR1G1V1G1VO&J]QVO'#FOO!M_QVO,5;sOOQQ,5;s,5;sOBUQUO'#JdO&JmQUO,5AjO&JuQVO'#E[OOQR1G1^1G1^O&MdQUO'#L]OOQR1G1o1G1oOOQR-E=g-E=gOOQR1G7^1G7^O#DhQUO1G7^OGVQUO1G7^O#DhQUO1G7`OOQR1G7`1G7`O&MlQUO'#HOO&MtQUO'#LXOOQQ,5=i,5=iO&NSQUO,5=kO&NXQUO,5=lOOQR1G7a1G7aO#EfQVO1G7aO&N^QUO1G7aO' dQVO,5=lOOQR1G1U1G1UO$.vQUO'#E]O'!YQUO'#E]OOQQ'#Kz'#KzO'!sQUO'#KyO'#OQUO,5;UO'#WQUO'#ElO'#kQUO'#ElO'$OQUO'#EtOOQQ'#J]'#J]O'$TQUO,5;cO'$zQUO,5;cO'%uQUO,5;dO'&{QVO,5;dOOQQ,5;d,5;dO''VQVO,5;dO'&{QVO,5;dO''^QUO,5;bO'(ZQUO,5;eO'(fQUO'#KqO'(nQUO,5:vO'(sQUO,5;fOOQQ1G0n1G0nOOQQ'#J^'#J^O''^QUO,5;bO!4xQUO'#E}OOQQ,5;b,5;bO')nQUO'#E`O'+hQUO'#E{OHrQUO1G0nO'+mQUO'#EbOOQQ'#JY'#JYO'-VQUO'#KsOOQQ'#Ks'#KsO'.PQUO1G0eO'.wQUO1G3lO'/}QVO1G3lOOQQ1G3l1G3lO'0XQVO1G3lO'0`QUO'#L`O'1lQUO'#KYO'1zQUO'#KXO'2VQUO,59gO'2_QUO1G/`O'2dQUO'#FPOOQR1G1]1G1]OOQR1G2h1G2hO$>uQUO1G2hO'2nQUO1G2hO'2yQUO1G0ZOOQR'#Ja'#JaO'3OQVO1G1XO'8wQUO'#FTO'8|QUO1G1VO!6nQUO'#JeO'9[QUO,5;}O$0^QUO,5;}OOQQ'#Fd'#FdOOQQ,5;},5;}O'9jQUO1G1gOOQR1G1g1G1gO'9rQUO,5}QUO1G2aOOQQ'#Cu'#CuO'DRQUO'#G]O'D|QUO'#G]O'ERQUO'#LSO'EaQUO'#G`OOQQ'#LT'#LTO'EoQUO1G2aO'EtQVO1G1lO'HVQVO'#GVOBUQUO'#FWOOQR'#Jf'#JfO'EtQVO1G1lO'HaQUO'#FwOOQR1G2g1G2gOOQR,5;x,5;xO'HfQVO,5;xO'HmQUO1G2hO'HrQUO'#JhO'2nQUO1G2hO!(zQVO1G2uO'HzQUO1G2yO'JTQUO1G3RO'KZQUO1G3YOOQQ1G3p1G3pO'KoQUO1G3pOOQR1G3[1G3[O'KtQUO'#K[O'2dQUO'#LUOGkQUO'#LWOOQR'#Gz'#GzO#DhQUO'#LYOOQR'#HR'#HRO'LOQUO'#GwO'$OQUO'#GvOOQR1G2|1G2|O'L{QUO1G2|O'MrQUO1G3[O'M}QUO1G3`O'NSQUO1G3`OOQR1G3`1G3`O'N[QUO'#H^OOQR'#H^'#H^O( eQUO'#H^O!(zQVO'#HaO!(zQVO'#H`OOQR'#L['#L[O( jQUO'#L[OOQR'#Jl'#JlO( oQVO,5=wOOQQ,5=w,5=wO( vQUO'#H_O(!OQUO'#H[OOQQ1G3b1G3bO(!YQUO,5@wOOQQ,5@w,5@wO%)_QUO,5@wO%)dQUO,5@wO%$^QUO,5:eO(%wQUO'#KlO(&VQUO'#KlOOQQ,5:e,5:eOOQQ'#JT'#JTO(&bQUO'#D}O(&lQUO'#KrOGkQUO'#LWO('hQUO'#D}OOQQ'#Hq'#HqOOQQ'#Hs'#HsOOQQ'#Ht'#HtOOQQ'#Km'#KmOOQQ'#JV'#JVO('rQUO,5:hOOQQ,5:h,5:hO((oQUO'#LWO((|QUO'#HuO()dQUO,5@wO()kQUO'#H|O()vQUO'#L_O(*OQUO,5>gO(*TQUO'#L^OOQQ1G4O1G4OO(-zQUO1G4OO(.RQUO1G4OO(.YQUO1G4UO(/`QUO1G4UO(/eQUO,5A}O!6nQUO1G4iO!(zQVO'#IjOOQQ1G4n1G4nO(/jQUO1G4nO(1mQVO1G4qPOOO1G.h1G.hP!A_{,UO1G.hP(3mQUO'#LfP(3x{,UO1G.hP(3}{7[O1G.hPO{O-E=t-E=tPOOO,5BO,5BOP(4V{,UO,5BOPOOO1G5R1G5RO!(zQVO7+$[O(4[QUO'#CyOOQQ,59^,59^O(4gQbO,59cO(4rQbO,59^OOQQ,59],59]OOQQ7+)x7+)xO!M_QVO'#JuO(4}QUO,5@lOOQQ1G.n1G.nOOQQ1G2l1G2lO(5VQUO1G2lO(5[QUO7+(tOOQQ7+*Y7+*YO(7pQUO7+*YO(7wQUO7+*YO(1mQVO7+*]O#NeQUO7+(tO(8UQVO'#JcO(8iQUO,5AkO(8qQUO,5;vOOQQ'#Co'#CoOOQQ,5;w,5;wO!(zQVO'#F[OOQQ-E=`-E=`O!M_QVO,5;uOOQQ1G1`1G1`OOQQ,5?l,5?lOOQQ-E=O-E=OOOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(9zQ!eO'#K`O(:RQMkO'#K`O(:YQ!eO'#K`OOQR'#K`'#K`OOQR'#JR'#JRO(:aQ!eO,59zOOQQ,59z,59zO(:hQbO,5?nOOQQ-E=Q-E=QO(:vQbO1G6eOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'8|QUO7+&qO(;RQUO7+&OO#6WQUO7+&OO(;vQUO1G/TO(<^QUO1G/TO(kQUO,5?uOOQQ-E=X-E=XO(?tQUO7+&ZOOQQ,5@Z,5@ZOOQQ-E=m-E=mO(?yQUO'#LPO@XQVO'#EiO(AVQUO1G1_OOQQ1G1_1G1_O(B`QUO,5@OOOQQ,5@O,5@OOOQQ-E=b-E=bO(BtQUO'#KqOOQR7+,x7+,xO#DhQUO7+,xOOQR7+,z7+,zO(CRQUO,5=jO#DsQUO'#JkO(CdQUO,5AsOOQR1G3V1G3VOOQR1G3W1G3WO(CrQUO7+,{OOQR7+,{7+,{O(EjQUO,5:wO(GXQUO'#EwO!(zQVO,5;VO(GzQUO,5:wO(HUQUO'#EpO(HgQUO'#EzOOQQ,5;Z,5;ZO#K]QVO'#ExO(H}QUO,5:wO(IUQUO'#EyO#GgQUO'#J[O(JnQUO,5AeOOQQ1G0p1G0pO(JyQUO,5;WO!<[QUO,5;^O(KdQUO,5;_O(KrQUO,5;WO(NUQUO,5;`OOQQ-E=Z-E=ZO(N^QUO1G0}OOQQ1G1O1G1OO) XQUO1G1OO)!_QVO1G1OO)!fQVO1G1OO)!pQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)#mQUO'#JpO)#wQUO,5A]OOQQ1G0b1G0bOOQQ-E=[-E=[O)$PQUO,5;iO!<[QUO,5;iO)$|QVO,5:zO)%TQUO,5;gO$ mQUO7+&YOOQQ7+&Y7+&YO!(zQVO'#EfO)%[QUO,5:|OOQQ'#Kt'#KtOOQQ-E=W-E=WOOQQ,5A_,5A_OOQQ'#Jm'#JmO))PQUO7+&PPOQQ7+&P7+&POOQQ7+)W7+)WO))wQUO7+)WO)*}QVO7+)WOOQQ,5>n,5>nO$)YQVO'#JtO)+UQUO,5@sOOQQ1G/R1G/ROOQQ7+$z7+$zO)+aQUO7+(SO)+fQUO7+(SOOQR7+(S7+(SO$>uQUO7+(SOOQQ7+%u7+%uOOQR-E=_-E=_O!0VQUO,5;oOOQQ,5@P,5@POOQQ-E=c-E=cO$0^QUO1G1iOOQQ1G1i1G1iOOQR7+'R7+'ROOQR1G1t1G1tOBUQUO,5;rO),SQUO,5hQUO,5VQUO7+(aO)?]QUO7+(eO)?bQVO7+(eOOQQ7+(m7+(mOOQQ7+)[7+)[O)?jQUO'#KkO)?tQUO'#KkOOQR,5=c,5=cO)@RQUO,5=cO!;bQUO,5=cO!;bQUO,5=cO!;bQUO,5=cOOQR7+(h7+(hOOQR7+(v7+(vOOQR7+(z7+(zOOQR,5=x,5=xO)@WQUO,5={O)A^QUO,5=zOOQR,5Av,5AvOOQR-E=j-E=jOOQQ1G3c1G3cO)BdQUO,5=yO)BiQVO'#EfOOQQ1G6c1G6cO%)_QUO1G6cO%)dQUO1G6cOOQQ1G0P1G0POOQQ-E=R-E=RO)EQQUO,5AWO(%wQUO'#JUO)E]QUO,5AWO)E]QUO,5AWO)EeQUO,5:iO8zQUO,5:iOOQQ,5>^,5>^O)EoQUO,5ArO)EvQUO'#EVO)GQQUO'#EVO)GkQUO,5:iO)GuQUO'#HmO)GuQUO'#HnOOQQ'#Kp'#KpO)HdQUO'#KpO!(zQVO'#HoOOQQ,5:i,5:iO)IUQUO,5:iO!M_QVO,5:iOOQQ-E=T-E=TOOQQ1G0S1G0SOOQQ,5>a,5>aO)IZQUO1G6cO!(zQVO,5>hO)LxQUO'#JsO)MTQUO,5AyOOQQ1G4R1G4RO)M]QUO,5AxOOQQ,5Ax,5AxOOQQ7+)j7+)jO*!zQUO7+)jOOQQ7+)p7+)pO*'yQVO1G7iO*){QUO7+*TO**QQUO,5?UO*+WQUO7+*]POOO7+$S7+$SP*,yQUO'#LgP*-RQUO,5BQP*-W{,UO7+$SPOOO1G7j1G7jO*-]QUO<RQUO'#ElOOQQ1G0z1G0zOOQQ7+&j7+&jO*>gQUO7+&jO*?mQVO7+&jOOQQ7+&h7+&hOOQQ,5@[,5@[OOQQ-E=n-E=nO*@iQUO1G1TO*@sQUO1G1TO*A^QUO1G0fOOQQ1G0f1G0fO*BdQUO'#K|O*BlQUO1G1ROOQQ<OOOQQ-E=k-E=kPOQQ<uQUO<WO)GuQUO'#JqO*N`QUO1G0TO*NqQVO1G0TOOQQ1G3v1G3vO*NxQUO,5>XO+ TQUO,5>YO+ rQUO,5>ZO+!xQUO1G0TO%)dQUO7++}O+$OQUO1G4SOOQQ,5@_,5@_OOQQ-E=q-E=qOOQQ<o,5>oO+/wQUOANAYOOQRANAYANAYO+/|QUO7+'aOOQRAN@dAN@dO+1YQVOAN@oO+1aQUOAN@oO!0tQVOAN@oO+2jQUOAN@oO+2oQUOANAOO+2zQUOANAOO+4QQUOANAOOOQRAN@oAN@oO!M_QVOANAOOOQRANAPANAPO+4VQUO7+'}O)7eQUO7+'}OOQQ7+(P7+(PO+4hQUO7+(PO+5nQVO7+(PO+5uQVO7+'iO+5|QUOANAkOOQR7+(i7+(iOOQR7+)Q7+)QO+6RQUO7+)QO+6WQUO7+)QOOQQ<= i<= iO+6`QUO7+,^O+6hQUO1G5[OOQQ1G5[1G5[O+6sQUO7+%oOOQQ7+%o7+%oO+7UQUO7+%oO*NqQVO7+%oOOQQ7+)b7+)bO+7ZQUO7+%oO+8aQUO7+%oO!M_QVO7+%oO+8kQUO1G0]O*LyQUO1G0]O)EvQUO1G0]OOQQ1G0a1G0aO+9YQUO1G3rO+:`QVO1G3rOOQQ1G3r1G3rO+:jQVO1G3rO+:qQUO,5@]OOQQ-E=o-E=oOOQQ1G3s1G3sO%)_QUO<= iOOQQ7+*[7+*[POQQ,5@c,5@cPOQQ-E=u-E=uOOQQ1G/}1G/}OOQQ,5?y,5?yOOQQ-E=]-E=]OOQRG26tG26tO+;YQUOG26ZO!0tQVOG26ZO+UQUO<ZQUO<`QUO<uAN>uO+COQUOAN>uO+DUQUOAN>uO!M_QVOAN>uO+DZQUO<|QUO'#K[O,?^QUO'#CyO,?lQbO,59cO,6eQUO7+&OO,XP>r?U?jFdMf!&l!-UP!4Q!4u!5jP!6UPPPPPPPP!6oP!8ZPP!9n!;YP!;`PPPPPP!;cP!;cPP!;cPPPPPPPPP!;o!?XP!?[PP!?x!@mPPPPP!@qP>u!BUPP>u!D_!F`!Fn!HV!IxP!JTP!Jd!Jd!Mv##X#$q#(P#+]!F`#+gPP!F`#+n#+t#+g#+g#+wP#+{#,j#,j#,j#,j!IxP#-T#-f#/lP#0SP#1qP#1u#2P#2v#3R#5a#5i#5i#5p#1uP#1uP#6U#6[P#6fPP#7T#7t#8h#7TP#9[#9hP#7TP#7TPP#7T#7TP#7TP#7TP#7TP#7TP#7TP#7TP#9k#6f#:ZP#:rP#;Z#;Z#;Z#;Z#;h#1uP#u>u>u$%V!@m!@m!@m!@m!@m!@m!6o!6o!6o$%jP$'X$'g!6o$'mPP!6o$)}$*Q#B[$*T:{7o$-]$/W$0w$2g7oPP7o$4Z7oP7o7oP7oP$7c7oP7oPP7o$7oPPPPPPPPP*]P$:y$;P$=h$?p$?v$@^$@h$@s$AS$AY$Bj$Ci$Cp$Cw$C}$DV$Da$Dg$Dv$D|$EV$E_$Ej$Ep$Ez$FQ$F[$Fc$Ft$Fz$GQP$GW$G`$Gg$Gu$Ie$Ik$Iq$Ix$JRPPPPPPPP$JX$J]PPPPP%#a$)}%#d%&n%(xP%)V%)YPPPPPPPPPP%)f%*i%*o%*s%,l%-{%.n%.u%1W%1^PPP%1h%1s%1v%1|%3T%3W%3d%3n%3r%4x%5m%5s#BeP%6^%6p%6s%7V%7e%7i%7o%7u$)}$*Q$*Q%7x%7{P%8V%8YR#cP'dmO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jU%om%p7UQ&m!`Q(k#]d0S*O0P0Q0R0U5R5S5T5W8UR7U3Xf}Oaewx{!g&S'e*r-f&v$i[!W!X!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&W&b&f&x&y&|'O'P'b'j'k'z(a(c(j)m)s*i*j*m*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-j.S.T.X/Q/T/_/f/o/q/v/x1O1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jS%`f0k#d%jgnp|#O$g$|$}%S%d%h%i%w&s'u'v(R*Z*a*c*u+^,m,w-`-s-z.i.p.r0`0|0}1R1V2b2m5e6k;[;];^;d;e;f;s;t;u;v;z;{;|;}<[<]<^S%qm!YS&u!h#PQ']!tQ'h!yQ'i!zQ(k#`Q(l#]Q(m#^Q*y%kQ,X&lQ,^&nQ-T'^Q-g'gQ-n'rS.u([4]Q/i)hQ0h*nQ2T,]Q2[,dQ3S-hQ4f/PQ4j/WQ5j1QQ6`2WQ7R3TQ8e6_Q9i8OR;_1T$|#hS!]$y%Q%T%Z&j&k'Q'X'Z'a'c(b(f(i(x(y)S)T)U)V)W)X)Y)Z)[)])^)_)`)l)r)y+Y+h,P,T,k,v-k-l.P.|/s0c0e0j0l0z1c1|2d2k3V3g3h4g4h4n4q4w4y4}5O5h5t5{6Y6i6m6w7O7u7v7x8W8X8g8j8n8v9X9`9o9u:Q:X:^:d:mQ&p!dQ(h#ZQ(t#bQ)k$T[*t%e*X0n2c2j3OQ,_&oQ/R(gQ/V(lQ/^(uS/l)j/SQ0u+RS4u/m/nR8S4v'e![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:j'e!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jQ)P#kS+R%y0vQ/u)tk4R.j3w3{4O4P7g7i7j7l7o9]9^:VQ)R#kk4Q.j3w3{4O4P7g7i7j7l7o9]9^:Vl)Q#k.j3w3{4O4P7g7i7j7l7o9]9^:VT+R%y0v`UOwx!g&S'e*r-fW$`[e$e(c#l$p_!f!u!}#R#S#T#U#V#Z$S$T$l%U&U&Y&c&m'_(O(Q(V(_(h)k)q+]+b+c+u+z,Y,l,{-R-r-w.Z.[.b.c.g.t.x1W1[1i1n1p2o3`3a3b3t3x5n6R6T7`8_![%cg$g%d%i&s*Z*u+^,m,w-`0}1R2b;[;];^;e;f;s;t;u;v;z;{;}<[<]<^Y%snp%w-s.il(}#k.j3w3{4O4P7g7i7j7l7o9]9^:VS;i'u-zU;j(R.p.r&| MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ArgumentList ( ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec ) Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator DeclarationList ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:426,nodeProps:[["group",-35,1,8,11,14,15,16,18,71,72,100,101,102,104,192,209,230,243,244,271,272,273,278,281,282,283,285,286,287,288,291,293,294,295,296,297,"Expression",-13,17,24,25,26,42,256,257,258,259,263,264,266,267,"Type",-19,126,129,148,151,153,154,159,161,164,165,167,169,171,173,175,177,179,180,189,"Statement"]],propSources:[kT],skippedNodes:[0,3,4,5,6,7,10,298,299,300,301,302,303,304,305,306,307,348,349],repeatNodeCount:41,tokenData:"&*r7ZR!UOX$eXY({YZ.gZ]$e]^+P^p$epq({qr.}rs0}st2ktu$euv!7dvw!9bwx!;exy!O{|!?R|}!AV}!O!BQ!O!P!DX!P!Q#+y!Q!R#Az!R![$(x![!]$Ag!]!^$Cc!^!_$D^!_!`%1W!`!a%2X!a!b%5_!b!c$e!c!n%6Y!n!o%7q!o!w%6Y!w!x%7q!x!}%6Y!}#O%:n#O#P%u#Y#]4Y#]#^NZ#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e4eb)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#o4Y#o;'S$e;'S;=`(u<%lO$e4e5xd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#X4Y#X#Y7W#Y#o4Y#o;'S$e;'S;=`(u<%lO$e4e7cd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#Y4Y#Y#Z8q#Z#o4Y#o;'S$e;'S;=`(u<%lO$e4e8|d)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#]4Y#]#^:[#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e:gd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#b4Y#b#c;u#c#o4Y#o;'S$e;'S;=`(u<%lO$e4e][)T,g)[W(qQ%[!b'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!?`^)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|!@[|!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!@gY)[W!X-y(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!AbY!h,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!B__)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox}$e}!O!@[!O!_$e!_!`!8g!`!a!C^!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!CiY(y-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Dd^)[W(qQ'g&j(x,gOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!E`!P!Q$e!Q![!GY![#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Ei[)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!F_!P#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!FjY)Y,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]!Gen)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Icx!Q$e!Q![!GY![!g$e!g!h#$w!h!i#*Y!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#X$e#X#Y#$w#Y#Z#*Y#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2T!IjY(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![!JY![#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O2T!Jcn(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Icx!Q(O!Q![!JY![!g(O!g!h!La!h!i##`!i!n(O!n!o##`!o!r(O!r!s!La!s!w(O!w!x##`!x#O(O#O#P&f#P#X(O#X#Y!La#Y#Z##`#Z#`(O#`#a##`#a#d(O#d#e!La#e#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ljl(qQ!i,g'g&jOY(OZr(Ors%}s{(O{|!Nb|}(O}!O!Nb!O!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ni^(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![# e![!c(O!c!i# e!i#O(O#O#P&f#P#T(O#T#Z# e#Z;'S(O;'S;=`(o<%lO(O2T# nj(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Nbx!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T##id(qQ!i,g'g&jOY(OZr(Ors%}s!h(O!h!i##`!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#Y(O#Y#Z##`#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2]#%Sn)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|#'Q|}$e}!O#'Q!O!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#'Z`)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![#(]![!c$e!c!i#(]!i#O$e#O#P&f#P#T$e#T#Z#(]#Z;'S$e;'S;=`(u<%lO$e2]#(hj)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Nbx!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#*ef)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox!h$e!h!i#*Y!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#Y$e#Y#Z#*Y#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e7Z#,W`)[W(qQ%[!b![,g'g&jOY$eZr$ers%^sw$ewx(Oxz$ez{#-Y{!P$e!P!Q#:s!Q!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#-c])[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y1e#._TOz#.[z{#.n{;'S#.[;'S;=`#/]<%lO#.[1e#.qVOz#.[z{#.n{!P#.[!P!Q#/W!Q;'S#.[;'S;=`#/]<%lO#.[1e#/]OT1e1e#/`P;=`<%l#.[7X#/jZ)[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7P#0bX'g&jOY#0]YZ#.[Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1SZ'g&jOY#0]YZ#.[Zz#0]z{#0}{!P#0]!P!Q#1u!Q#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1|UT1e'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}7P#2eZ'g&jOY#0]YZ#0]Z]#0]]^#3W^z#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3]X'g&jOY#0]YZ#0]Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3{P;=`<%l#0]7X#4V])[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{!P#/c!P!Q#5O!Q#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7X#5XW)[WT1e'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^7X#5tP;=`<%l#/c7R#6OZ(qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#6x](qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{!P#5w!P!Q#7q!Q#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#7zW(qQT1e'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O7R#8gP;=`<%l#5w7Z#8s_)[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{!P#-Y!P!Q#9r!Q#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y7Z#9}Y)[W(qQT1e'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#:pP;=`<%l#-Y7Z#;OY)[W(qQS1e'g&jOY#:sZr#:srs#;nsw#:swx#@{x#O#:s#O#P#[<%lO#b#P;'S#[<%lO#[<%lO#_P;=`<%l#i]S1e'g&jOY#b#P#b#[<%lO#[<%lO#b#P#b#[<%lO#t!R![$2V![!c$e!c!i$2V!i#O$e#O#P&f#P#T$e#T#Z$2V#Z;'S$e;'S;=`(u<%lO$e2]$?Pv)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx$4lx!O$e!O!P$ m!P!Q$e!Q![$2V![!c$e!c!g$2V!g!h$:p!h!i$2V!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#U$2V#U#V$2V#V#X$2V#X#Y$:p#Y#Z$2V#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j#l$e#l#m$0z#m;'S$e;'S;=`(u<%lO$e4e$Ar[(w-X)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox![$e![!]$Bh!]#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3s$BsYl-})[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]$CnY)X,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7V$Dk_p,g%^!b)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!^$Ej!^!_%+w!_!`%.U!`!a%0]!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej*[$Es])[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ejp$FoTO!`$Fl!`!a$GO!a;'S$Fl;'S;=`$GT<%lO$Flp$GTO$Xpp$GWP;=`<%l$Fl*Y$GbZ)[W'g&jOY$GZYZ$FlZw$GZwx$HTx!`$GZ!`!a%(U!a#O$GZ#O#P$Ib#P;'S$GZ;'S;=`%(y<%lO$GZ*Q$HYX'g&jOY$HTYZ$FlZ!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q$IOU$XpY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}*Q$Ig['g&jOY$HTYZ$HTZ]$HT]^$J]^!`$HT!`!a$NO!a#O$HT#O#P%&n#P;'S$HT;'S;=`%'f;=`<%l%$z<%lO$HT*Q$JbX'g&jOY$HTYZ$J}Z!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT'[$KSX'g&jOY$J}YZ$FlZ!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$KvU$Xp'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}'[$L_Z'g&jOY$J}YZ$J}Z]$J}]^$MQ^!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MVX'g&jOY$J}YZ$J}Z!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MuP;=`<%l$J}*Q$M{P;=`<%l$HT*Q$NVW$Xp'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`$NtW'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`% eUY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%})`% |Y'g&jOY$NoYZ$NoZ]$No]^%!l^#O$No#O#P%#d#P;'S$No;'S;=`%$[;=`<%l%$z<%lO$No)`%!qX'g&jOY$NoYZ%}Z!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%#aP;=`<%l$No)`%#iZ'g&jOY$NoYZ%}Z]$No]^%!l^!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%$_XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$No<%lO%$z#t%$}WOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h<%lO%$z#t%%lOY#t#t%%oRO;'S%$z;'S;=`%%x;=`O%$z#t%%{XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l%$z<%lO%$z#t%&kP;=`<%l%$z*Q%&sZ'g&jOY$HTYZ$J}Z]$HT]^$J]^!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q%'iXOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$HT<%lO%$z*Y%(aW$XpY#t)[W'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^*Y%(|P;=`<%l$GZ*S%)WZ(qQ'g&jOY%)PYZ$FlZr%)Prs$HTs!`%)P!`!a%)y!a#O%)P#O#P$Ib#P;'S%)P;'S;=`%*n<%lO%)P*S%*UW$XpY#t(qQ'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O*S%*qP;=`<%l%)P*[%+RY$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e*[%+tP;=`<%l$Ej7V%,U^)[W(qQ%]!b!f,g'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!_$Ej!_!`%-Q!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%-]]!g-y)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%.c]%^!b!b,g)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%/[!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%/mY%^!b!b,g$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e)j%0hYY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%1c[)k!c)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`0Q!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%2f]%^!b)[W(qQ!d,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`%3_!`!a%4[!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%3lY%^!b!b,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%4i[)[W(qQ%]!b!f,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%5jY(vP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z%6ib)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e7Z%8Qb)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e5P%9cW)[W(p/]'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^2T%:UW(qQ)Z,g'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O3o%:yZ!V-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!}$e!}#O%;l#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%;wY)QP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e4e%[Z]%=q]^%?Z^!Q%=q!Q![%?w![!w%=q!w!x%AX!x#O%=q#O#P%H_#P#i%=q#i#j%Ds#j#l%=q#l#m%IR#m;'S%=q;'S;=`%Kt<%lO%=q&t%=xUXY'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}4e%>e[XY(o.o'g&jOX%}XY-OYZ*[Z]%}]^-O^p%}pq-Oq#O%}#O#P,^#P;'S%};'S;=`'r<%lO%}4e%?bVXY'g&jOY%}YZ-OZ#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@OWXY'g&jOY%}Z!Q%}!Q![%@h![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@oWXY'g&jOY%}Z!Q%}!Q![%=q![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%A^['g&jOY%}Z!Q%}!Q![%BS![!c%}!c!i%BS!i#O%}#O#P&f#P#T%}#T#Z%BS#Z;'S%};'S;=`'r<%lO%}&t%BX['g&jOY%}Z!Q%}!Q![%B}![!c%}!c!i%B}!i#O%}#O#P&f#P#T%}#T#Z%B}#Z;'S%};'S;=`'r<%lO%}&t%CS['g&jOY%}Z!Q%}!Q![%Cx![!c%}!c!i%Cx!i#O%}#O#P&f#P#T%}#T#Z%Cx#Z;'S%};'S;=`'r<%lO%}&t%C}['g&jOY%}Z!Q%}!Q![%Ds![!c%}!c!i%Ds!i#O%}#O#P&f#P#T%}#T#Z%Ds#Z;'S%};'S;=`'r<%lO%}&t%Dx['g&jOY%}Z!Q%}!Q![%En![!c%}!c!i%En!i#O%}#O#P&f#P#T%}#T#Z%En#Z;'S%};'S;=`'r<%lO%}&t%Es['g&jOY%}Z!Q%}!Q![%Fi![!c%}!c!i%Fi!i#O%}#O#P&f#P#T%}#T#Z%Fi#Z;'S%};'S;=`'r<%lO%}&t%Fn['g&jOY%}Z!Q%}!Q![%Gd![!c%}!c!i%Gd!i#O%}#O#P&f#P#T%}#T#Z%Gd#Z;'S%};'S;=`'r<%lO%}&t%Gi['g&jOY%}Z!Q%}!Q![%=q![!c%}!c!i%=q!i#O%}#O#P&f#P#T%}#T#Z%=q#Z;'S%};'S;=`'r<%lO%}&t%HfXXY'g&jOY%}YZ%}Z]%}]^'W^#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%IW['g&jOY%}Z!Q%}!Q![%I|![!c%}!c!i%I|!i#O%}#O#P&f#P#T%}#T#Z%I|#Z;'S%};'S;=`'r<%lO%}&t%JR['g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KO[XY'g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KwP;=`<%l%=q2a%LVZ!W,V)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P#Q%Lx#Q;'S$e;'S;=`(u<%lO$e'Y%MTY)^d)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%NQ[)[W(qQ%]!b'g&j!_,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z& Vd)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q!Y%6Y!Y!Z%7q!Z![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e2]&!pY!T,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o&#m^)[W(qQ%]!b'g&j!^,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P#p$e#p#q&$i#q;'S$e;'S;=`(u<%lO$e3o&$vY)U,g%_!b)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e'V&%qY!Ua)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e(]&&nc)[W(qQ%]!b'SP'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&(Sc)[W(qQ'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&)jb)[W(qQdT'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![&)_![!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e",tokenizers:[vT,qT,0,1,2,3,4,5,6,7,8,9],topRules:{Program:[0,308]},dynamicPrecedences:{87:1,94:1,119:1,185:1,188:-10,241:-10,242:1,245:-1,247:-10,248:1,263:-1,268:2,269:2,307:-10,366:3,418:1,419:3,420:1,421:1},specialized:[{term:357,get:O=>ZT[O]||-1},{term:32,get:O=>RT[O]||-1},{term:66,get:O=>UT[O]||-1},{term:364,get:O=>VT[O]||-1}],tokenPrec:24905}),_T=Ie.define({name:"cpp",parser:zT.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch)\b/}),LabeledStatement:qc,CaseStatement:O=>O.baseIndent+O.unit,BlockComment:()=>null,CompoundStatement:zO({closing:"}"}),Statement:Ce({except:/^{/})}),ft.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function jT(){return new Je(_T)}const GT=1,Km=189,Jm=190,CT=191,IT=192,ET=193,AT=194,DT=22,MT=23,NT=47,LT=48,BT=53,HT=54,FT=55,KT=57,JT=58,eY=59,tY=60,OY=61,iY=63,rY=230,nY=71,sY=255,oY=121,aY=142,lY=143,cY=146,Fr=10,Kr=13,Hc=32,So=9,Fc=35,hY=40,fY=46,QY=new Set([MT,NT,LT,sY,iY,oY,HT,FT,rY,tY,OY,JT,eY,nY,aY,lY,cY]),uY=new de((O,e)=>{if(O.next<0)O.acceptToken(AT);else if(!(O.next!=Fr&&O.next!=Kr))if(e.context.depth<0)O.acceptToken(IT,1);else{O.advance();let t=0;for(;O.next==Hc||O.next==So;)O.advance(),t++;let i=O.next==Fr||O.next==Kr||O.next==Fc;O.acceptToken(i?ET:CT,-t)}},{contextual:!0,fallback:!0}),$Y=new de((O,e)=>{let t=e.context.depth;if(t<0)return;let i=O.peek(-1);if((i==Fr||i==Kr)&&e.context.depth>=0){let r=0,n=0;for(;;){if(O.next==Hc)r++;else if(O.next==So)r+=8-r%8;else break;O.advance(),n++}r!=t&&O.next!=Fr&&O.next!=Kr&&O.next!=Fc&&(r{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let t=O.peek(e);if(!(t==Hc||t==So)){t!=hY&&t!=fY&&t!=Fr&&t!=Kr&&t!=Fc&&O.acceptToken(GT);return}}}),gY=De({'async "*" "**" FormatConversion FormatSpec':f.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":f.controlKeyword,"in not and or is del":f.operatorKeyword,"from def class global nonlocal lambda":f.definitionKeyword,import:f.moduleKeyword,"with as print":f.keyword,Boolean:f.bool,None:f.null,VariableName:f.variableName,"CallExpression/VariableName":f.function(f.variableName),"FunctionDefinition/VariableName":f.function(f.definition(f.variableName)),"ClassDefinition/VariableName":f.definition(f.className),PropertyName:f.propertyName,"CallExpression/MemberExpression/PropertyName":f.function(f.propertyName),Comment:f.lineComment,Number:f.number,String:f.string,FormatString:f.special(f.string),UpdateOp:f.updateOperator,ArithOp:f.arithmeticOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,Ellipsis:f.punctuation,At:f.meta,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,".":f.derefOperator,", ;":f.separator}),SY={__proto__:null,await:40,or:50,and:52,in:56,not:58,is:60,if:66,else:68,lambda:72,yield:90,from:92,async:98,for:100,None:152,True:154,False:154,del:168,pass:172,break:176,continue:180,return:184,raise:192,import:196,as:198,global:202,nonlocal:204,assert:208,elif:218,while:222,try:228,except:230,finally:232,with:236,def:240,class:250,match:261,case:267},XY=Ee.deserialize({version:14,states:"!L`O`Q$IXOOO%fQ$I[O'#G|OOQ$IS'#Cm'#CmOOQ$IS'#Cn'#CnO'UQ$IWO'#ClO(wQ$I[O'#G{OOQ$IS'#G|'#G|OOQ$IS'#DS'#DSOOQ$IS'#G{'#G{O)eQ$IWO'#CsO)uQ$IWO'#DdO*VQ$IWO'#DhOOQ$IS'#Ds'#DsO*jO`O'#DsO*rOpO'#DsO*zO!bO'#DtO+VO#tO'#DtO+bO&jO'#DtO+mO,UO'#DtO-oQ$I[O'#GmOOQ$IS'#Gm'#GmO'UQ$IWO'#GlO/RQ$I[O'#GlOOQ$IS'#E]'#E]O/jQ$IWO'#E^OOQ$IS'#Gk'#GkO/tQ$IWO'#GjOOQ$IV'#Gj'#GjO0PQ$IWO'#FPOOQ$IS'#GX'#GXO0UQ$IWO'#FOOOQ$IV'#Hx'#HxOOQ$IV'#Gi'#GiOOQ$IT'#Fh'#FhQ`Q$IXOOO'UQ$IWO'#CoO0dQ$IWO'#C{O0kQ$IWO'#DPO0yQ$IWO'#HQO1ZQ$I[O'#EQO'UQ$IWO'#EROOQ$IS'#ET'#ETOOQ$IS'#EV'#EVOOQ$IS'#EX'#EXO1oQ$IWO'#EZO2VQ$IWO'#E_O0PQ$IWO'#EaO2jQ$I[O'#EaO0PQ$IWO'#EdO/jQ$IWO'#EgO/jQ$IWO'#EkO/jQ$IWO'#EnO2uQ$IWO'#EpO2|Q$IWO'#EuO3XQ$IWO'#EqO/jQ$IWO'#EuO0PQ$IWO'#EwO0PQ$IWO'#E|O3^Q$IWO'#FROOQ$IS'#Cc'#CcOOQ$IS'#Cd'#CdOOQ$IS'#Ce'#CeOOQ$IS'#Cf'#CfOOQ$IS'#Cg'#CgOOQ$IS'#Ch'#ChOOQ$IS'#Cj'#CjO'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O3eQ$IWO'#DmOOQ$IS,5:W,5:WO3xQ$IWO'#H[OOQ$IS,5:Z,5:ZO4VQ%1`O,5:ZO4[Q$I[O,59WO0dQ$IWO,59`O0dQ$IWO,59`O0dQ$IWO,59`O6zQ$IWO,59`O7PQ$IWO,59`O7WQ$IWO,59hO7_Q$IWO'#G{O8eQ$IWO'#GzOOQ$IS'#Gz'#GzOOQ$IS'#DY'#DYO8|Q$IWO,59_O'UQ$IWO,59_O9[Q$IWO,59_O9aQ$IWO,5:PO'UQ$IWO,5:POOQ$IS,5:O,5:OO9oQ$IWO,5:OO9tQ$IWO,5:VO'UQ$IWO,5:VO'UQ$IWO,5:TOOQ$IS,5:S,5:SO:VQ$IWO,5:SO:[Q$IWO,5:UOOOO'#Fp'#FpO:aO`O,5:_OOQ$IS,5:_,5:_OOOO'#Fq'#FqO:iOpO,5:_O:qQ$IWO'#DuOOOO'#Fr'#FrO;RO!bO,5:`OOQ$IS,5:`,5:`OOOO'#Fu'#FuO;^O#tO,5:`OOOO'#Fv'#FvO;iO&jO,5:`OOOO'#Fw'#FwO;tO,UO,5:`OOQ$IS'#Fx'#FxOqQ$I[O,5=WO?[Q%GlO,5=WO?{Q$I[O,5=WOOQ$IS,5:x,5:xO@dQ$IXO'#GQOAsQ$IWO,5;TOOQ$IV,5=U,5=UOBOQ$I[O'#HtOBgQ$IWO,5;kOOQ$IS-E:V-E:VOOQ$IV,5;j,5;jO3SQ$IWO'#EwOOQ$IT-E9f-E9fOBoQ$I[O,59ZODvQ$I[O,59gOEaQ$IWO'#G}OElQ$IWO'#G}O0PQ$IWO'#G}OEwQ$IWO'#DROFPQ$IWO,59kOFUQ$IWO'#HRO'UQ$IWO'#HRO/jQ$IWO,5=lOOQ$IS,5=l,5=lO/jQ$IWO'#D|OOQ$IS'#D}'#D}OFsQ$IWO'#FzOGTQ$IWO,58zOGTQ$IWO,58zO)hQ$IWO,5:jOGcQ$I[O'#HTOOQ$IS,5:m,5:mOOQ$IS,5:u,5:uOGvQ$IWO,5:yOHXQ$IWO,5:{OOQ$IS'#F}'#F}OHgQ$I[O,5:{OHuQ$IWO,5:{OHzQ$IWO'#HwOOQ$IS,5;O,5;OOIYQ$IWO'#HsOOQ$IS,5;R,5;RO3XQ$IWO,5;VO3XQ$IWO,5;YOIkQ$I[O'#HyO'UQ$IWO'#HyOIuQ$IWO,5;[O2uQ$IWO,5;[O/jQ$IWO,5;aO0PQ$IWO,5;cOIzQ$IXO'#ElOKTQ$IZO,5;]ONiQ$IWO'#HzO3XQ$IWO,5;aONtQ$IWO,5;cONyQ$IWO,5;hO! RQ$I[O,5;mO'UQ$IWO,5;mO!#uQ$I[O1G.hO!#|Q$I[O1G.hO!&mQ$I[O1G.hO!&wQ$I[O1G.hO!)bQ$I[O1G.hO!)uQ$I[O1G.hO!*YQ$IWO'#HZO!*hQ$I[O'#GmO/jQ$IWO'#HZO!*rQ$IWO'#HYOOQ$IS,5:X,5:XO!*zQ$IWO,5:XO!+PQ$IWO'#H]O!+[Q$IWO'#H]O!+oQ$IWO,5=vOOQ$IS'#Dq'#DqOOQ$IS1G/u1G/uOOQ$IS1G.z1G.zO!,oQ$I[O1G.zO!,vQ$I[O1G.zO0dQ$IWO1G.zO!-cQ$IWO1G/SOOQ$IS'#DX'#DXO/jQ$IWO,59rOOQ$IS1G.y1G.yO!-jQ$IWO1G/cO!-zQ$IWO1G/cO!.SQ$IWO1G/dO'UQ$IWO'#HSO!.XQ$IWO'#HSO!.^Q$I[O1G.yO!.nQ$IWO,59gO!/tQ$IWO,5=rO!0UQ$IWO,5=rO!0^Q$IWO1G/kO!0cQ$I[O1G/kOOQ$IS1G/j1G/jO!0sQ$IWO,5=mO!1jQ$IWO,5=mO/jQ$IWO1G/oO!2XQ$IWO1G/qO!2^Q$I[O1G/qO!2nQ$I[O1G/oOOQ$IS1G/n1G/nOOQ$IS1G/p1G/pOOOO-E9n-E9nOOQ$IS1G/y1G/yOOOO-E9o-E9oO!3OQ$IWO'#HhO/jQ$IWO'#HhO!3^Q$IWO,5:aOOOO-E9p-E9pOOQ$IS1G/z1G/zOOOO-E9s-E9sOOOO-E9t-E9tOOOO-E9u-E9uOOQ$IS-E9v-E9vO!3iQ%GlO1G2rO!4YQ$I[O1G2rO'UQ$IWO,5`OOQ$IS1G1V1G1VO!5YQ$IWO1G1VOOQ$IS'#DT'#DTO/jQ$IWO,5=iOOQ$IS,5=i,5=iO!5_Q$IWO'#FiO!5jQ$IWO,59mO!5rQ$IWO1G/VO!5|Q$I[O,5=mOOQ$IS1G3W1G3WOOQ$IS,5:h,5:hO!6mQ$IWO'#GlOOQ$IS,5cO!8oQ$IWO,5>cO!8}Q$IWO,5>_O!9eQ$IWO,5>_O!9vQ$IZO1G0qO!=XQ$IZO1G0tO!@gQ$IWO,5>eO!@qQ$IWO,5>eO!@yQ$I[O,5>eO/jQ$IWO1G0vO!ATQ$IWO1G0vO3XQ$IWO1G0{ONtQ$IWO1G0}OOQ$IV,5;W,5;WO!AYQ$IYO,5;WO!A_Q$IZO1G0wO!DsQ$IWO'#GUO3XQ$IWO1G0wO3XQ$IWO1G0wO!EQQ$IWO,5>fO!E_Q$IWO,5>fO0PQ$IWO,5>fOOQ$IV1G0{1G0{O!EgQ$IWO'#EyO!ExQ%1`O1G0}OOQ$IV1G1S1G1SO3XQ$IWO1G1SO!FQQ$IWO'#FTOOQ$IV1G1X1G1XO! RQ$I[O1G1XOOQ$IS,5=u,5=uOOQ$IS'#Dn'#DnO/jQ$IWO,5=uO!FVQ$IWO,5=tO!FjQ$IWO,5=tOOQ$IS1G/s1G/sO!FrQ$IWO,5=wO!GSQ$IWO,5=wO!G[Q$IWO,5=wO!GoQ$IWO,5=wO!HPQ$IWO,5=wOOQ$IS1G3b1G3bOOQ$IS7+$f7+$fO!5rQ$IWO7+$nO!IrQ$IWO1G.zO!IyQ$IWO1G.zOOQ$IS1G/^1G/^OOQ$IS,5SO!NaQ$IWO,5>SO!NaQ$IWO,5>SO!NoO!LQO'#DwO!NzOSO'#HiOOOO1G/{1G/{O# PQ$IWO1G/{O# XQ%GlO7+(^O# xQ$I[O1G2PP#!cQ$IWO'#FyOOQ$IS,5T,5>TOOOO7+%g7+%gO#8UQ$IWO1G2rO#8oQ$IWO1G2rP'UQ$IWO'#FlO/jQ$IWO<bO#9cQ$IWO,5>bO0PQ$IWO,5>bO#9tQ$IWO,5>aOOQ$IS<hO#CeQ$IWO,5>hOOQ$IS,5>h,5>hO#CpQ$IWO,5>gO#DRQ$IWO,5>gOOQ$IS1G1P1G1POOQ$IS,5;g,5;gO#DZQ$IWO1G1ZP#D`Q$IWO'#FnO#DpQ$IWO1G1uO#ETQ$IWO1G1uO#EeQ$IWO1G1uP#EpQ$IWO'#FoO#E}Q$IWO7+(}O#F_Q$IWO7+(}O#F_Q$IWO7+(}O#FgQ$IWO7+(}O#FwQ$IWO7+(tO7WQ$IWO7+(tOOQ$ISAN>TAN>TO#GbQ$IWO<aAN>aO/jQ$IWO1G1sO#GrQ$I[O1G1sP#G|Q$IWO'#FmOOQ$IS1G1y1G1yP#HZQ$IWO'#FsO#HhQ$IWO7+)YOOOO-E9r-E9rO#IOQ$IWO7+(^OOQ$ISAN?VAN?VO#IiQ$IWO,5jO$,bQ$IWO,5>jO0PQ$IWO,5;vO$,sQ$IWO,5;zO$,xQ$IWO,5;zO#NzQ$IWO'#IQO$,}Q$IWO'#IQO$-SQ$IWO,5;{OOQ$IS,5;|,5;|O'UQ$IWO'#FgOOQ$IU1G1[1G1[O3XQ$IWO1G1[OOQ$ISAN@gAN@gO$-XQ$IWOG27oO$-iQ$IWO,59{OOQ$IS1G3[1G3[OOQ$IS,5lO#NzQ$IWO,5>lOOQ$IS1G1g1G1gO$0YQ$I[O,5mO$0hQ$IWO,5>mOOQ$IS1G1j1G1jOOQ$IS7+&y7+&yP#NzQ$IWO'#G_O$0pQ$IWO1G4WO$0zQ$IWO1G4WO$1SQ$IWO1G4WOOQ$IS7+%R7+%RO$1bQ$IWO1G1kO$1pQ$I[O'#FWO$1wQ$IWO,5m'PP>pP>vByFcPFw'PPPPF{GR&wP&w&wP&wP&wP&wP&wP&w&w&wP&wPP&wPP&wPGXPG`GfPG`PG`G`PPPG`PIePInItIzIePG`JQPG`PJXJ_PJcJwKfLPJcJcLVLdJcJcJcJcLxMOMRMWMZMaMgMsNVN]NgNm! Z! a! g! m! w! }!!T!!Z!!a!!g!!y!#T!#Z!#a!#g!#q!#w!#}!$T!$Z!$e!$k!$u!${!%U!%[!%k!%s!%}!&UPPPPPPPPP!&[!&d!&m!&w!'SPPPPPPPPPPPP!+r!,[!0j!3vPP!4O!4^!4g!5]!5S!5f!5l!5o!5r!5u!5}!6nPPPPPPPPPP!6q!6tPPPPPPPPP!6z!7W!7d!7j!7s!7v!7|!8S!8Y!8]P!8e!8n!9j!9m]iOr#n$n)c+c'udOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/x}!dP#j#w$Y$h$t%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!P!eP#j#w$Y$h$t$v%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!R!fP#j#w$Y$h$t$v$w%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!T!gP#j#w$Y$h$t$v$w$x%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!V!hP#j#w$Y$h$t$v$w$x$y%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!X!iP#j#w$Y$h$t$v$w$x$y$z%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!]!iP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m'uSOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/x&ZUOXYZhrtv|}!R!S!T!X!j!l!p!q!r!t!u#^#k#n$Q$S$U$X$l$n%O%T%[%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.b.y/i/j/k/l/n/o/p/q/t/x%eWOXYZhrv|}!R!S!T!X!j!l#^#k#n$Q$S$U$X$l$n%O%T%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,S,U,W,Y,Z,],o,q,x,{-n-o.b/o/p/qQ#}uQ.c-sR/u/w'ldOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xW#ql!O!P$`W#yu&b-s/wQ$b!QQ$r!YQ$s!ZW$}!j'h*O+vS&a#z#{Q'R$mQ(l&ZQ(z&qU({&s(|(}U)O&u)P+RQ)n'[W)o'^+q,s-]S+p)p)qY,_*|,`-T-U-wQ,b+OQ,l+gQ,n+il-`,w-f-g-i.R.T.Y.p.u.z/P/[/a/dQ-v-SQ.Z-hQ.g-{Q.r.VU/V.{/Y/bX/]/Q/^/e/fR&`#yi!xXY!S!T%a%h'y(R)V*]*`*bR%_!wQ!|XQ%z#^Q&i$UR&l$XT-r-O.y![!kP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/mQ&^#rR'a$sR'g$}Q%W!nR.e-y'tcOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xS#hc#i!P-d,w-f-g-h-i-{.R.T.Y.p.u.z.{/P/Q/Y/[/^/a/b/d/e/f'tcOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xT#hc#iS#__#`S#b`#cS#da#eS#fb#gT*t(e*uT(f%z(hQ$WwR+o)oX$Uw$V$W&kZkOr$n)c+cXoOr)c+cQ$o!WQ&y$fQ&z$gQ']$qQ'`$sQ)a'QQ)g'VQ)i'WQ)j'XQ)w'_Q)y'aQ+V)VQ+X)WQ+Y)XQ+^)_S+`)b)xQ+d)eQ+e)fQ+f)hQ,d+UQ,e+WQ,g+_Q,h+aQ,m+hQ-W,fQ-Y,kQ-Z,lQ-x-XQ._-lR.x.`WoOr)c+cR#tnQ'_$rR)b'RQ+n)oR,q+oQ)x'_R+a)bZmOnr)c+cQ'c$tR){'dT,u+u,vu-k,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dt-k,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dQ.Z-hX/]/Q/^/e/f!P-c,w-f-g-h-i-{.R.T.Y.p.u.z.{/P/Q/Y/[/^/a/b/d/e/fQ.O-bR.l.Pg.R-e.S.h.o.t/S/U/W/c/g/hu-j,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dX-|-`-j.g/VR.i-{V/X.{/Y/bR.`-lQrOR#vrQ&c#|R(q&cS%n#R$OS(Y%n(]T(]%q&eQ%b!zQ%i!}W'z%b%i(P(TQ(P%fR(T%kQ&n$YR(w&nQ(`%rQ*g(ZT*m(`*gQ'i%PR*P'iS'l%S%TY*T'l*U+|,|-pU*U'm'n'oU+|*V*W*XS,|+},OR-p,}Q#Y]R%u#YQ#]^R%w#]Q#`_R%{#`Q(c%xS*r(c*sR*s(dQ*u(eR,[*uQ#c`R%}#cQ#eaR&O#eQ#gbR&P#gQ#icR&Q#iQ#lfQ&S#jW&V#l&S(t*yQ(t&hR*y/mQ$VwS&j$V&kR&k$WQ&x$dR)T&xQ&[#qR(m&[Q$`!PR&r$`Q*}({S,a*}-VR-V,bQ&v$bR)Q&vQ#ojR&X#oQ+c)cR,i+cQ)U&yR+T)UQ&|$hS)]&|)^R)^&}Q'U$oR)d'UQ'Z$pS)m'Z+lR+l)nQ+r)sR,t+rWnOr)c+cR#snQ,v+uR-^,vd.S-e.h.o.t/S/U/W/c/g/hR.n.SU-z-`.g/VR.f-zQ/R.tS/_/R/`R/`/SS.|.h.iR/Z.|Q.U-eR.q.USqOrT+b)c+cWpOr)c+cR'S$nYjOr$n)c+cR&W#n[wOr#n$n)c+cR&i$U&YPOXYZhrtv|}!R!S!T!X!j!l!p!q!r!t!u#^#k#n$Q$S$U$X$l$n%O%T%[%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.b.y/i/j/k/l/n/o/p/q/t/xQ!oSQ#jeQ#wsU$Yx%d'}S$h!U$kQ$t![Q$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ${!iQ%f!{Q%k#OQ%q#SQ%r#TQ&e$PQ&}$iQ'd$uQ(j&TU(u&m(v*zW)Y&{)[+[+]Q*Z'wQ*d(WQ+Z)ZQ,V*lQ.w.^R/m/rQ!zXQ!}YQ$f!SQ$g!T^'v%a%h'y(R*]*`*bR+W)V[fOr#n$n)c+ch!wXY!S!T%a%h'y(R)V*]*`*bQ#RZQ#mhS$Ov|Q$]}W$d!R$X'O)`S$p!X$lW$|!j'h*O+vQ%S!lQ%x#^`&U#k&R(i(k(s*x,]/qQ&f$QQ&g$SQ&h$UQ'e%OQ'o%TQ'u%_W(V%m(X*e*iQ(Z%oQ(d%yQ(o&`S(r&d/oQ(x&oQ(y&pU)R&w)S+SQ)h'VY)k'Y)l+j+k,oQ)|'g^*Q'k*S+z+{,{-o.bQ*W'mQ*X'nS*Y'r/pW*k(_*f,S,WW*o(b*q,Y,ZQ+t)vQ+y*RQ+}*VQ,X*pQ,^*{Q,p+nQ,y+wQ,z+xQ,},OQ-R,UQ-[,qQ-m,xR.a-nhTOr#k#n$n&R&d'r(i(k)c+c$z!vXYZhv|}!R!S!T!X!j!l#^$Q$S$U$X$l%O%T%_%a%h%m%o%y&`&o&p&w'O'V'Y'g'h'k'm'n'y(R(X(_(b(s)S)V)`)l)v*O*R*S*V*]*`*b*e*f*i*p*q*x*{+S+j+k+n+v+w+x+z+{,O,S,U,W,Y,Z,],o,q,x,{-n-o.b/o/p/qQ#xtW%X!p!t/j/tQ%Y!qQ%Z!rQ%]!uQ%g/iS'q%[/nQ's/kQ't/lQ,P*^Q-Q,QS-q-O.yR/v/xU#|u-s/wR(p&b[gOr#n$n)c+cX!yX#^$U$XQ#WZQ$RvR$[|Q%c!zQ%j!}Q%p#RQ'e$|Q(Q%fQ(U%kQ(^%qQ(a%rQ*h(ZQ-P,PQ-u-QR.d-tQ$ZxQ'|%dR*_'}Q-t-OR/T.yR#QYR#VZR%R!jQ%P!jV)}'h*O+v!]!mP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/mR%U!lR%z#^Q(g%zR*w(hQ$e!RQ&l$XQ)_'OR+_)`Q#rlQ$^!OQ$a!PR&t$`Q(z&sR+Q(}Q(z&sQ+P(|R+Q(}R$c!QXpOr)c+cQ$j!UR'P$kQ$q!XR'Q$lR)u'^Q)s'^V,r+q,s-]Q-l,wQ.W-fR.X-gU-e,w-f-gQ.]-iQ.h-{Q.m.RU.o.T.p/PQ.t.YQ/S.uQ/U.zU/W.{/Y/bQ/c/[Q/g/aR/h/dR.[-hR.j-{",nodeNames:"⚠ print Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatConversion FormatSpec ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:267,context:mY,nodeProps:[["group",-14,4,80,82,83,85,87,89,91,93,94,95,97,100,103,"Statement Statement",-22,6,16,19,23,38,47,48,54,55,58,59,60,61,62,65,68,69,70,74,75,76,77,"Expression",-10,105,107,110,112,113,117,119,124,126,129,"Statement",-9,134,135,138,139,141,142,143,144,145,"Pattern"],["openedBy",21,"(",52,"[",56,"{"],["closedBy",22,")",53,"]",57,"}"]],propSources:[gY],skippedNodes:[0,2],repeatNodeCount:38,tokenData:"&JdMgR!^OX$}XY!&]Y[$}[]!&]]p$}pq!&]qr!(grs!,^st!IYtu$}uv$5[vw$7nwx$8zxy%'vyz%(|z{%*S{|%,r|}%.O}!O%/U!O!P%1k!P!Q%UZ&^7[&WW&f#tOr(}rs)}sw(}wx>wx#O(}#O#P2]#P#o(}#o#p:X#p#q(}#q#r2q#r~(}:Y?QX&^7[&WW&f#tOr>wrs?ms#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:Y?rX&^7[Or>wrs@_s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:Y@dX&^7[Or>wrs-}s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:YAUT&^7[O#o>w#o#p6g#p#q>w#q#r6g#r~>w`x#O!`x#O!gZ&WW&R,XOY!wZ]!Ad]^>w^r!Adrs!Bhs#O!Ad#O#P!C[#P#o!Ad#o#p!9f#p#q!Ad#q#r!7x#r~!AdEc!BoX&^7[&R,XOr>wrs@_s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>wEc!CaT&^7[O#o!Ad#o#p!7x#p#q!Ad#q#r!7x#r~!AdGZ!CuT&^7[O#o!-l#o#p!DU#p#q!-l#q#r!DU#r~!-l0}!De]&TS&WW&R,X&Z`&d!b&f#tOY!DUYZAyZ]!DU]^Ay^r!DUrs!E^sw!DUwx!5tx#O!DU#O#P!FU#P#o!DU#o#p!F[#p~!DU0}!EiX&TS&R,X&Z`&d!bOrAyrsCiswAywx5Px#OAy#O#PEo#P#oAy#o#pEu#p~Ay0}!FXPO~!DU0}!Fe]&TS&WW&R,XOY!`x#O!`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p#0Y#p~#=d2P#=mZQ1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#>gZQ1s&TSOY#=dYZ:{Z]#=d]^:{^r#=drs#?Ysw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#?aZQ1s&TSOY#=dYZ:{Z]#=d]^:{^r#=drs#,zsw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#@ZZQ1s&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@|x#O#=d#O#P#Av#P~#=d2P#ATZQ1s&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#9bx#O#=d#O#P#Av#P~#=d2P#A{TQ1sOY#=dYZ:{Z]#=d]^:{^~#=dLe#Bg_Q1s&^7[&WW&f#tOY!NdYZ(}Z]!Nd]^(}^r!Ndrs# rsw!Ndwx#Cfx#O!Nd#O#P#/f#P#o!Nd#o#p#wZ]#Cf]^>w^r#Cfrs#Djs#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#Dq]Q1s&^7[OY#CfYZ>wZ]#Cf]^>w^r#Cfrs#Ejs#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#Eq]Q1s&^7[OY#CfYZ>wZ]#Cf]^>w^r#Cfrs#'[s#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#FqXQ1s&^7[OY#CfYZ>wZ]#Cf]^>w^#o#Cf#o#p#5h#p#q#Cf#q#r#5h#r~#CfLu#GeXQ1s&^7[OY!KxYZ'PZ]!Kx]^'P^#o!Kx#o#p#HQ#p#q!Kx#q#r#HQ#r~!Kx6i#Ha]Q1s&TS&WW&Z`&d!b&f#tOY#HQYZAyZ]#HQ]^Ay^r#HQrs#IYsw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ6i#Ie]Q1s&TS&Z`&d!bOY#HQYZAyZ]#HQ]^Ay^r#HQrs#J^sw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ6i#Ji]Q1s&TS&Z`&d!bOY#HQYZAyZ]#HQ]^Ay^r#HQrs#Kbsw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ3k#KmZQ1s&TS&Z`&d!bOY#KbYZD_Z]#Kb]^D_^w#Kbwx#)|x#O#Kb#O#P#L`#P#o#Kb#o#p#Lt#p~#Kb3k#LeTQ1sOY#KbYZD_Z]#Kb]^D_^~#Kb3k#L{ZQ1s&TSOY#,zYZ1OZ]#,z]^1O^w#,zwx#-nx#O#,z#O#P#/Q#P#o#,z#o#p#Kb#p~#,z6i#MsTQ1sOY#HQYZAyZ]#HQ]^Ay^~#HQ6i#N]]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p#HQ#p~#=dLu$ c_Q1s&^7[&TS&Z`&d!bOY!KxYZ'PZ]!Kx]^'P^r!Kxrs$!bsw!Kxwx!MYx#O!Kx#O#P#G^#P#o!Kx#o#p#NS#p#q!Kx#q#r#HQ#r~!KxIw$!o]Q1s&^7[&TS&Z`&d!bOY$!bYZGgZ]$!b]^Gg^w$!bwx#%[x#O$!b#O#P$#h#P#o$!b#o#p#Lt#p#q$!b#q#r#Kb#r~$!bIw$#oXQ1s&^7[OY$!bYZGgZ]$!b]^Gg^#o$!b#o#p#Kb#p#q$!b#q#r#Kb#r~$!bMV$$i_Q1s&^7[&WW&ap&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$.px#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hMV$%y_Q1s&^7[&TS&WW&ap&d!b&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$$[x#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hMV$'PXQ1s&^7[OY$%hYZIqZ]$%h]^Iq^#o$%h#o#p$'l#p#q$%h#q#r$'l#r~$%h6y$'{]Q1s&TS&WW&ap&d!b&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$(tx#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l6y$)P]Q1s&WW&ap&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$)xx#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l6y$*T]Q1s&WW&ap&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$*|x#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l5c$+XZQ1s&WW&ap&f#tOY$*|YZMmZ]$*|]^Mm^r$*|rs#6ds#O$*|#O#P$+z#P#o$*|#o#p$,`#p~$*|5c$,PTQ1sOY$*|YZMmZ]$*|]^Mm^~$*|5c$,gZQ1s&WWOY#9bYZ8tZ]#9b]^8t^r#9brs#:Us#O#9b#O#P#;h#P#o#9b#o#p$*|#p~#9b6y$-_TQ1sOY$'lYZKXZ]$'l]^KX^~$'l6y$-w]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p$'l#p~#=dMV$.}_Q1s&^7[&WW&ap&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$/|x#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hKo$0Z]Q1s&^7[&WW&ap&f#tOY$/|YZ!!uZ]$/|]^!!u^r$/|rs#Djs#O$/|#O#P$1S#P#o$/|#o#p$,`#p#q$/|#q#r$*|#r~$/|Ko$1ZXQ1s&^7[OY$/|YZ!!uZ]$/|]^!!u^#o$/|#o#p$*|#p#q$/|#q#r$*|#r~$/|Mg$1}XQ1s&^7[OY!IYYZ$}Z]!IY]^$}^#o!IY#o#p$2j#p#q!IY#q#r$2j#r~!IY7Z$2{]Q1s&TS&WW&Z`&ap&d!b&f#tOY$2jYZ!$gZ]$2j]^!$g^r$2jrs#IYsw$2jwx$(tx#O$2j#O#P$3t#P#o$2j#o#p$4Y#p~$2j7Z$3yTQ1sOY$2jYZ!$gZ]$2j]^!$g^~$2j7Z$4c]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p$2j#p~#=dGz$5o]%jQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz$6{Z!s,W&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz$8R]%dQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}G{$9Z_&_`&^7[&WW&R,X&ap&f#tOY$:YYZIqZ]$:Y]^Iq^r$:Yrs$;jsw$:Ywx%%zx#O$:Y#O#P%!^#P#o$:Y#o#p%$x#p#q$:Y#q#r%!r#r~$:YGk$:k_&^7[&TS&WW&R,X&ap&d!b&f#tOY$:YYZIqZ]$:Y]^Iq^r$:Yrs$;jsw$:Ywx% ^x#O$:Y#O#P%!^#P#o$:Y#o#p%$x#p#q$:Y#q#r%!r#r~$:YFy$;u_&^7[&TS&R,X&d!bOY$Sx#O$Sx#O$_Z&^7[&WW&R,X&f#tOr(}rs)}sw(}wx={x#O(}#O#P2]#P#o(}#o#p:X#p#q(}#q#r2q#r~(}Fy$?VT&^7[O#o$Sx#O$T!Q!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz%>h]%kQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%?tu!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!O$}!O!P%BX!P!Q$}!Q![%Cc![!d$}!d!e%Ee!e!g$}!g!h%7Z!h!l$}!l!m%;k!m!q$}!q!r%H_!r!z$}!z!{%KR!{#O$}#O#P!$R#P#R$}#R#S%Cc#S#U$}#U#V%Ee#V#X$}#X#Y%7Z#Y#^$}#^#_%;k#_#c$}#c#d%H_#d#l$}#l#m%KR#m#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Bj]&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%5_![#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Cvi!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!O$}!O!P%BX!P!Q$}!Q![%Cc![!g$}!g!h%7Z!h!l$}!l!m%;k!m#O$}#O#P!$R#P#R$}#R#S%Cc#S#X$}#X#Y%7Z#Y#^$}#^#_%;k#_#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Ev`&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!R%Fx!R!S%Fx!S#O$}#O#P!$R#P#R$}#R#S%Fx#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%G]`!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!R%Fx!R!S%Fx!S#O$}#O#P!$R#P#R$}#R#S%Fx#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Hp_&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!Y%Io!Y#O$}#O#P!$R#P#R$}#R#S%Io#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%JS_!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!Y%Io!Y#O$}#O#P!$R#P#R$}#R#S%Io#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Kdc&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%Lo![!c$}!c!i%Lo!i#O$}#O#P!$R#P#R$}#R#S%Lo#S#T$}#T#Z%Lo#Z#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%MSc!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%Lo![!c$}!c!i%Lo!i#O$}#O#P!$R#P#R$}#R#S%Lo#S#T$}#T#Z%Lo#Z#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Mg%Nr]y1s&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`& k!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}x!u!}&+n!}#O$}#O#P!$R#P#R$}#R#S&+n#S#T$}#T#f&+n#f#g&>x#g#o&+n#o#p!%i#p#q$}#q#r!$g#r$g$}$g~&+nGZ&9gZ&^7[&TS&Z`&d!b&`,XOr'Prs&:Ysw'Pwx(Rx#O'P#O#PAe#P#o'P#o#pEu#p#q'P#q#rAy#r~'PGZ&:eZ&^7[&TS&Z`&d!bOr'Prs&;Wsw'Pwx(Rx#O'P#O#PAe#P#o'P#o#pEu#p#q'P#q#rAy#r~'PD]&;eX&^7[&TS&e,X&Z`&d!bOwGgwx,kx#OGg#O#PH_#P#oGg#o#pET#p#qGg#q#rD_#r~GgGk&<_Z&^7[&WW&ap&f#t&Y,XOrIqrs)}swIqwx&=Qx#OIq#O#PJs#P#oIq#o#p! T#p#qIq#q#rKX#r~IqGk&=]Z&^7[&WW&ap&f#tOrIqrs)}swIqwx&>Ox#OIq#O#PJs#P#oIq#o#p! T#p#qIq#q#rKX#r~IqFT&>]X&^7[&WW&c,X&ap&f#tOr!!urs?ms#O!!u#O#P!#m#P#o!!u#o#pNc#p#q!!u#q#rMm#r~!!uMg&?_c&^7[&TS&WW&Q&j&Z`&ap&d!b&f#t%m,XOr$}rs&9Ysw$}wx&x!i!t&+n!t!u&5j!u!}&+n!}#O$}#O#P!$R#P#R$}#R#S&+n#S#T$}#T#U&+n#U#V&5j#V#Y&+n#Y#Z&>x#Z#o&+n#o#p!%i#p#q$}#q#r!$g#r$g$}$g~&+nG{&CXZ!V,X&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}SY[O]||-1}],tokenPrec:7282}),BQ=new bc,eP=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function In(O){return(e,t,i)=>{if(i)return!1;let r=e.node.getChild("VariableName");return r&&t(r,O),!0}}const yY={FunctionDefinition:In("function"),ClassDefinition:In("class"),ForStatement(O,e,t){if(t){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name=="in")break}},ImportStatement(O,e){var t,i;let{node:r}=O,n=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let s=r.getChild("import");s;s=s.nextSibling)s.name=="VariableName"&&((i=s.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&e(s,n?"variable":"namespace")},AssignStatement(O,e){for(let t=O.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(O,e){for(let t=null,i=O.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(i,"variable"),t=i},CapturePattern:In("variable"),AsPattern:In("variable"),__proto__:null};function tP(O,e){let t=BQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(Pe.IncludeAnonymous).iterate(s=>{if(s.name){let o=yY[s.name];if(o&&o(s,n,r)||!r&&eP.has(s.name))return!1;r=!1}else if(s.to-s.from>8192){for(let o of tP(O,s.node))i.push(o);return!1}}),BQ.set(e,i),i}const HQ=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,OP=["String","FormatString","Comment","PropertyName"];function xY(O){let e=ue(O.state).resolveInner(O.pos,-1);if(OP.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&HQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)eP.has(r.name)&&(i=i.concat(tP(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:HQ}}const bY=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),wY=[Re("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Re("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Re("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Re("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Re(`if \${}: - -`,{label:"if",detail:"block",type:"keyword"}),Re("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Re("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Re("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Re("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],WY=Cc(OP,po(bY.concat(wY)));function FQ(O,e){let t=O.lineIndent(e.from),i=O.lineAt(O.pos,-1),r=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&O.node.tot?null:t+O.unit}const na=Ie.define({name:"python",parser:XY.configure({props:[pt.add({Body:O=>{var e;return(e=FQ(O,O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except |finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":zO({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":zO({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":zO({closing:"]"}),"String FormatString":()=>null,Script:O=>{if(O.pos+/\s*/.exec(O.textAfter)[0].length>=O.node.to){let e=null;for(let t=O.node,i=t.to;t=t.lastChild,!(!t||t.to!=i);)t.type.name=="Body"&&(e=t);if(e){let t=FQ(O,e);if(t!=null)return t}}return O.continue()}}),ft.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":fO,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function TY(){return new Je(na,[na.data.of({autocomplete:xY}),na.data.of({autocomplete:WY})])}const YY=94,KQ=1,vY=95,qY=96,JQ=2,iP=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],kY=58,ZY=40,rP=95,RY=91,as=45,UY=46,VY=35,zY=37;function Es(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function _Y(O){return O>=48&&O<=57}const jY=new de((O,e)=>{for(let t=!1,i=0,r=0;;r++){let{next:n}=O;if(Es(n)||n==as||n==rP||t&&_Y(n))!t&&(n!=as||r>0)&&(t=!0),i===r&&n==as&&i++,O.advance();else{t&&O.acceptToken(n==ZY?vY:i==2&&e.canShift(JQ)?JQ:qY);break}}}),GY=new de(O=>{if(iP.includes(O.peek(-1))){let{next:e}=O;(Es(e)||e==rP||e==VY||e==UY||e==RY||e==kY||e==as)&&O.acceptToken(YY)}}),CY=new de(O=>{if(!iP.includes(O.peek(-1))){let{next:e}=O;if(e==zY&&(O.advance(),O.acceptToken(KQ)),Es(e)){do O.advance();while(Es(O.next));O.acceptToken(KQ)}}}),IY=De({"AtKeyword import charset namespace keyframes media supports":f.definitionKeyword,"from to selector":f.keyword,NamespaceName:f.namespace,KeyframeName:f.labelName,TagName:f.tagName,ClassName:f.className,PseudoClassName:f.constant(f.className),IdName:f.labelName,"FeatureName PropertyName":f.propertyName,AttributeName:f.attributeName,NumberLiteral:f.number,KeywordQuery:f.keyword,UnaryQueryOp:f.operatorKeyword,"CallTag ValueName":f.atom,VariableName:f.variableName,Callee:f.operatorKeyword,Unit:f.unit,"UniversalSelector NestingSelector":f.definitionOperator,MatchOp:f.compareOperator,"ChildOp SiblingOp, LogicOp":f.logicOperator,BinOp:f.arithmeticOperator,Important:f.modifier,Comment:f.blockComment,ParenthesizedContent:f.special(f.name),ColorLiteral:f.color,StringLiteral:f.string,":":f.punctuation,"PseudoOp #":f.derefOperator,"; ,":f.separator,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace}),EY={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},AY={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},DY={__proto__:null,not:128,only:128,from:158,to:160},MY=Ee.deserialize({version:14,states:"7WQYQ[OOO#_Q[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO#fQ[O'#CfO$YQXO'#CaO$aQ[O'#ChO$lQ[O'#DPO$qQ[O'#DTOOQP'#Ed'#EdO$vQdO'#DeO%bQ[O'#DrO$vQdO'#DtO%sQ[O'#DvO&OQ[O'#DyO&TQ[O'#EPO&cQ[O'#EROOQS'#Ec'#EcOOQS'#ET'#ETQYQ[OOO&jQXO'#CdO'_QWO'#DaO'dQWO'#EjO'oQ[O'#EjQOQWOOOOQP'#Cg'#CgOOQP,59Q,59QO#fQ[O,59QO'yQ[O'#EWO(eQWO,58{O(mQ[O,59SO$lQ[O,59kO$qQ[O,59oO'yQ[O,59sO'yQ[O,59uO'yQ[O,59vO(xQ[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)PQWO,59SO)UQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)ZQ`O,59oOOQS'#Cp'#CpO$vQdO'#CqO)cQvO'#CsO*pQtO,5:POOQO'#Cx'#CxO)UQWO'#CwO+UQWO'#CyOOQS'#Eg'#EgOOQO'#Dh'#DhO+ZQ[O'#DoO+iQWO'#EkO&TQ[O'#DmO+wQWO'#DpOOQO'#El'#ElO(hQWO,5:^O+|QpO,5:`OOQS'#Dx'#DxO,UQWO,5:bO,ZQ[O,5:bOOQO'#D{'#D{O,cQWO,5:eO,hQWO,5:kO,pQWO,5:mOOQS-E8R-E8RO$vQdO,59{O,xQ[O'#EYO-VQWO,5;UO-VQWO,5;UOOQP1G.l1G.lO-|QXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO)PQWO1G.nO)UQWO1G.nOOQP1G/V1G/VO.ZQ`O1G/ZO.tQXO1G/_O/[QXO1G/aO/rQXO1G/bO0YQWO,59zO0_Q[O'#DOO0fQdO'#CoOOQP1G/Z1G/ZO$vQdO1G/ZO0mQpO,59]OOQS,59_,59_O$vQdO,59aO0uQWO1G/kOOQS,59c,59cO0zQ!bO,59eO1SQWO'#DhO1_QWO,5:TO1dQWO,5:ZO&TQ[O,5:VO&TQ[O'#EZO1lQWO,5;VO1wQWO,5:XO'yQ[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2YQWO1G/|O2_QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2mQtO1G/gOOQO,5:t,5:tO3TQ[O,5:tOOQO-E8W-E8WO3bQWO1G0pOOQP7+$Y7+$YOOQP7+$u7+$uO$vQdO7+$uOOQS1G/f1G/fO3mQXO'#EiO3tQWO,59jO3yQtO'#EUO4nQdO'#EfO4xQWO,59ZO4}QpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5VQWO1G/PO$vQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5[QWO,5:uOOQO-E8X-E8XO5jQXO1G/vOOQS7+%h7+%hO5qQYO'#CsO(hQWO'#E[O5yQdO,5:hOOQS,5:h,5:hO6XQtO'#EXO$vQdO'#EXO7VQdO7+%ROOQO7+%R7+%ROOQO1G0`1G0`O7jQpO<T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#[UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^[[oW#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#XPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^XKeS!RPOy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}",tokenizers:[GY,CY,jY,0,1,2,3],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:95,get:O=>EY[O]||-1},{term:56,get:O=>AY[O]||-1},{term:96,get:O=>DY[O]||-1}],tokenPrec:1123});let sa=null;function oa(){if(!sa&&typeof document=="object"&&document.body){let{style:O}=document.body,e=[],t=new Set;for(let i in O)i!="cssText"&&i!="cssFloat"&&typeof O[i]=="string"&&(/[A-Z]/.test(i)&&(i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(i)||(e.push(i),t.add(i)));sa=e.sort().map(i=>({type:"property",label:i}))}return sa||[]}const eu=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(O=>({type:"class",label:O})),tu=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(O=>({type:"keyword",label:O})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(O=>({type:"constant",label:O}))),NY=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(O=>({type:"type",label:O})),WO=/^(\w[\w-]*|-\w[\w-]*|)$/,LY=/^-(-[\w-]*)?$/;function BY(O,e){var t;if((O.name=="("||O.type.isError)&&(O=O.parent||O),O.name!="ArgList")return!1;let i=(t=O.parent)===null||t===void 0?void 0:t.firstChild;return(i==null?void 0:i.name)!="Callee"?!1:e.sliceString(i.from,i.to)=="var"}const Ou=new bc,HY=["Declaration"];function FY(O){for(let e=O;;){if(e.type.isTop)return e;if(!(e=e.parent))return O}}function nP(O,e){if(e.to-e.from>4096){let t=Ou.get(e);if(t)return t;let i=[],r=new Set,n=e.cursor(Pe.IncludeAnonymous);if(n.firstChild())do for(let s of nP(O,n.node))r.has(s.label)||(r.add(s.label),i.push(s));while(n.nextSibling());return Ou.set(e,i),i}else{let t=[],i=new Set;return e.cursor().iterate(r=>{var n;if(r.name=="VariableName"&&r.matchContext(HY)&&((n=r.node.nextSibling)===null||n===void 0?void 0:n.name)==":"){let s=O.sliceString(r.from,r.to);i.has(s)||(i.add(s),t.push({label:s,type:"variable"}))}}),t}}const KY=O=>{let{state:e,pos:t}=O,i=ue(e).resolveInner(t,-1),r=i.type.isError&&i.from==i.to-1&&e.doc.sliceString(i.from,i.to)=="-";if(i.name=="PropertyName"||(r||i.name=="TagName")&&/^(Block|Styles)$/.test(i.resolve(i.to).name))return{from:i.from,options:oa(),validFor:WO};if(i.name=="ValueName")return{from:i.from,options:tu,validFor:WO};if(i.name=="PseudoClassName")return{from:i.from,options:eu,validFor:WO};if(i.name=="VariableName"||(O.explicit||r)&&BY(i,e.doc))return{from:i.name=="VariableName"?i.from:t,options:nP(e.doc,FY(i)),validFor:LY};if(i.name=="TagName"){for(let{parent:o}=i;o;o=o.parent)if(o.name=="Block")return{from:i.from,options:oa(),validFor:WO};return{from:i.from,options:NY,validFor:WO}}if(!O.explicit)return null;let n=i.resolve(t),s=n.childBefore(t);return s&&s.name==":"&&n.name=="PseudoClassSelector"?{from:t,options:eu,validFor:WO}:s&&s.name==":"&&n.name=="Declaration"||n.name=="ArgList"?{from:t,options:tu,validFor:WO}:n.name=="Block"||n.name=="Styles"?{from:t,options:oa(),validFor:WO}:null},As=Ie.define({name:"css",parser:MY.configure({props:[pt.add({Declaration:Ce()}),ft.add({Block:fO})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function sP(){return new Je(As,As.data.of({autocomplete:KY}))}const JY=36,iu=1,ev=2,En=3,aa=4,tv=5,Ov=6,iv=7,rv=8,nv=9,sv=10,ov=11,av=12,lv=13,cv=14,hv=15,fv=16,Qv=17,ru=18,uv=19,oP=20,aP=21,nu=22,$v=23,dv=24;function Tl(O){return O>=65&&O<=90||O>=97&&O<=122||O>=48&&O<=57}function pv(O){return O>=48&&O<=57||O>=97&&O<=102||O>=65&&O<=70}function ei(O,e,t){for(let i=!1;;){if(O.next<0)return;if(O.next==e&&!i){O.advance();return}i=t&&!i&&O.next==92,O.advance()}}function mv(O){for(;;){if(O.next<0||O.peek(1)<0)return;if(O.next==36&&O.peek(1)==36){O.advance(2);return}O.advance()}}function lP(O,e){for(;!(O.next!=95&&!Tl(O.next));)e!=null&&(e+=String.fromCharCode(O.next)),O.advance();return e}function Pv(O){if(O.next==39||O.next==34||O.next==96){let e=O.next;O.advance(),ei(O,e,!1)}else lP(O)}function su(O,e){for(;O.next==48||O.next==49;)O.advance();e&&O.next==e&&O.advance()}function ou(O,e){for(;;){if(O.next==46){if(e)break;e=!0}else if(O.next<48||O.next>57)break;O.advance()}if(O.next==69||O.next==101)for(O.advance(),(O.next==43||O.next==45)&&O.advance();O.next>=48&&O.next<=57;)O.advance()}function au(O){for(;!(O.next<0||O.next==10);)O.advance()}function Pi(O,e){for(let t=0;t!=&|~^/",specialVar:"?",identifierQuotes:'"',words:cP(Sv,gv)};function Xv(O,e,t,i){let r={};for(let n in Yl)r[n]=(O.hasOwnProperty(n)?O:Yl)[n];return e&&(r.words=cP(e,t||"",i)),r}function hP(O){return new de(e=>{var t;let{next:i}=e;if(e.advance(),Pi(i,lu)){for(;Pi(e.next,lu);)e.advance();e.acceptToken(JY)}else if(i==36&&e.next==36&&O.doubleDollarQuotedStrings)mv(e),e.acceptToken(En);else if(i==39||i==34&&O.doubleQuotedStrings)ei(e,i,O.backslashEscapes),e.acceptToken(En);else if(i==35&&O.hashComments||i==47&&e.next==47&&O.slashComments)au(e),e.acceptToken(iu);else if(i==45&&e.next==45&&(!O.spaceAfterDashes||e.peek(1)==32))au(e),e.acceptToken(iu);else if(i==47&&e.next==42){e.advance();for(let r=-1,n=1;!(e.next<0);)if(e.advance(),r==42&&e.next==47){if(n--,!n){e.advance();break}r=-1}else r==47&&e.next==42?(n++,r=-1):r=e.next;e.acceptToken(ev)}else if((i==101||i==69)&&e.next==39)e.advance(),ei(e,39,!0);else if((i==110||i==78)&&e.next==39&&O.charSetCasts)e.advance(),ei(e,39,O.backslashEscapes),e.acceptToken(En);else if(i==95&&O.charSetCasts)for(let r=0;;r++){if(e.next==39&&r>1){e.advance(),ei(e,39,O.backslashEscapes),e.acceptToken(En);break}if(!Tl(e.next))break;e.advance()}else if(i==40)e.acceptToken(iv);else if(i==41)e.acceptToken(rv);else if(i==123)e.acceptToken(nv);else if(i==125)e.acceptToken(sv);else if(i==91)e.acceptToken(ov);else if(i==93)e.acceptToken(av);else if(i==59)e.acceptToken(lv);else if(O.unquotedBitLiterals&&i==48&&e.next==98)e.advance(),su(e),e.acceptToken(nu);else if((i==98||i==66)&&(e.next==39||e.next==34)){const r=e.next;e.advance(),O.treatBitsAsBytes?(ei(e,r,O.backslashEscapes),e.acceptToken($v)):(su(e,r),e.acceptToken(nu))}else if(i==48&&(e.next==120||e.next==88)||(i==120||i==88)&&e.next==39){let r=e.next==39;for(e.advance();pv(e.next);)e.advance();r&&e.next==39&&e.advance(),e.acceptToken(aa)}else if(i==46&&e.next>=48&&e.next<=57)ou(e,!0),e.acceptToken(aa);else if(i==46)e.acceptToken(cv);else if(i>=48&&i<=57)ou(e,!1),e.acceptToken(aa);else if(Pi(i,O.operatorChars)){for(;Pi(e.next,O.operatorChars);)e.advance();e.acceptToken(hv)}else if(Pi(i,O.specialVar))e.next==i&&e.advance(),Pv(e),e.acceptToken(Qv);else if(Pi(i,O.identifierQuotes))ei(e,i,!1),e.acceptToken(uv);else if(i==58||i==44)e.acceptToken(fv);else if(Tl(i)){let r=lP(e,String.fromCharCode(i));e.acceptToken(e.next==46?ru:(t=O.words[r.toLowerCase()])!==null&&t!==void 0?t:ru)}})}const fP=hP(Yl),yv=Ee.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,fP],topRules:{Script:[0,25]},tokenPrec:0});function vl(O){let e=O.cursor().moveTo(O.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function Jr(O,e){let t=O.sliceString(e.from,e.to),i=/^([`'"])(.*)\1$/.exec(t);return i?i[2]:t}function Ds(O){return O&&(O.name=="Identifier"||O.name=="QuotedIdentifier")}function xv(O,e){if(e.name=="CompositeIdentifier"){let t=[];for(let i=e.firstChild;i;i=i.nextSibling)Ds(i)&&t.push(Jr(O,i));return t}return[Jr(O,e)]}function cu(O,e){for(let t=[];;){if(!e||e.name!=".")return t;let i=vl(e);if(!Ds(i))return t;t.unshift(Jr(O,i)),e=vl(i)}}function bv(O,e){let t=ue(O).resolveInner(e,-1),i=Wv(O.doc,t);return t.name=="Identifier"||t.name=="QuotedIdentifier"||t.name=="Keyword"?{from:t.from,quoted:t.name=="QuotedIdentifier"?O.doc.sliceString(t.from,t.from+1):null,parents:cu(O.doc,vl(t)),aliases:i}:t.name=="."?{from:e,quoted:null,parents:cu(O.doc,t),aliases:i}:{from:e,quoted:null,parents:[],empty:!0,aliases:i}}const wv=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function Wv(O,e){let t;for(let r=e;!t;r=r.parent){if(!r)return null;r.name=="Statement"&&(t=r)}let i=null;for(let r=t.firstChild,n=!1,s=null;r;r=r.nextSibling){let o=r.name=="Keyword"?O.sliceString(r.from,r.to).toLowerCase():null,a=null;if(!n)n=o=="from";else if(o=="as"&&s&&Ds(r.nextSibling))a=Jr(O,r.nextSibling);else{if(o&&wv.has(o))break;s&&Ds(r)&&(a=Jr(O,r))}a&&(i||(i=Object.create(null)),i[a]=xv(O,s)),s=/Identifier$/.test(r.name)?r:null}return i}function Tv(O,e){return O?e.map(t=>Object.assign(Object.assign({},t),{label:O+t.label+O,apply:void 0})):e}const Yv=/^\w*$/,vv=/^[`'"]?\w*[`'"]?$/;class Kc{constructor(){this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null));return t[e]||(t[e]=new Kc)}childCompletions(e){return this.children?Object.keys(this.children).filter(t=>t).map(t=>({label:t,type:e})):[]}}function qv(O,e,t,i,r){let n=new Kc,s=n.child(r||"");for(let o in O){let a=o.indexOf("."),c=(a>-1?n.child(o.slice(0,a)):s).child(a>-1?o.slice(a+1):o);c.list=O[o].map(h=>typeof h=="string"?{label:h,type:"property"}:h)}s.list=(e||s.childCompletions("type")).concat(i?s.child(i).list:[]);for(let o in n.children){let a=n.child(o);a.list.length||(a.list=a.childCompletions("type"))}return n.list=s.list.concat(t||n.childCompletions("type")),o=>{let{parents:a,from:l,quoted:c,empty:h,aliases:Q}=bv(o.state,o.pos);if(h&&!o.explicit)return null;Q&&a.length==1&&(a=Q[a[0]]||a);let u=n;for(let p of a){for(;!u.children||!u.children[p];)if(u==n)u=s;else if(u==s&&i)u=u.child(i);else return null;u=u.child(p)}let $=c&&o.state.sliceDoc(o.pos,o.pos+1)==c,d=u.list;return u==n&&Q&&(d=d.concat(Object.keys(Q).map(p=>({label:p,type:"constant"})))),{from:l,to:$?o.pos+1:void 0,options:Tv(c,d),validFor:c?vv:Yv}}}function kv(O,e){let t=Object.keys(O).map(i=>({label:e?i.toUpperCase():i,type:O[i]==aP?"type":O[i]==oP?"keyword":"variable",boost:-1}));return Cc(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],po(t))}let Zv=yv.configure({props:[pt.add({Statement:Ce()}),ft.add({Statement(O){return{from:O.firstChild.to,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:f.keyword,Type:f.typeName,Builtin:f.standard(f.name),Bits:f.number,Bytes:f.string,Bool:f.bool,Null:f.null,Number:f.number,String:f.string,Identifier:f.name,QuotedIdentifier:f.special(f.string),SpecialVar:f.special(f.name),LineComment:f.lineComment,BlockComment:f.blockComment,Operator:f.operator,"Semi Punctuation":f.punctuation,"( )":f.paren,"{ }":f.brace,"[ ]":f.squareBracket})]});class Jc{constructor(e,t){this.dialect=e,this.language=t}get extension(){return this.language.extension}static define(e){let t=Xv(e,e.keywords,e.types,e.builtin),i=Ie.define({name:"sql",parser:Zv.configure({tokenizers:[{from:fP,to:hP(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new Jc(t,i)}}function Rv(O,e=!1){return kv(O.dialect.words,e)}function Uv(O,e=!1){return O.language.data.of({autocomplete:Rv(O,e)})}function Vv(O){return O.schema?qv(O.schema,O.tables,O.schemas,O.defaultTable,O.defaultSchema):()=>null}function zv(O){return O.schema?(O.dialect||QP).language.data.of({autocomplete:Vv(O)}):[]}function _v(O={}){let e=O.dialect||QP;return new Je(e.language,[zv(O),Uv(e,!!O.upperCaseKeywords)])}const QP=Jc.define({}),jv=1,Gv=2,Cv=3,Iv=4,Ev=5,hu=98,Av=101,Dv=102,fu=114,Mv=69,An=48,Qu=46,Nv=43,Lv=45,uu=35,$u=34,Bv=124,Hv=60,Fv=62;function ql(O){return O>=48&&O<=57}function Dn(O){return ql(O)||O==95}const Kv=new de((O,e)=>{if(ql(O.next)){let t=!1;do O.advance();while(Dn(O.next));if(O.next==Qu){if(t=!0,O.advance(),ql(O.next))do O.advance();while(Dn(O.next));else if(O.next==Qu||O.next>127||/\w/.test(String.fromCharCode(O.next)))return}if(O.next==Av||O.next==Mv){if(t=!0,O.advance(),(O.next==Nv||O.next==Lv)&&O.advance(),!Dn(O.next))return;do O.advance();while(Dn(O.next))}if(O.next==Dv){let i=O.peek(1);if(i==An+3&&O.peek(2)==An+2||i==An+6&&O.peek(2)==An+4)O.advance(3),t=!0;else return}t&&O.acceptToken(Ev)}else if(O.next==hu||O.next==fu){if(O.next==hu&&O.advance(),O.next!=fu)return;O.advance();let t=0;for(;O.next==uu;)t++,O.advance();if(O.next!=$u)return;O.advance();e:for(;;){if(O.next<0)return;let i=O.next==$u;if(O.advance(),i){for(let r=0;r{O.next==Bv&&O.acceptToken(jv,1)}),eq=new de(O=>{O.next==Hv?O.acceptToken(Gv,1):O.next==Fv&&O.acceptToken(Cv,1)}),tq=De({"const macro_rules struct union enum type fn impl trait let static":f.definitionKeyword,"mod use crate":f.moduleKeyword,"pub unsafe async mut extern default move":f.modifier,"for if else loop while match continue break return await":f.controlKeyword,"as in ref":f.operatorKeyword,"where _ crate super dyn":f.keyword,self:f.self,String:f.string,Char:f.character,RawString:f.special(f.string),Boolean:f.bool,Identifier:f.variableName,"CallExpression/Identifier":f.function(f.variableName),BoundIdentifier:f.definition(f.variableName),"FunctionItem/BoundIdentifier":f.function(f.definition(f.variableName)),LoopLabel:f.labelName,FieldIdentifier:f.propertyName,"CallExpression/FieldExpression/FieldIdentifier":f.function(f.propertyName),Lifetime:f.special(f.variableName),ScopeIdentifier:f.namespace,TypeIdentifier:f.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":f.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":f.macroName,'"!"':f.macroName,UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Integer:f.integer,Float:f.float,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,"=":f.definitionOperator,".. ... => ->":f.punctuation,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,". DerefOp":f.derefOperator,"&":f.operator,", ; ::":f.separator,"Attribute/...":f.meta}),Oq={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},iq=Ee.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[tq],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"#?|_R!VOX$hXY1_YZ2ZZ]$h]^1_^p$hpq1_qr2srs4qst5Ztu6Vuv9lvw;jwx=nxy!!ayz!#]z{!$X{|!&R|}!'T}!O!(P!O!P!*Q!P!Q!-|!Q!R!6X!R![!7|![!]!Jw!]!^!Lu!^!_!Mq!_!`# x!`!a##y!a!b#&Q!b!c#&|!c!}#'x!}#O#)o#O#P#*k#P#Q#1b#Q#R#2^#R#S#'x#S#T$h#T#U#'x#U#V#3`#V#f#'x#f#g#6s#g#o#'x#o#p#y!X!Y$h!Y!Z!<}!Z#O$h#O#P%x#P#g$h#g#h!?y#h~$h_!;O_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!;}!T!W$h!W!X!<}!X#O$h#O#P%x#P~$h_!Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!<}!T#O$h#O#P%x#P~$h_!?Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!U$h!U!V!<}!V#O$h#O#P%x#P~$h_!@Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#]$h#]#^!@y#^~$h_!AQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#n$h#n#o!Ay#o~$h_!BQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#X$h#X#Y!<}#Y~$h_!CQ_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S~$h_!DYcuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!El^'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S~$h_!FqbuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!HQb'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z~$h_!IcfuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!KQ]!SX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![$h![!]!Ky!]#O$h#O#P%x#P~$h_!LSZdX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!MOZyX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!Mz^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!^$h!^!_!Nv!_!`3u!`#O$h#O#P%x#P~$h_# P]'yX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#!R^oX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#!}!a#O$h#O#P%x#P~$h_##WZ#RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#$S^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#%O!a#O$h#O#P%x#P~$h_#%X]'zX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#&ZZ(RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hV#'VZ'pP'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#(Th'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h_#)xZ[X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hU#*pX'OSOz#+]z{#+s{!P#+]!P!Q#,X!Q#i#+]#i#j#,j#j#l#+]#l#m#.Y#m~#+]U#+dTrQ'OSOz%xz{&^{!P%x!P!Q'S!Q~%xU#+xTrQOz&pz{&^{!P&p!P!Q({!Q~&pU#,^SrQOz&p{!P&p!P!Q'c!Q~&pU#,o['OSOz%xz{&^{!P%x!P!Q'S!Q![#-e![!c%x!c!i#-e!i#T%x#T#Z#-e#Z#o%x#o#p#/r#p~%xU#-jY'OSOz%xz{&^{!P%x!P!Q'S!Q![#.Y![!c%x!c!i#.Y!i#T%x#T#Z#.Y#Z~%xU#._Y'OSOz%xz{&^{!P%x!P!Q'S!Q![#.}![!c%x!c!i#.}!i#T%x#T#Z#.}#Z~%xU#/SY'OSOz%xz{&^{!P%x!P!Q'S!Q![#+]![!c%x!c!i#+]!i#T%x#T#Z#+]#Z~%xU#/wY'OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z~%xU#0l['OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z#q%x#q#r#+]#r~%x_#1kZXX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#2g]'{X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#3kj'_Q'OS!yW'TPOY$hYZ%bZr$hrs#5]sw$hwx#5sxz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h]#5dT'OS'^XOz%xz{&^{!P%x!P!Q'S!Q~%x_#5z]'_Q'OSOY?dYZA`Zr?drsBdsw?dwx@dxz?dz{CO{!P?d!P!QDv!Q#O?d#O#PId#P~?d_#7Oi'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xst#8mtz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$hV#8tg'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$hV#:fh'_Q'OS'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#:]![!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$h_#U#q~$h_#>_Z'|X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#?ZZvX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h",tokenizers:[Jv,eq,Kv,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>Oq[O]||-1}],tokenPrec:15596}),rq=Ie.define({name:"rust",parser:iq.configure({props:[pt.add({IfExpression:Ce({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":Ce()}),ft.add(O=>{if(/(Block|edTokens|List)$/.test(O.name))return fO;if(O.name=="BlockComment")return e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function nq(){return new Je(rq)}const kl=1,sq=2,oq=3,aq=4,lq=5,cq=35,hq=36,fq=37,Qq=11,uq=13;function $q(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function dq(O){return O==9||O==10||O==13||O==32}let du=null,pu=null,mu=0;function Zl(O,e){let t=O.pos+e;if(pu==O&&mu==t)return du;for(;dq(O.peek(e));)e++;let i="";for(;;){let r=O.peek(e);if(!$q(r))break;i+=String.fromCharCode(r),e++}return pu=O,mu=t,du=i||null}function Pu(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t{if(O.next==60){if(O.advance(),O.next==47){O.advance();let t=Zl(O,0);if(!t)return O.acceptToken(lq);if(e.context&&t==e.context.name)return O.acceptToken(sq);for(let i=e.context;i;i=i.parent)if(i.name==t)return O.acceptToken(oq,-2);O.acceptToken(aq)}else if(O.next!=33&&O.next!=63)return O.acceptToken(kl)}},{contextual:!0});function eh(O,e){return new de(t=>{for(let i=0,r=0;;r++){if(t.next<0){r&&t.acceptToken(O);break}if(t.next==e.charCodeAt(i)){if(i++,i==e.length){r>=e.length&&t.acceptToken(O,1-e.length);break}}else i=t.next==e.charCodeAt(0)?1:0;t.advance()}})}const Pq=eh(cq,"-->"),gq=eh(hq,"?>"),Sq=eh(fq,"]]>"),Xq=De({Text:f.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":f.angleBracket,TagName:f.tagName,"MismatchedCloseTag/Tagname":[f.tagName,f.invalid],AttributeName:f.attributeName,AttributeValue:f.attributeValue,Is:f.definitionOperator,"EntityReference CharacterReference":f.character,Comment:f.blockComment,ProcessingInst:f.processingInstruction,DoctypeDecl:f.documentMeta,Cdata:f.special(f.string)}),yq=Ee.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<`#X;'S%y;'S;=`&_<%lO%yX>eV{WOr%ysv%yw#T%y#T#U>z#U;'S%y;'S;=`&_<%lO%yX?PV{WOr%ysv%yw#h%y#h#i?f#i;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#T%y#T#Un.from<=t&&n.to>=t),r=i&&i.getChild("AttributeName");return r?O.sliceString(r.from,r.to):""}function ca(O){for(let e=O&&O.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function bq(O,e){var t;let i=ue(O).resolveInner(e,-1),r=null;for(let n=i;!r&&n.parent;n=n.parent)(n.name=="OpenTag"||n.name=="CloseTag"||n.name=="SelfClosingTag"||n.name=="MismatchedCloseTag")&&(r=n);if(r&&(r.to>e||r.lastChild.type.isError)){let n=r.parent;if(i.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:i.from,context:n}:{type:"openTag",from:i.from,context:ca(n)};if(i.name=="AttributeName")return{type:"attrName",from:i.from,context:r};if(i.name=="AttributeValue")return{type:"attrValue",from:i.from,context:r};let s=i==r||i.name=="Attribute"?i.childBefore(e):i;return(s==null?void 0:s.name)=="StartTag"?{type:"openTag",from:e,context:ca(n)}:(s==null?void 0:s.name)=="StartCloseTag"&&s.to<=e?{type:"closeTag",from:e,context:n}:(s==null?void 0:s.name)=="Is"?{type:"attrValue",from:e,context:r}:s?{type:"attrName",from:e,context:r}:null}else if(i.name=="StartCloseTag")return{type:"closeTag",from:e,context:i.parent};for(;i.parent&&i.to==e&&!(!((t=i.lastChild)===null||t===void 0)&&t.type.isError);)i=i.parent;return i.name=="Element"||i.name=="Text"||i.name=="Document"?{type:"tag",from:e,context:i.name=="Element"?i:ca(i)}:null}let wq=class{constructor(e,t,i){this.attrs=t,this.attrValues=i,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(r=>({label:r,type:"text"})):[]}};const ha=/^[:\-\.\w\u00b7-\uffff]*$/;function gu(O){return Object.assign(Object.assign({type:"property"},O.completion||{}),{label:O.name})}function Su(O){return typeof O=="string"?{label:`"${O}"`,type:"constant"}:/^"/.test(O.label)?O:Object.assign(Object.assign({},O),{label:`"${O.label}"`})}function Wq(O,e){let t=[],i=[],r=Object.create(null);for(let a of e){let l=gu(a);t.push(l),a.global&&i.push(l),a.values&&(r[a.name]=a.values.map(Su))}let n=[],s=[],o=Object.create(null);for(let a of O){let l=i,c=r;a.attributes&&(l=l.concat(a.attributes.map(Q=>typeof Q=="string"?t.find(u=>u.label==Q)||{label:Q,type:"property"}:(Q.values&&(c==r&&(c=Object.create(c)),c[Q.name]=Q.values.map(Su)),gu(Q)))));let h=new wq(a,l,c);o[h.name]=h,n.push(h),a.top&&s.push(h)}s.length||(s=n);for(let a=0;a{var l;let{doc:c}=a.state,h=bq(a.state,a.pos);if(!h||h.type=="tag"&&!a.explicit)return null;let{type:Q,from:u,context:$}=h;if(Q=="openTag"){let d=s,p=la(c,$);if(p){let P=o[p];d=(P==null?void 0:P.children)||n}return{from:u,options:d.map(P=>P.completion),validFor:ha}}else if(Q=="closeTag"){let d=la(c,$);return d?{from:u,to:a.pos+(c.sliceString(a.pos,a.pos+1)==">"?1:0),options:[((l=o[d])===null||l===void 0?void 0:l.closeNameCompletion)||{label:d+">",type:"type"}],validFor:ha}:null}else if(Q=="attrName"){let d=o[ls(c,$)];return{from:u,options:(d==null?void 0:d.attrs)||i,validFor:ha}}else if(Q=="attrValue"){let d=xq(c,$,u);if(!d)return null;let p=o[ls(c,$)],P=((p==null?void 0:p.attrValues)||r)[d];return!P||!P.length?null:{from:u,to:a.pos+(c.sliceString(a.pos,a.pos+1)=='"'?1:0),options:P,validFor:/^"[^"]*"?$/}}else if(Q=="tag"){let d=la(c,$),p=o[d],P=[],y=$&&$.lastChild;d&&(!y||y.name!="CloseTag"||ls(c,y)!=d)&&P.push(p?p.closeCompletion:{label:"",type:"type",boost:2});let x=P.concat(((p==null?void 0:p.children)||($?n:s)).map(b=>b.openCompletion));if($&&(p!=null&&p.text.length)){let b=$.firstChild;b.to>a.pos-20&&!/\S/.test(a.state.sliceDoc(b.to,a.pos))&&(x=x.concat(p.text))}return{from:u,options:x,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const Xu=Ie.define({name:"xml",parser:yq.configure({props:[pt.add({Element(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ft.add({Element(O){let e=O.firstChild,t=O.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:O.to}}}),kc.add({"OpenTag CloseTag":O=>O.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function Tq(O={}){return new Je(Xu,Xu.data.of({autocomplete:Wq(O.elements||[],O.attributes||[])}))}class Ms{constructor(e,t,i,r,n,s,o){this.type=e,this.value=t,this.from=i,this.hash=r,this.end=n,this.children=s,this.positions=o,this.hashProp=[[M.contextHash,r]]}static create(e,t,i,r,n){let s=r+(r<<8)+e+(t<<4)|0;return new Ms(e,t,i,s,n,[],[])}addChild(e,t){e.prop(M.contextHash)!=this.hash&&(e=new he(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let i=this.children.length-1;return i>=0&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from)),new he(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(n,s,o)=>new he(je.none,n,s,o,this.hashProp)})}}var q;(function(O){O[O.Document=1]="Document",O[O.CodeBlock=2]="CodeBlock",O[O.FencedCode=3]="FencedCode",O[O.Blockquote=4]="Blockquote",O[O.HorizontalRule=5]="HorizontalRule",O[O.BulletList=6]="BulletList",O[O.OrderedList=7]="OrderedList",O[O.ListItem=8]="ListItem",O[O.ATXHeading1=9]="ATXHeading1",O[O.ATXHeading2=10]="ATXHeading2",O[O.ATXHeading3=11]="ATXHeading3",O[O.ATXHeading4=12]="ATXHeading4",O[O.ATXHeading5=13]="ATXHeading5",O[O.ATXHeading6=14]="ATXHeading6",O[O.SetextHeading1=15]="SetextHeading1",O[O.SetextHeading2=16]="SetextHeading2",O[O.HTMLBlock=17]="HTMLBlock",O[O.LinkReference=18]="LinkReference",O[O.Paragraph=19]="Paragraph",O[O.CommentBlock=20]="CommentBlock",O[O.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",O[O.Escape=22]="Escape",O[O.Entity=23]="Entity",O[O.HardBreak=24]="HardBreak",O[O.Emphasis=25]="Emphasis",O[O.StrongEmphasis=26]="StrongEmphasis",O[O.Link=27]="Link",O[O.Image=28]="Image",O[O.InlineCode=29]="InlineCode",O[O.HTMLTag=30]="HTMLTag",O[O.Comment=31]="Comment",O[O.ProcessingInstruction=32]="ProcessingInstruction",O[O.URL=33]="URL",O[O.HeaderMark=34]="HeaderMark",O[O.QuoteMark=35]="QuoteMark",O[O.ListMark=36]="ListMark",O[O.LinkMark=37]="LinkMark",O[O.EmphasisMark=38]="EmphasisMark",O[O.CodeMark=39]="CodeMark",O[O.CodeText=40]="CodeText",O[O.CodeInfo=41]="CodeInfo",O[O.LinkTitle=42]="LinkTitle",O[O.LinkLabel=43]="LinkLabel"})(q||(q={}));class Yq{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class vq{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return wr(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,i=0){for(let r=t;r=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let i=(O.type==q.OrderedList?ih:Oh)(t,e,!1);return i>0&&(O.type!=q.BulletList||th(t,e,!1)<0)&&t.text.charCodeAt(t.pos+i-1)==O.value}const uP={[q.Blockquote](O,e,t){return t.next!=62?!1:(t.markers.push(ae(q.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Ut(t.text.charCodeAt(t.pos+1))?2:1)),O.end=e.lineStart+t.text.length,!0)},[q.ListItem](O,e,t){return t.indent-1?!1:(t.moveBaseColumn(t.baseIndent+O.value),!0)},[q.OrderedList]:yu,[q.BulletList]:yu,[q.Document](){return!0}};function Ut(O){return O==32||O==9||O==10||O==13}function wr(O,e=0){for(;et&&Ut(O.charCodeAt(e-1));)e--;return e}function $P(O){if(O.next!=96&&O.next!=126)return-1;let e=O.pos+1;for(;e-1&&O.depth==e.stack.length||i<3?-1:1}function pP(O,e){for(let t=O.stack.length-1;t>=0;t--)if(O.stack[t].type==e)return!0;return!1}function Oh(O,e,t){return(O.next==45||O.next==43||O.next==42)&&(O.pos==O.text.length-1||Ut(O.text.charCodeAt(O.pos+1)))&&(!t||pP(e,q.BulletList)||O.skipSpace(O.pos+2)=48&&r<=57;){i++;if(i==O.text.length)return-1;r=O.text.charCodeAt(i)}return i==O.pos||i>O.pos+9||r!=46&&r!=41||iO.pos+1||O.next!=49)?-1:i+1-O.pos}function mP(O){if(O.next!=35)return-1;let e=O.pos+1;for(;e6?-1:t}function PP(O){if(O.next!=45&&O.next!=61||O.indent>=O.baseIndent+4)return-1;let e=O.pos+1;for(;e/,SP=/\?>/,Ul=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(i);if(n)return O.append(ae(q.Comment,t,t+1+n[0].length));let s=/^\?[^]*?\?>/.exec(i);if(s)return O.append(ae(q.ProcessingInstruction,t,t+1+s[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(i);return o?O.append(ae(q.HTMLTag,t,t+1+o[0].length)):-1},Emphasis(O,e,t){if(e!=95&&e!=42)return-1;let i=t+1;for(;O.char(i)==e;)i++;let r=O.slice(t-1,t),n=O.slice(i,i+1),s=tn.test(r),o=tn.test(n),a=/\s|^$/.test(r),l=/\s|^$/.test(n),c=!l&&(!o||a||s),h=!a&&(!s||l||o),Q=c&&(e==42||!h||s),u=h&&(e==42||!c||o);return O.append(new Ct(e==95?WP:TP,t,i,(Q?1:0)|(u?2:0)))},HardBreak(O,e,t){if(e==92&&O.char(t+1)==10)return O.append(ae(q.HardBreak,t,t+2));if(e==32){let i=t+1;for(;O.char(i)==32;)i++;if(O.char(i)==10&&i>=t+2)return O.append(ae(q.HardBreak,t,i+1))}return-1},Link(O,e,t){return e==91?O.append(new Ct(cr,t,t+1,1)):-1},Image(O,e,t){return e==33&&O.char(t+1)==91?O.append(new Ct(wu,t,t+2,1)):-1},LinkEnd(O,e,t){if(e!=93)return-1;for(let i=O.parts.length-1;i>=0;i--){let r=O.parts[i];if(r instanceof Ct&&(r.type==cr||r.type==wu)){if(!r.side||O.skipSpace(r.to)==t&&!/[(\[]/.test(O.slice(t+1,t+2)))return O.parts[i]=null,-1;let n=O.takeContent(i),s=O.parts[i]=zq(O,n,r.type==cr?q.Link:q.Image,r.from,t+1);if(r.type==cr)for(let o=0;oe?ae(q.URL,e+t,n+t):n==O.length?null:!1}}function vP(O,e,t){let i=O.charCodeAt(e);if(i!=39&&i!=34&&i!=40)return!1;let r=i==40?41:i;for(let n=e+1,s=!1;n=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,r,n){return this.append(new Ct(e,t,i,(r?1:0)|(n?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let i=e;i=e;a--){let d=this.parts[a];if(d instanceof Ct&&d.side&1&&d.type==r.type&&!(n&&(r.side&1||d.side&2)&&(d.to-d.from+s)%3==0&&((d.to-d.from)%3||s%3))){o=d;break}}if(!o)continue;let l=r.type.resolve,c=[],h=o.from,Q=r.to;if(n){let d=Math.min(2,o.to-o.from,s);h=o.to-d,Q=r.from+d,l=d==1?"Emphasis":"StrongEmphasis"}o.type.mark&&c.push(this.elt(o.type.mark,h,o.to));for(let d=a+1;d=0;t--){let i=this.parts[t];if(i instanceof Ct&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return wr(this.text,e-this.offset)+this.offset}elt(e,t,i,r){return typeof e=="string"?ae(this.parser.getNodeType(e),t,i,r):new wP(e,t)}}function zl(O,e){if(!e.length)return O;if(!O.length)return e;let t=O.slice(),i=0;for(let r of e){for(;i(e?e-1:0))return!1;if(this.fragmentEnd<0){let n=this.fragment.to;for(;n>0&&this.input.read(n-1,n)!=` -`;)n--;this.fragmentEnd=n?n-1:0}let i=this.cursor;i||(i=this.cursor=this.fragment.tree.cursor(),i.firstChild());let r=e+this.fragment.offset;for(;i.to<=r;)if(!i.parent())return!1;for(;;){if(i.from>=r)return this.fragment.from<=t;if(!i.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(M.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),n=e.absoluteLineStart,s=n,o=e.block.children.length,a=s,l=o;for(;;){if(t.to-i>r){if(t.type.isAnonymous&&t.firstChild())continue;break}if(e.dontInject.add(t.tree),e.addNode(t.tree,t.from-i),t.type.is("Block")&&(jq.indexOf(t.type.id)<0?(s=t.to-i,o=e.block.children.length):(s=a,o=l,a=t.to-i,l=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>o;)e.block.children.pop(),e.block.positions.pop();return s-n}}const Cq=De({"Blockquote/...":f.quote,HorizontalRule:f.contentSeparator,"ATXHeading1/... SetextHeading1/...":f.heading1,"ATXHeading2/... SetextHeading2/...":f.heading2,"ATXHeading3/...":f.heading3,"ATXHeading4/...":f.heading4,"ATXHeading5/...":f.heading5,"ATXHeading6/...":f.heading6,"Comment CommentBlock":f.comment,Escape:f.escape,Entity:f.character,"Emphasis/...":f.emphasis,"StrongEmphasis/...":f.strong,"Link/... Image/...":f.link,"OrderedList/... BulletList/...":f.list,"BlockQuote/...":f.quote,"InlineCode CodeText":f.monospace,URL:f.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":f.processingInstruction,"CodeInfo LinkLabel":f.labelName,LinkTitle:f.string,Paragraph:f.content}),Iq=new Xo(new on(xP).extend(Cq),Object.keys(Mn).map(O=>Mn[O]),Object.keys(Mn).map(O=>Zq[O]),Object.keys(Mn),Rq,uP,Object.keys(Qa).map(O=>Qa[O]),Object.keys(Qa),[]);function Eq(O,e,t){let i=[];for(let r=O.firstChild,n=e;;r=r.nextSibling){let s=r?r.from:t;if(s>n&&i.push({from:n,to:s}),!r)break;n=r.to}return i}function Aq(O){let{codeParser:e,htmlParser:t}=O;return{wrap:bO((r,n)=>{let s=r.type.id;if(e&&(s==q.CodeBlock||s==q.FencedCode)){let o="";if(s==q.FencedCode){let l=r.node.getChild(q.CodeInfo);l&&(o=n.read(l.from,l.to))}let a=e(o);if(a)return{parser:a,overlay:l=>l.type.id==q.CodeText}}else if(t&&(s==q.HTMLBlock||s==q.HTMLTag))return{parser:t,overlay:Eq(r.node,r.from,r.to)};return null})}}const Dq={resolve:"Strikethrough",mark:"StrikethroughMark"},Mq={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":f.strikethrough}},{name:"StrikethroughMark",style:f.processingInstruction}],parseInline:[{name:"Strikethrough",parse(O,e,t){if(e!=126||O.char(t+1)!=126||O.char(t+2)==126)return-1;let i=O.slice(t-1,t),r=O.slice(t+2,t+3),n=/\s|^$/.test(i),s=/\s|^$/.test(r),o=tn.test(i),a=tn.test(r);return O.addDelimiter(Dq,t,t+2,!s&&(!a||n||o),!n&&(!o||s||a))},after:"Emphasis"}]};function Wr(O,e,t=0,i,r=0){let n=0,s=!0,o=-1,a=-1,l=!1,c=()=>{i.push(O.elt("TableCell",r+o,r+a,O.parser.parseInline(e.slice(o,a),r+o)))};for(let h=t;h-1)&&n++,s=!1,i&&(o>-1&&c(),i.push(O.elt("TableDelimiter",h+r,h+r+1))),o=a=-1):(l||Q!=32&&Q!=9)&&(o<0&&(o=h),a=h+1),l=!l&&Q==92}return o>-1&&(n++,i&&c()),n}function Tu(O,e){for(let t=e;tr instanceof Yu)||!Tu(e.text,e.basePos))return!1;let i=O.scanLine(O.absoluteLineEnd+1).text;return kP.test(i)&&Wr(O,e.text,e.basePos)==Wr(O,i,e.basePos)},before:"SetextHeading"}]};class Lq{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const Bq={defineNodes:[{name:"Task",block:!0,style:f.list},{name:"TaskMarker",style:f.atom}],parseBlock:[{name:"TaskList",leaf(O,e){return/^\[[ xX]\]/.test(e.content)&&O.parentType().name=="ListItem"?new Lq:null},after:"SetextHeading"}]},Hq=[Nq,Bq,Mq];function ZP(O,e,t){return(i,r,n)=>{if(r!=O||i.char(n+1)==O)return-1;let s=[i.elt(t,n,n+1)];for(let o=n+1;o=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function CP(O){return O==9||O==10||O==13||O==32}let Zu=null,Ru=null,Uu=0;function jl(O,e){let t=O.pos+e;if(Uu==t&&Ru==O)return Zu;let i=O.peek(e);for(;CP(i);)i=O.peek(++e);let r="";for(;Xk(i);)r+=String.fromCharCode(i),i=O.peek(++e);return Ru=O,Uu=t,Zu=r?r.toLowerCase():i==yk||i==xk?void 0:null}const IP=60,Ls=62,rh=47,yk=63,xk=33,bk=45;function Vu(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t-1?new Vu(jl(i,1)||"",O):O},reduce(O,e){return e==hk&&O?O.parent:O},reuse(O,e,t,i){let r=e.type.id;return r==Ns||r==GP?new Vu(jl(i,1)||"",O):O},hash(O){return O?O.hash:0},strict:!1}),Tk=new de((O,e)=>{if(O.next!=IP){O.next<0&&e.context&&O.acceptToken(ua);return}O.advance();let t=O.next==rh;t&&O.advance();let i=jl(O,0);if(i===void 0)return;if(!i)return O.acceptToken(t?ck:Ns);let r=e.context?e.context.name:null;if(t){if(i==r)return O.acceptToken(ok);if(r&&Sk[r])return O.acceptToken(ua,-2);if(e.dialectEnabled(mk))return O.acceptToken(ak);for(let n=e.context;n;n=n.parent)if(n.name==i)return;O.acceptToken(lk)}else{if(i=="script")return O.acceptToken(RP);if(i=="style")return O.acceptToken(UP);if(i=="textarea")return O.acceptToken(VP);if(gk.hasOwnProperty(i))return O.acceptToken(zP);r&&ku[r]&&ku[r][i]?O.acceptToken(ua,-1):O.acceptToken(Ns)}},{contextual:!0}),Yk=new de(O=>{for(let e=0,t=0;;t++){if(O.next<0){t&&O.acceptToken(qu);break}if(O.next==bk)e++;else if(O.next==Ls&&e>=2){t>3&&O.acceptToken(qu,-2);break}else e=0;O.advance()}});function vk(O){for(;O;O=O.parent)if(O.name=="svg"||O.name=="math")return!0;return!1}const qk=new de((O,e)=>{if(O.next==rh&&O.peek(1)==Ls){let t=e.dialectEnabled(Pk)||vk(e.context);O.acceptToken(t?sk:vu,2)}else O.next==Ls&&O.acceptToken(vu,1)});function nh(O,e,t){let i=2+O.length;return new de(r=>{for(let n=0,s=0,o=0;;o++){if(r.next<0){o&&r.acceptToken(e);break}if(n==0&&r.next==IP||n==1&&r.next==rh||n>=2&&ns?r.acceptToken(e,-s):r.acceptToken(t,-(s-2));break}else if((r.next==10||r.next==13)&&o){r.acceptToken(e,1);break}else n=s=0;r.advance()}})}const kk=nh("script",ek,tk),Zk=nh("style",Ok,ik),Rk=nh("textarea",rk,nk),Uk=De({"Text RawText":f.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":f.angleBracket,TagName:f.tagName,"MismatchedCloseTag/TagName":[f.tagName,f.invalid],AttributeName:f.attributeName,"AttributeValue UnquotedAttributeValue":f.attributeValue,Is:f.definitionOperator,"EntityReference CharacterReference":f.character,Comment:f.blockComment,ProcessingInst:f.processingInstruction,DoctypeDecl:f.documentMeta}),Vk=Ee.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:Wk,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[Uk],skippedNodes:[0],repeatNodeCount:9,tokenData:"#%g!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q$q!Q![-_![!]!!O!]!^-_!^!_!&W!_!`#$o!`!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U-_4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/echSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXhSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bchS`P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjhSkWc!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibkWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`Oa!R!R9cP;=`<%l8q!Z9mYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjhSkWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_b#d#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!>kdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#V1n#V#W!?y#W#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!@SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#h1n#h#i!Ab#i#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!AkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#m1n#m#n!By#n#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!CSdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#d1n#d#e!Db#e#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!DkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#X1n#X#Y!5]#Y#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!FSchS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!a!G_!a!b##T!b#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!R!GfY!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!a!G_!a!b!Lv!b;'S!G_;'S;=`!N]<%lO!G_q!HZV!cpOv!HUvx!Hpx!a!HU!a!b!Iq!b;'S!HU;'S;=`!Jp<%lO!HUP!HsTO!a!Hp!a!b!IS!b;'S!Hp;'S;=`!Ik<%lO!HpP!IVTO!`!Hp!`!a!If!a;'S!Hp;'S;=`!Ik<%lO!HpP!IkOxPP!InP;=`<%l!Hpq!IvV!cpOv!HUvx!Hpx!`!HU!`!a!J]!a;'S!HU;'S;=`!Jp<%lO!HUq!JdS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!JsP;=`<%l!HUa!J{X!a`Or!Jvrs!Hpsv!Jvvw!Hpw!a!Jv!a!b!Kh!b;'S!Jv;'S;=`!Lp<%lO!Jva!KmX!a`Or!Jvrs!Hpsv!Jvvw!Hpw!`!Jv!`!a!LY!a;'S!Jv;'S;=`!Lp<%lO!Jva!LaT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!LsP;=`<%l!Jv!R!L}Y!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!`!G_!`!a!Mm!a;'S!G_;'S;=`!N]<%lO!G_!R!MvV!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!N`P;=`<%l!G_T!NhbhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!a!Hp!a!b# p!b#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT# ubhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!`!Hp!`!a!If!a#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT##QP;=`<%l!Nc!V##^chS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!`!G_!`!a!Mm!a#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!V#$lP;=`<%l!Ey!V#$zXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[kk,Zk,Rk,qk,Tk,Yk,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:485},tokenPrec:487});function EP(O,e){let t=Object.create(null);for(let i of O.getChildren(_P)){let r=i.getChild(Qk),n=i.getChild(_l)||i.getChild(jP);r&&(t[e.read(r.from,r.to)]=n?n.type.id==_l?e.read(n.from+1,n.to-1):e.read(n.from,n.to):"")}return t}function zu(O,e){let t=O.getChild(fk);return t?e.read(t.from,t.to):" "}function $a(O,e,t){let i;for(let r of t)if(!r.attrs||r.attrs(i||(i=EP(O.node.parent.firstChild,e))))return{parser:r.parser};return null}function AP(O=[],e=[]){let t=[],i=[],r=[],n=[];for(let o of O)(o.tag=="script"?t:o.tag=="style"?i:o.tag=="textarea"?r:n).push(o);let s=e.length?Object.create(null):null;for(let o of e)(s[o.name]||(s[o.name]=[])).push(o);return bO((o,a)=>{let l=o.type.id;if(l==uk)return $a(o,a,t);if(l==$k)return $a(o,a,i);if(l==dk)return $a(o,a,r);if(l==GP&&n.length){let c=o.node,h=zu(c,a),Q;for(let u of n)if(u.tag==h&&(!u.attrs||u.attrs(Q||(Q=EP(c,a))))){let $=c.parent.lastChild;return{parser:u.parser,overlay:[{from:o.to,to:$.type.id==pk?$.from:c.parent.to}]}}}if(s&&l==_P){let c=o.node,h;if(h=c.firstChild){let Q=s[a.read(h.from,h.to)];if(Q)for(let u of Q){if(u.tagName&&u.tagName!=zu(c.parent,a))continue;let $=c.lastChild;if($.type.id==_l){let d=$.from+1,p=$.lastChild,P=$.to-(p&&p.isError?0:1);if(P>d)return{parser:u.parser,overlay:[{from:d,to:P}]}}else if($.type.id==jP)return{parser:u.parser,overlay:[{from:$.from,to:$.to}]}}}}return null})}const hr=["_blank","_self","_top","_parent"],da=["ascii","utf-8","utf-16","latin1","latin1"],pa=["get","post","put","delete"],ma=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],gt=["true","false"],C={},zk={a:{attrs:{href:null,ping:null,type:null,media:null,target:hr,hreflang:null}},abbr:C,address:C,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:C,aside:C,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:C,base:{attrs:{href:null,target:hr}},bdi:C,bdo:C,blockquote:{attrs:{cite:null}},body:C,br:C,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:ma,formmethod:pa,formnovalidate:["novalidate"],formtarget:hr,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:C,center:C,cite:C,code:C,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:C,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:C,div:C,dl:C,dt:C,em:C,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:C,figure:C,footer:C,form:{attrs:{action:null,name:null,"accept-charset":da,autocomplete:["on","off"],enctype:ma,method:pa,novalidate:["novalidate"],target:hr}},h1:C,h2:C,h3:C,h4:C,h5:C,h6:C,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:C,hgroup:C,hr:C,html:{attrs:{manifest:null}},i:C,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:ma,formmethod:pa,formnovalidate:["novalidate"],formtarget:hr,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:C,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:C,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:C,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:da,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:C,noscript:C,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:C,param:{attrs:{name:null,value:null}},pre:C,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:C,rt:C,ruby:C,samp:C,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:da}},section:C,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:C,source:{attrs:{src:null,type:null,media:null}},span:C,strong:C,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:C,summary:C,sup:C,table:C,tbody:C,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:C,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:C,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:C,time:{attrs:{datetime:null}},title:C,tr:C,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:C,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:C},DP={accesskey:null,class:null,contenteditable:gt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:gt,autocorrect:gt,autocapitalize:gt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":gt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":gt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":gt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":gt,"aria-hidden":gt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":gt,"aria-multiselectable":gt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":gt,"aria-relevant":null,"aria-required":gt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},MP="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(O=>"on"+O);for(let O of MP)DP[O]=null;class Bs{constructor(e,t){this.tags=Object.assign(Object.assign({},zk),e),this.globalAttrs=Object.assign(Object.assign({},DP),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Bs.default=new Bs;function Li(O,e,t=O.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?O.sliceString(r.from,Math.min(r.to,t)):""}function yo(O,e=!1){for(let t=O.parent;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function NP(O,e,t){let i=t.tags[Li(O,yo(e,!0))];return(i==null?void 0:i.children)||t.allTags}function sh(O,e){let t=[];for(let i=e;i=yo(i);){let r=Li(O,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}const LP=/^[:\-\.\w\u00b7-\uffff]*$/;function _u(O,e,t,i,r){let n=/\s*>/.test(O.sliceDoc(r,r+5))?"":">";return{from:i,to:r,options:NP(O.doc,t,e).map(s=>({label:s,type:"type"})).concat(sh(O.doc,t).map((s,o)=>({label:"/"+s,apply:"/"+s+n,type:"type",boost:99-o}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function ju(O,e,t,i){let r=/\s*>/.test(O.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:sh(O.doc,e).map((n,s)=>({label:n,apply:n+r,type:"type",boost:99-s})),validFor:LP}}function _k(O,e,t,i){let r=[],n=0;for(let s of NP(O.doc,t,e))r.push({label:"<"+s,type:"type"});for(let s of sh(O.doc,t))r.push({label:"",type:"type",boost:99-n++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function jk(O,e,t,i,r){let n=yo(t),s=n?e.tags[Li(O.doc,n)]:null,o=s&&s.attrs?Object.keys(s.attrs):[],a=s&&s.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(l=>({label:l,type:"property"})),validFor:LP}}function Gk(O,e,t,i,r){var n;let s=(n=t.parent)===null||n===void 0?void 0:n.getChild("AttributeName"),o=[],a;if(s){let l=O.sliceDoc(s.from,s.to),c=e.globalAttrs[l];if(!c){let h=yo(t),Q=h?e.tags[Li(O.doc,h)]:null;c=(Q==null?void 0:Q.attrs)&&Q.attrs[l]}if(c){let h=O.sliceDoc(i,r).toLowerCase(),Q='"',u='"';/^['"]/.test(h)?(a=h[0]=='"'?/^[^"]*$/:/^[^']*$/,Q="",u=O.sliceDoc(r,r+1)==h[0]?"":h[0],h=h.slice(1),i++):a=/^[^\s<>='"]*$/;for(let $ of c)o.push({label:$,apply:Q+$+u,type:"constant"})}}return{from:i,to:r,options:o,validFor:a}}function Ck(O,e){let{state:t,pos:i}=e,r=ue(t).resolveInner(i),n=r.resolve(i,-1);for(let s=i,o;r==n&&(o=n.childBefore(s));){let a=o.lastChild;if(!a||!a.type.isError||a.fromCk(i,r)}const BP=[{tag:"script",attrs:O=>O.type=="text/typescript"||O.lang=="ts",parser:Lm.parser},{tag:"script",attrs:O=>O.type=="text/babel"||O.type=="text/jsx",parser:Bm.parser},{tag:"script",attrs:O=>O.type=="text/typescript-jsx",parser:Hm.parser},{tag:"script",attrs(O){return!O.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(O.type)},parser:kt.parser},{tag:"style",attrs(O){return(!O.lang||O.lang=="css")&&(!O.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(O.type))},parser:As.parser}],HP=[{name:"style",parser:As.parser.configure({top:"Styles"})}].concat(MP.map(O=>({name:O,parser:kt.parser}))),Vi=Ie.define({name:"html",parser:Vk.configure({props:[pt.add({Element(O){let e=/^(\s*)(<\/)?/.exec(O.textAfter);return O.node.to<=O.pos+e[0].length?O.continue():O.lineIndent(O.node.from)+(e[2]?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit},Document(O){if(O.pos+/\s*/.exec(O.textAfter)[0].lengthO.getChild("TagName")})],wrap:AP(BP,HP)}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}});function oh(O={}){let e="",t;O.matchClosingTags===!1&&(e="noMatch"),O.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(O.nestedLanguages&&O.nestedLanguages.length||O.nestedAttributes&&O.nestedAttributes.length)&&(t=AP((O.nestedLanguages||[]).concat(BP),(O.nestedAttributes||[]).concat(HP)));let i=t||e?Vi.configure({dialect:e,wrap:t}):Vi;return new Je(i,[Vi.data.of({autocomplete:Ik(O)}),O.autoCloseTags!==!1?Ek:[],Fm().support,sP().support])}const Gu=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Ek=z.inputHandler.of((O,e,t,i)=>{if(O.composing||O.state.readOnly||e!=t||i!=">"&&i!="/"||!Vi.isActiveAt(O.state,e,-1))return!1;let{state:r}=O,n=r.changeByRange(s=>{var o,a,l;let{head:c}=s,h=ue(r).resolveInner(c,-1),Q;if((h.name=="TagName"||h.name=="StartTag")&&(h=h.parent),i==">"&&h.name=="OpenTag"){if(((a=(o=h.parent)===null||o===void 0?void 0:o.lastChild)===null||a===void 0?void 0:a.name)!="CloseTag"&&(Q=Li(r.doc,h.parent,c))&&!Gu.has(Q)){let u=O.state.doc.sliceString(c,c+1)===">",$=`${u?"":">"}`;return{range:X.cursor(c+1),changes:{from:c+(u?1:0),insert:$}}}}else if(i=="/"&&h.name=="OpenTag"){let u=h.parent,$=u==null?void 0:u.parent;if(u.from==c-1&&((l=$.lastChild)===null||l===void 0?void 0:l.name)!="CloseTag"&&(Q=Li(r.doc,$,c))&&!Gu.has(Q)){let d=O.state.doc.sliceString(c,c+1)===">",p=`/${Q}${d?"":">"}`,P=c+p.length+(d?1:0);return{range:X.cursor(P),changes:{from:c,insert:p}}}}return{range:s}});return n.changes.empty?!1:(O.dispatch(n,{userEvent:"input.type",scrollIntoView:!0}),!0)}),FP=Wc({block:{open:""}}),KP=new M,JP=Iq.configure({props:[ft.add(O=>!O.is("Block")||O.is("Document")||Gl(O)!=null?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),KP.add(Gl),pt.add({Document:()=>null}),oi.add({Document:FP})]});function Gl(O){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(O.name);return e?+e[1]:void 0}function Ak(O,e){let t=O;for(;;){let i=t.nextSibling,r;if(!i||(r=Gl(i.type))!=null&&r<=e)break;t=i}return t.to}const Dk=xp.of((O,e,t)=>{for(let i=ue(O).resolveInner(t,-1);i&&!(i.fromt)return{from:t,to:n}}return null});function ah(O){return new Yt(FP,O,[Dk],"markdown")}const Mk=ah(JP),Nk=JP.configure([Hq,Kq,Fq,Jq]),eg=ah(Nk);function Lk(O,e){return t=>{if(t&&O){let i=null;if(t=/\S*/.exec(t)[0],typeof O=="function"?i=O(t):i=Ts.matchLanguageName(O,t,!0),i instanceof Ts)return i.support?i.support.language.parser:Mr.getSkippingParser(i.load());if(i)return i.parser}return e?e.parser:null}}class Ln{constructor(e,t,i,r,n,s,o){this.node=e,this.from=t,this.to=i,this.spaceBefore=r,this.spaceAfter=n,this.type=s,this.item=o}blank(e,t=!0){let i=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;i.length0;r--)i+=" ";return i+(t?this.spaceAfter:"")}}marker(e,t){let i=this.node.name=="OrderedList"?String(+Og(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function tg(O,e){let t=[];for(let r=O;r&&r.name!="Document";r=r.parent)(r.name=="ListItem"||r.name=="Blockquote"||r.name=="FencedCode")&&t.push(r);let i=[];for(let r=t.length-1;r>=0;r--){let n=t[r],s,o=e.lineAt(n.from),a=n.from-o.from;if(n.name=="FencedCode")i.push(new Ln(n,a,a,"","","",null));else if(n.name=="Blockquote"&&(s=/^[ \t]*>( ?)/.exec(o.text.slice(a))))i.push(new Ln(n,a,a+s[0].length,"",s[1],">",null));else if(n.name=="ListItem"&&n.parent.name=="OrderedList"&&(s=/^([ \t]*)\d+([.)])([ \t]*)/.exec(o.text.slice(a)))){let l=s[3],c=s[0].length;l.length>=4&&(l=l.slice(0,l.length-4),c-=4),i.push(new Ln(n.parent,a,a+c,s[1],l,s[2],n))}else if(n.name=="ListItem"&&n.parent.name=="BulletList"&&(s=/^([ \t]*)([-+*])([ \t]{1,4}\[[ xX]\])?([ \t]+)/.exec(o.text.slice(a)))){let l=s[4],c=s[0].length;l.length>4&&(l=l.slice(0,l.length-4),c-=4);let h=s[2];s[3]&&(h+=s[3].replace(/[xX]/," ")),i.push(new Ln(n.parent,a,a+c,s[1],l,h,n))}}return i}function Og(O,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(O.from,O.from+10))}function Pa(O,e,t,i=0){for(let r=-1,n=O;;){if(n.name=="ListItem"){let o=Og(n,e),a=+o[2];if(r>=0){if(a!=r+1)return;t.push({from:n.from+o[1].length,to:n.from+o[0].length,insert:String(r+2+i)})}r=a}let s=n.nextSibling;if(!s)break;n=s}}const Bk=({state:O,dispatch:e})=>{let t=ue(O),{doc:i}=O,r=null,n=O.changeByRange(s=>{if(!s.empty||!eg.isActiveAt(O,s.from))return r={range:s};let o=s.from,a=i.lineAt(o),l=tg(t.resolveInner(o,-1),i);for(;l.length&&l[l.length-1].from>o-a.from;)l.pop();if(!l.length)return r={range:s};let c=l[l.length-1];if(c.to-c.spaceAfter.length>o-a.from)return r={range:s};let h=o>=c.to-c.spaceAfter.length&&!/\S/.test(a.text.slice(c.to));if(c.item&&h)if(c.node.firstChild.to>=o||a.from>0&&!/[^\s>]/.test(i.lineAt(a.from-1).text)){let p=l.length>1?l[l.length-2]:null,P,y="";p&&p.item?(P=a.from+p.from,y=p.marker(i,1)):P=a.from+(p?p.to:0);let x=[{from:P,to:o,insert:y}];return c.node.name=="OrderedList"&&Pa(c.item,i,x,-2),p&&p.node.name=="OrderedList"&&Pa(p.item,i,x),{range:X.cursor(P+y.length),changes:x}}else{let p="";for(let P=0,y=l.length-2;P<=y;P++)p+=l[P].blank(P\s*$/.exec(p.text);if(P&&P.index==c.from){let y=O.changes([{from:p.from+P.index,to:p.to},{from:a.from+c.from,to:a.to}]);return{range:s.map(y),changes:y}}}let Q=[];c.node.name=="OrderedList"&&Pa(c.item,i,Q);let u=c.item&&c.item.from]*/.exec(a.text)[0].length>=c.to)for(let p=0,P=l.length-1;p<=P;p++)$+=p==P&&!u?l[p].marker(i,1):l[p].blank(pa.from&&/\s/.test(a.text.charAt(d-a.from-1));)d--;return $=O.lineBreak+$,Q.push({from:d,to:o,insert:$}),{range:X.cursor(d+$.length),changes:Q}});return r?!1:(e(O.update(n,{scrollIntoView:!0,userEvent:"input"})),!0)};function Cu(O){return O.name=="QuoteMark"||O.name=="ListMark"}function Hk(O,e){let t=O.resolveInner(e,-1),i=e;Cu(t)&&(i=t.from,t=t.parent);for(let r;r=t.childBefore(i);)if(Cu(r))i=r.from;else if(r.name=="OrderedList"||r.name=="BulletList")t=r.lastChild,i=t.to;else break;return t}const Fk=({state:O,dispatch:e})=>{let t=ue(O),i=null,r=O.changeByRange(n=>{let s=n.from,{doc:o}=O;if(n.empty&&eg.isActiveAt(O,n.from)){let a=o.lineAt(s),l=tg(Hk(t,s),o);if(l.length){let c=l[l.length-1],h=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(s-a.from>h&&!/\S/.test(a.text.slice(h,s-a.from)))return{range:X.cursor(a.from+h),changes:{from:a.from+h,to:s}};if(s-a.from==h){let Q=a.from+c.from;if(c.item&&c.node.fromnAN>nO7oQPOAN>sO6lQPOAN>xOOQO1G.s1G.sOOQO,5;O,5;OOOQO-E8b-E8bOOQO7+$g7+$gOOQO7+%`7+%`O7tQPO7+%`O7yQPO'#DzO8XQPO'#EkO8dQPO,5:eOOQO,5:e,5:eOOQOG24_G24_OOQOG24dG24dOOQO<tZ[O]||-1},{term:125,get:O=>OZ[O]||-1}],tokenPrec:1086}),rZ=Ie.define({name:"lezer",parser:iZ.configure({props:[ft.add({"Body TokensBody SkipBody PrecedenceBody":fO})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});function nZ(){return new Je(rZ)}const sZ={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},oZ=Ee.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"/Q~R^XY}YZ}]^}pq}rs!Stu!qxy&Vyz'S{|'X}!O'X!Q!R'b!R![)_!]!^,{#T#o-^~!SO_~~!VTOr!Srs!fs#O!S#O#P!k#P~!S~!kOZ~~!nPO~!S~!tiqr$cst$ctu$cuv$cvw$cwx$cz{$c{|$c}!O$c!O!P$c!P!Q$c!Q![$c![!]$c!^!_$c!_!`$c!`!a$c!a!b$c!b!c$c!c!}$c#Q#R$c#R#S$c#S#T$c#T#o$c#p#q$c#r#s$c~$hiV~qr$cst$ctu$cuv$cvw$cwx$cz{$c{|$c}!O$c!O!P$c!P!Q$c!Q![$c![!]$c!^!_$c!_!`$c!`!a$c!a!b$c!b!c$c!c!}$c#Q#R$c#R#S$c#S#T$c#T#o$c#p#q$c#r#s$c~&[PT~!]!^&_~&bRO!]&_!]!^&k!^~&_~&nTOy&_yz&}z!]&_!]!^&k!^~&_~'SOQ~~'XOS~~'[Q!Q!R'b!R![)_~'gUY~!O!P'y!Q![)_!g!h(j#R#S)s#X#Y(j#l#m)y~(ORY~!Q![(X!g!h(j#X#Y(j~(^SY~!Q![(X!g!h(j#R#S)X#X#Y(j~(mR{|(v}!O(v!Q![(|~(yP!Q![(|~)RQY~!Q![(|#R#S(v~)[P!Q![(X~)dTY~!O!P'y!Q![)_!g!h(j#R#S)s#X#Y(j~)vP!Q![)_~)|R!Q![*V!c!i*V#T#Z*V~*[VY~!O!P*q!Q![*V!c!i*V!r!s+n#R#S)y#T#Z*V#d#e+n~*vTY~!Q![+V!c!i+V!r!s+n#T#Z+V#d#e+n~+[UY~!Q![+V!c!i+V!r!s+n#R#S,o#T#Z+V#d#e+n~+qT{|,Q}!O,Q!Q![,^!c!i,^#T#Z,^~,TR!Q![,^!c!i,^#T#Z,^~,cSY~!Q![,^!c!i,^#R#S,Q#T#Z,^~,rR!Q![+V!c!i+V#T#Z+V~-OP!]!^-R~-WQP~OY-RZ~-R~-ciX~qr-^st-^tu-^uv-^vw-^wx-^z{-^{|-^}!O-^!O!P-^!P!Q-^!Q![-^![!]-^!^!_-^!_!`-^!`!a-^!a!b-^!b!c-^!c!}-^#Q#R-^#R#S-^#S#T-^#T#o-^#p#q-^#r#s-^",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:O=>sZ[O]||-1}],tokenPrec:0}),aZ=Ie.define({name:"wast",parser:oZ.configure({props:[pt.add({App:zO({closing:")",align:!1})}),ft.add({App:fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:f.keyword,Type:f.typeName,Number:f.number,String:f.string,Identifier:f.variableName,LineComment:f.lineComment,BlockComment:f.blockComment,"( )":f.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function lZ(){return new Je(aZ)}const cZ=1,hZ=2,fZ=263,QZ=3,uZ=264,Eu=265,$Z=266,dZ=4,pZ=5,mZ=6,PZ=7,Au=8,gZ=9,SZ=10,XZ=11,yZ=12,xZ=13,bZ=14,wZ=15,WZ=16,TZ=17,YZ=18,vZ=19,qZ=20,kZ=21,ZZ=22,RZ=23,UZ=24,VZ=25,zZ=26,_Z=27,jZ=28,GZ=29,CZ=30,IZ=31,EZ=32,AZ=33,DZ=34,MZ=35,NZ=36,LZ=37,BZ=38,HZ=39,FZ=40,KZ=41,JZ=42,eR=43,tR=44,OR=45,iR=46,rR=47,nR=48,sR=49,oR=50,aR=51,lR=52,cR=53,hR=54,fR=55,QR=56,uR=57,$R=58,dR=59,pR=60,mR=61,ga=62,PR=63,gR=64,SR=65,XR={abstract:dZ,and:pZ,array:mZ,as:PZ,true:Au,false:Au,break:gZ,case:SZ,catch:XZ,clone:yZ,const:xZ,continue:bZ,declare:WZ,default:wZ,do:TZ,echo:YZ,else:vZ,elseif:qZ,enddeclare:kZ,endfor:ZZ,endforeach:RZ,endif:UZ,endswitch:VZ,endwhile:zZ,enum:_Z,extends:jZ,final:GZ,finally:CZ,fn:IZ,for:EZ,foreach:AZ,from:DZ,function:MZ,global:NZ,goto:LZ,if:BZ,implements:HZ,include:FZ,include_once:KZ,instanceof:JZ,insteadof:eR,interface:tR,list:OR,match:iR,namespace:rR,new:nR,null:sR,or:oR,print:aR,require:lR,require_once:cR,return:hR,switch:fR,throw:QR,trait:uR,try:$R,unset:dR,use:pR,var:mR,public:ga,private:ga,protected:ga,while:PR,xor:gR,yield:SR,__proto__:null};function Du(O){let e=XR[O.toLowerCase()];return e??-1}function Mu(O){return O==9||O==10||O==13||O==32}function ig(O){return O>=97&&O<=122||O>=65&&O<=90}function Tr(O){return O==95||O>=128||ig(O)}function Sa(O){return O>=48&&O<=55||O>=97&&O<=102||O>=65&&O<=70}const yR={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},xR=new de(O=>{if(O.next==40){O.advance();let e=0;for(;Mu(O.peek(e));)e++;let t="",i;for(;ig(i=O.peek(e));)t+=String.fromCharCode(i),e++;for(;Mu(O.peek(e));)e++;O.peek(e)==41&&yR[t.toLowerCase()]&&O.acceptToken(cZ)}else if(O.next==60&&O.peek(1)==60&&O.peek(2)==60){for(let i=0;i<3;i++)O.advance();for(;O.next==32||O.next==9;)O.advance();let e=O.next==39;if(e&&O.advance(),!Tr(O.next))return;let t=String.fromCharCode(O.next);for(;O.advance(),!(!Tr(O.next)&&!(O.next>=48&&O.next<=55));)t+=String.fromCharCode(O.next);if(e){if(O.next!=39)return;O.advance()}if(O.next!=10&&O.next!=13)return;for(;;){let i=O.next==10||O.next==13;if(O.advance(),O.next<0)return;if(i){for(;O.next==32||O.next==9;)O.advance();let r=!0;for(let n=0;n{O.next<0&&O.acceptToken($Z)}),wR=new de((O,e)=>{O.next==63&&e.canShift(Eu)&&O.peek(1)==62&&O.acceptToken(Eu)});function WR(O){let e=O.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,i;for(;t<5&&(i=O.peek(t))>=48&&i<=55;)t++;return t}if(e==120&&Sa(O.peek(2)))return Sa(O.peek(3))?4:3;if(e==117&&O.peek(2)==123)for(let t=3;;t++){let i=O.peek(t);if(i==125)return t==2?0:t+1;if(!Sa(i))break}return 0}const TR=new de((O,e)=>{let t=!1;for(;!(O.next==34||O.next<0||O.next==36&&(Tr(O.peek(1))||O.peek(1)==123)||O.next==123&&O.peek(1)==36);t=!0){if(O.next==92){let i=WR(O);if(i){if(t)break;return O.acceptToken(QZ,i)}}else if(!t&&(O.next==91||O.next==45&&O.peek(1)==62&&Tr(O.peek(2))||O.next==63&&O.peek(1)==45&&O.peek(2)==62&&Tr(O.peek(3)))&&e.canShift(uZ))break;O.advance()}t&&O.acceptToken(fZ)}),YR=De({"Visibility abstract final static":f.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":f.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":f.controlKeyword,"and or xor yield unset clone instanceof insteadof":f.operatorKeyword,"function fn class trait implements extends const enum global interface use var":f.definitionKeyword,"include include_once require require_once namespace":f.moduleKeyword,"new from echo print array list as":f.keyword,null:f.null,Boolean:f.bool,VariableName:f.variableName,"NamespaceName/...":f.namespace,"NamedType/...":f.typeName,Name:f.name,"CallExpression/Name":f.function(f.variableName),"LabelStatement/Name":f.labelName,"MemberExpression/Name":f.propertyName,"MemberExpression/VariableName":f.special(f.propertyName),"ScopedExpression/ClassMemberName/Name":f.propertyName,"ScopedExpression/ClassMemberName/VariableName":f.special(f.propertyName),"CallExpression/MemberExpression/Name":f.function(f.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":f.function(f.propertyName),"MethodDeclaration/Name":f.function(f.definition(f.variableName)),"FunctionDefinition/Name":f.function(f.definition(f.variableName)),"ClassDeclaration/Name":f.definition(f.className),UpdateOp:f.updateOperator,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,ControlOp:f.controlOperator,AssignOp:f.definitionOperator,"$ ConcatOp":f.operator,LineComment:f.lineComment,BlockComment:f.blockComment,Integer:f.integer,Float:f.float,String:f.string,ShellExpression:f.special(f.string),"=> ->":f.punctuation,"( )":f.paren,"#[ [ ]":f.squareBracket,"${ { }":f.brace,"-> ?->":f.derefOperator,", ; :: : \\":f.separator,"PhpOpen PhpClose":f.processingInstruction}),vR={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},qR=Ee.deserialize({version:14,states:"$GSQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{OS,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MuQdO7+%sOOQS7+&[7+&[O$ bQ`O,5>yO>UQaO,5;`O$ iQ`O,5;aO$#OQaO'#HfO$#YQ`O,5>zOOQS1G0y1G0yO$#bQ`O'#EYO$#gQ`O'#IXO$#oQ`O,5:sOOQS1G0e1G0eO$#tQ`O1G0eO$#yQ`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%`QaO'#HeO$%jQ`O,5>xOOQS1G0m1G0mO$%rQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%wQdO7+&hO$'yQtO1G1RO$(WQdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KmQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)sQ`O,5UQaO,5],5>]OOQS-E;o-E;oO$.iQdO7+'hO$.yQpO7+'hO$/RQdO'#IiOOQO,5dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;lQaO7+(lO$cOOQS-E;u-E;uO!&WQdO7+(nO$=mQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?nQ`O'#GQO$?uQ`O'#GQO$@ZQ`O'#HUOOQO'#Hy'#HyO$@`Q`O,5=oOOQ#u,5=o,5=oO$@gQpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$@rQdO,5>fOOQS-E;x-E;xO$AQQdO1G4}O$A]Q`O,5=tO$AbQ`O,5=tO$AmQ`O'#H{O$BRQ`O,5?dOOQS1G3_1G3_O#KrQ`O7+(xO$BZQdO,5=|OOQS-E;`-E;`O$CvQdO<Q,5>QOOQO-E;d-E;dO$8YQaO,5:tO$FxQaO'#HcO$GVQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$G_Q`O7+&TO$HtQ`O1G0nO$JZQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<UQaO1G1uO$KsQ`O1G1uO$LOQ`O1G1yOOQO1G1y1G1yO$LTQ`O1G1uO$L]Q`O1G1uO$MrQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<`OOQ#u-E;r-E;rOhQaO<aOOQO-E;s-E;sO!&WQdO<g,5>gOOQO-E;y-E;yO!&WQdO<UQaO,5;TOOQ#uANAzANAzO#KmQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%)vQ`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+]Q`O7+'aO%+hQ`O7+'eO>UQaO7+'fO%+mQ`O7+'fO%-SQ`O'#HlO%-bQ`O,5?SO%-bQ`O,5?SOOQO1G1{1G1{O$+qQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%-jQtOANCgO%-xQ`OAN@dO*kQaOAN@nO%.QQdOAN@nO%.bQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/dQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%.jQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<UQaO<W,5>WO%6wQ`O,5>WOOQO-E;j-E;jO%6|Q`O1G4nOOQSG26OG26OO$+qQpOG26OO0aQ`OG26OO%7UQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%7fQ`OLD+tO%8uQ`O'#E}O%9PQ`O'#IZO!&WQdO'#HrO%:|QaO,5^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<wO&EPQdO1G0cO#.YQaO1G0cO&F{QdO1G1YO&HwQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&JsQdO7+%sO&LoQdO7+%}O#.YQaO7+'hO&NkQdO7+'hO'!gQdO<lQdO,5>wO(@nQdO1G0cO'.QQaO1G0cO(BpQdO1G1YO(DrQdO1G1[O'.QQaO1G1|O'.QQaO7+%sO(FtQdO7+%sO(HvQdO7+%}O'.QQaO7+'hO(JxQdO7+'hO(LzQdO<wO*1sQaO'#HdO*2TQ`O,5>vO*2]QdO1G0cO9yQaO1G0cO*4XQdO1G1YO*6TQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8PQ`O,5=[O*8XQaO'#HbO*8cQ`O,5>tO9yQaO7+%sO*8kQdO7+%sO*:gQ`O1G0iO>UQaO1G0iO*;|QdO7+%}O9yQaO7+'hO*=xQdO7+'hO*?tQ`O,5>cO*AZQ`O,5=|O*BpQdO<UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'XQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'`QaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+'gQ`O'#I]O$8YQaO'#EaO+)PQaOG26YO$8YQaO'#I]O+*{Q`O'#I[O++TQaO,5:wO>UQaO,5;nO>UQaO,5;pO++[Q`O,5UQaO1G0XO+9hQ`O1G1]O+;TQ`O1G1]O+]Q`O1G1]O+?xQ`O1G1]O+AeQ`O1G1]O+CQQ`O1G1]O+DmQ`O1G1]O+FYQ`O1G1]O+GuQ`O1G1]O+IbQ`O1G1]O+J}Q`O1G1]O+LjQ`O1G1]O+NVQ`O1G1]O, rQ`O1G1]O,#_Q`O1G0cO>UQaO1G0cO,$zQ`O1G1YO,&gQ`O1G1[O,(SQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,([Q`O7+%sO,)wQ`O7+%}O>UQaO7+'hO,+dQ`O7+'hO,+lQ`O7+'hO,-XQpO7+'hO,-aQ`O<UQaO<UQaOAN@nO,0qQ`OAN@nO,2^QpOAN@nO,2fQ`OG26YO>UQaOG26YO,4RQ`OLD+tO,5nQaO,5:}O>UQaO1G0iO,5uQ`O'#I]O$8YQaO'#FeO$8YQaO'#FfO$8YQaO'#FgO$8YQaO'#FhO$8YQaO'#FhO+)PQaO'#FhO$8YQaO'#FkO,6SQaO'#FwO,6ZQaO'#FwO$8YQaO'#GVO+)PQaO'#GVO$8YQaO'#GYO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO,8YQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8bQaO,5:wO,8iQaO,5:wO$8YQaO,5;nO+)PQaO,5;nO$8YQaO,5;pO,:hQ`O,5wO-IcQ`O1G0cO-KOQ`O1G0cO$8YQaO1G0cO+)PQaO1G0cO-L_Q`O1G1YO-MzQ`O1G1YO. ZQ`O1G1[O$8YQaO1G1|O$8YQaO7+%sO+)PQaO7+%sO.!vQ`O7+%sO.$cQ`O7+%sO.%rQ`O7+%}O.'_Q`O7+%}O$8YQaO7+'hO.(nQ`O7+'hO.*ZQ`O<fQ`O,5>wO.@RQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@ZQ`O7+'hO.@cQpO7+'hO.@kQpO<UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8lOo=yOs#hOx8jOy8jO}`O!O]O!Q8pO!R}O!T8oO!U8kO!V8kO!Y8rO!c8iO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8nO$]8mO$^8nO$aqO$z8qO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;dO#U;cO!x'OP~P9yOT6iOz6gO!S6jO!b6kO!o!{O!v8sO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6iOz6gO!S6jO!b6kO!v8sO!}({O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6iOz6gO!S6jO!b6kO!v8sO!})iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8vOz8tO!S8wO!b8xO!q)pO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#X)rO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!n)rO~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6iOz6gO!S6jO!b6kO!v8sO!}*UO#O*TO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[4OOo5xOs#hOx3zOy3zO}`O!O]O!Q2^O!R}O!T4UO!U3|O!V3|O!Y2`O!c3xO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4SO$]4QO$^4SO$aqO$z2_O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6iOV,XOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,iOm+^Os$aO!^+dO!_+^O!`+^O$aqO$drO~O!n,lO~P#JwO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,rO~OV,sO!n%|X!}%|X~O!},uO!n'lX~O!n,wO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,|O~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-QO~O!}-RO!n&{X~O!n-TO~O!x-UO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-[O~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-dO!x$ca!}$ca~O#U-fO#b-eO~O#b-gO~O#S-hO#U-fO#b-eO#l'SO~O#b-jO#l'SO~O#u-kO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-pO#b-oO!x'[P~O!oXO!q-rO~O!q-uO!o'cq!m'cq&s'cq~O!^-wO!oXO!q-rO~O!q-{O#O-zO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-zO#l'SO~O!}-|Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.ZO#b$nO$aqO$drO~P0aO!s.^O~O!s._O#b._O$}._O%T+oO~O$}.`O~O#X.aO~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.dOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.iOd+vOh.hO~O!q(`O~OP6]OQ|OU^OW}O[:fOo>ROs#hOx:dOy:dO}`O!O]O!Q:kO!R}O!T:jO!U:eO!V:eO!Y:oO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:hO$]:gO$^:hO$aqO$z:mO${!OO$}}O%O}O%V|O'g{O~O!m.lO!q.lO~OY+zO_+{O!n.nO~OY+zO_+{Oi%^a~O!x.rO~P>UO!m.tO~O!m.tO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&ka!}&ka&s&ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^Om+^Os$aO!_+^O!`+^O$aqO$drO~OY/PO~P$?VOS+^Om+^Os$aO!_+^O!`+^O$aqO~O!s/QO~O!n/SO~P#JwOw(SO!o)WO#l'SO~OV/VO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/XO~OV/YO!n%|a!}%|a~O]/[Os/[O!s#gO#peO!n&oX!}&oX~O!},uO!n'la~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-RO!n&{a~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vq#X#Vq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#[i!}#[i~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O/cO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x&Xa!}&Xa~P!'WO#u/iO!x$ci!}$ci~O#b/jO~O#U/lO#b/kO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$ci!}$ci~P!'WO#u/mO!x$hi!}$hi~O!}/oO!x'[X~O#b/qO~O!x/rO~O!oXO!q/uO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/xO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-|Ow']a!o']a!m']a&s']a~OU$PO]0QO!R$PO!s$OO!v#}O#b$nO#p2XO~P$?uO!m#cO!o0VO&s#cO~O#X0YO~Oh0_O~OT:tOz:pO!S:vO!b:xO!m0`O!q0`O!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0bO~O!x0bO~P>UO!m0dO~OT6iOz6gO!S6jO!b6kO!v8sO!x0fO#O0eO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WO!x0fO~O!x0gO#b0hO#l'SO~O!x0iO~O!s0jO~O!m#cO#u0lO&s#cO~O!s0mO~O!})_O!m'kq&s'kq~O!s0nO~OV0oO!n%}X!}%}X~OT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!n!|i!}!|i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cq!}$cq~P!'WO#u0vO!x$cq!}$cq~O#b0wO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hq!}$hq~P!'WO#S0zO#b0yO!x&`X!}&`X~O!}/oO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q1PO~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1RO#l'SO~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1^O!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOh1_O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1bO~O!x1bO~P>UO!x1eO~O!m#cO#u1iO&s#cO~O$}1jO%V1jO~O!s1kO~OV1lO!n%}a!}%}a~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#]i!}#]i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cy!}$cy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hy!}$hy~P!'WO#b1nO~O!}/oO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:uOz:qO!S:wO!b:yO!v=nO#S#QO#z:sO#{:{O#|:}O#};PO$O;RO$Q;VO$R;XO$S;ZO$T;]O$U;_O$V;aO$W;aO$z#dO~P!'WOV1uO{1tO~P!5xOV1uO{1tOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1xO!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOY%[q_%[q!n%[qi%[q~PhO!x1zO~O!x%gi~PCqOe1{O~O$}1|O%V1|O~O!s2OO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2QO~O!`2SO!s2RO~O!s2VO!m$xi&s$xi~O!s'WO~O!s*]O~OT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2]O~P*kO$l$tO~P#.YOT6iOz6gO!S6jO!b6kO!v8sO#O2[O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O3uO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3dO~P#.YOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2aO#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S3vO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lO#u2uO#w2vO!q&zX#X&zX!}&zX~P0rOP6]OU^O[4POo8^Or2wOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S2tO#U2sO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;lOP6]OU^O[4POo8^Or4xOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S4uO#U4tO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;lO!q3PO~P>UO!q5}O#O3gO~OT8vOz8tO!S8wO!b8xO!q3hO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q6OO#O3kO~O!q6PO#O3oO~O#O3oO#l'SO~O#O3pO#l'SO~O#O3sO#l'SO~OP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$l$tO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S5eO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4dO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5wO~P#.YO!y$hO#S5{O~O!x4ZO#l'SO~O!y$hO#S5|O~OT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O5vO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4vO#w4wO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5QO~P>UO!q8bO#O5hO~OT8vOz8tO!S8wO!b8xO!q5iO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q8cO#O5lO~O!q8dO#O5pO~O#O5pO#l'SO~O#O5qO#l'SO~O#O5tO#l'SO~O$l$tO~P9yOo5zOs$lO~O#S7oO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6gO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7sO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'jX~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7uO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&|X~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7zO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;dO#U;cO!x&WX!}&WX~P9yO!}7lO!x'Oa~Oz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7sO!x%da~O!x&UX!}&UX~P>UO!}7uO!x&|a~Oz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vi!}#Vi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&ka!}&ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&Ua!}&Ua~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vq!}#Vq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8[O~P9yO#O8ZO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8`O~O!y$hO#S8aO~O#u6zO#w6{O!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6|O#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;iO#S9XO#U9VOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9WO#S9WO#U9WOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9]O#S;dO#U;cOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7XO~P>UOT6iOz6gO!S6jO!b6kO!v8sO#O7iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'PX!}'PX~P!'WOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lO!}7lO!x'OX~O#S9yO~P>UOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8tO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=dO#O7rO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8vOz8tO!S8wO!b8xO!q7wO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8tO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=eO#O7|O~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=iO#O8TO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8TO#l'SO~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8UO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8XO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:bO~P>UO#O:aO!q'PX!x'PX~PGSO$l$tO~P$8YOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$l$tO$z:nO${!OO~P$;lOo8_Os$lO~O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#S=UO#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOT6iOz6gO!S6jO!b6kO!v8sO#O=SO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O=RO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9ZO#w9[O#X&zX!x&zX~P.8oO!y$hO#S=^O~O!q9hO~P>UO!y$hO#S=cO~O!q>OO#O9}O~OT8vOz8tO!S8wO!b8xO!q:OO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q>PO#O:RO~O!q>QO#O:YO~O#O:YO#l'SO~O#O:ZO#l'SO~O#O:_O#l'SO~O#u;eO#w;gO!m&zX!n&zX~P.8oO#u;fO#w;hOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;tO~P>UO!q;uO~P>UO!q>XO#OYO#O9WO~OT8vOz8tO!S8wO!b8xO!qZO#O[O#O<{O~O#O<{O#l'SO~O#O9WO#l'SO~O#O<|O#l'SO~O#O=PO#l'SO~O!y$hO#S=|O~Oo=[Os$lO~O!y$hO#S=}O~O!y$hO#S>UO~O!y$hO#S>VO~O!y$hO#S>WO~Oo={Os$lO~Oo>TOs$lO~Oo>SOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%&y'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%UP!.]!7pP!?oP*ZP*Z*ZPPPPP!?rPPPPPPP*Z*Z*Z*ZPP*Z*ZP!E]!GRP!GV!Gy!GR!GR!HP*Z*ZP!HY!Hl!Ib!J`!Jd!J`!Jo!J}!J}!KV!KY!KY*ZPP*ZPP!K^#%[#%[#%`P#%fP(O#%j(O#&S#&V#&V#&](O#&`(O(O#&f#&i(O#&r#&u(O(O(O(O(O#&x(O(O(O(O(O(O(O(O(O#&{!KR(O(O#'_#'o#'r(O(OP#'u#'|#(S#(o#(y#)P#)Z#)b#)h#*d#4X#5T#5Z#5a#5k#5q#5w#6]#6c#6i#6o#6u#6{#7R#7]#7g#7m#7s#7}PPPPPPPP#8T#8X#8}#NO#NR#N]$(f$(r$)X$)_$)b$)e$)k$,X$5v$>_$>b$>h$>k$>n$>w$>{$?X$?k$Bk$CO$C{$K{PP%%y%%}%&Z%&p%&vQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-n*v*x+OQ.W+cQ.{,[S/t-s-tQ0T.SS0}/s/wQ1V0RQ1o1OR2P1p0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3ZfPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3scPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u,x-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2W2X2Y2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0`0a0d0e0i0v1R1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uRS=p>S>VS=s>T>UR=t>WT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,k.b.d.l0`0a0i1aQ$^rR*`'^Q*x'sQ-t*{R/w-wQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-c*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-b*i*jQ.]+kQ/T,mQ/e-`R/g-cQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-a*h*i*jS.[+j+kS/f-b-cQ0X.]R0t/gT+e(T+g[%e!_$b'c+a.R0QR,d)Qb$ov(T+[+]+`+g.P.Q0PR+T'{S+e(T+gT,j)W,kR0W.XT1[0V1]0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[R2Y2X|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aW$`t'i+],gS'i$h*sS+](T+gT,g)W,kQ'_$^R*a'_Q*t'oR-m*tQ/p-oS0{/p0|R0|/qQ-}+XR/|-}Q+g(TR.Y+gS+`(T+gS,h)W,kQ.Q+]W.T+`,h.Q/OR/O,gQ)R%eR,e)RQ'|$oR+U'|Q1]0VR1w1]Q${{R(^${Q+t(aR.c+tQ+w(bR.g+wQ+}(cQ,P(dT.m+},PQ(|%`S,a(|7tR7t7VQ(y%^R,^(yQ,k)WR/R,kQ)`%oS,q)`/WR/W,rQ,v)dR/^,vT!uV!rj!iPVX!j!r!s!w(`+r.l0`0a1aQ%Q!SQ(a$}W(h%P%S%U0iQ.e+uQ0Z.bR0[.d|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2_4b6e8q:m:nQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-RQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2a4d6g8t:p:qQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4ZQ*^'Y^*_2[3u5v8Z:a=R=SQ+S'zQ+V(OQ,`({Q,c)PQ,y)iQ,{)pQ,})tQ-V*PQ-W*TQ-X*U^-]2]3v5w8[:b=T=UQ-i*oQ-x+PQ.k+zQ.w,XQ/`-QQ/h-dQ/n-kQ/y-zQ0r/cQ0u/iQ0x/mQ1Q/xU1X0V1]9WQ1d0eQ1m0vQ1q1RQ2Z2^Q2qjQ2r3yQ2x3zQ2y3|Q2z4OQ2{4QQ2|4SQ2}4UQ3O2`Q3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2oQ3`2pQ3a2sQ3b2tQ3c2uQ3e2vQ3f2wQ3i3PQ3j3dQ3l3gQ3m3hQ3n3kQ3q3oQ3r3pQ3t3sQ4Y4WQ4y3{Q4z3}Q4{4PQ4|4RQ4}4TQ5O4VQ5P4cQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5c4uQ5d4vQ5f4wQ5g4xQ5j5QQ5k5eQ5m5hQ5n5iQ5o5lQ5r5pQ5s5qQ5u5tQ6Q4aQ6R3xQ6V6TQ6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6cQ7T6dQ7U6fU7V,T.t0dQ7W%cQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7g6uQ7h6vQ7j6xQ7k6yQ7n6zQ7p6{Q7q6|Q7x7XQ7y7iQ7{7oQ7}7rQ8O7sQ8P7uQ8Q7wQ8R7zQ8S7|Q8V8TQ8W8UQ8Y8XQ8]8fU9U#k&s7lQ9^8jQ9_8kQ9`8lQ9a8mQ9b8nQ9c8oQ9e8pQ9f8rQ9g8sQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9SQ9w9TQ9x9ZQ9z9[Q9{9]Q:P9hQ:Q9yQ:T9}Q:V:OQ:W:RQ:[:YQ:^:ZQ:`:_Q:c8iQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:kQ;r:lQ;s:oQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQOQ=h>PQ=j>QQ=u>XQ=v>YQ=w>ZR=x>[0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[S$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,p)_Q,t)cQ/Z,uQ/{-|R0p/[|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-z/x0e1R2[2]6x6yd+^(T)W+]+`+g,g,h,k.Q/O!t6w'U2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3z3|4O4Q4S4U5v5w!x;b3u3v3x3y3{3}4P4R4T4V4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t$O=z_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-R6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6z6{6|7X7l7o7r7w7|8T8U8X8Z8[8f8g8h8i#|>]!y!z!}%c&W)t)v*T*o,T-d-k.t/c/i/m0d0v4W6T7i7s7u7z8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9Z9[9]9h9y9}:O:R:Y:Z:_:a:b;c;d=Z=m=n!v>^+z-Q9V9X:d:e:f:g:h:j:k:m:o:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;`;e;g;i;t_0V1]9W:i:l:n:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;a;f;h;u AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[YR],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[xR,TR,wR,0,1,2,3,bR],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(O,e)=>Du(O)<<1,external:Du},{term:81,get:O=>vR[O]||-1}],tokenPrec:29354}),kR=Ie.define({name:"php",parser:qR.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},ColonBlock:O=>O.baseIndent+O.unit,"Block EnumBody DeclarationList":zO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"String BlockComment":()=>null,Statement:Ce({except:/^({|end(for|foreach|switch|while)\b)/})}),ft.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":fO,ColonBlock(O){return{from:O.from+1,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function ZR(O={}){let e=[],t;if(O.baseLanguage!==null)if(O.baseLanguage)t=O.baseLanguage;else{let i=oh({matchClosingTags:!1});e.push(i.support),t=i.language}return new Je(kR.configure({wrap:t&&bO(i=>i.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:O.plain?"Program":"Template"}),e)}const RR=1,UR=33,VR=34,zR=35,_R=36,jR=new de(O=>{let e=O.pos;for(;;){if(O.next==10){O.advance();break}else if(O.next==123&&O.peek(1)==123||O.next<0)break;O.advance()}O.pos>e&&O.acceptToken(RR)});function xo(O,e,t){return new de(i=>{let r=i.pos;for(;i.next!=O&&i.next>=0&&(t||i.next!=38&&(i.next!=123||i.peek(1)!=123));)i.advance();i.pos>r&&i.acceptToken(e)})}const GR=xo(39,UR,!1),CR=xo(34,VR,!1),IR=xo(39,zR,!0),ER=xo(34,_R,!0),AR=Ee.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<O.name=="InterpolationContent"?Cl:null)}),LR=rg.configure({wrap:bO((O,e)=>{var t;return O.name=="InterpolationContent"?Cl:O.name!="AttributeInterpolation"?null:((t=O.node.parent)===null||t===void 0?void 0:t.name)=="StatementAttributeValue"?MR:Cl}),top:"Attribute"}),BR={parser:NR},HR={parser:LR},FR=Ie.define({name:"angular",parser:Vi.parser.configure({wrap:bO(KR)}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function KR(O,e){switch(O.name){case"Attribute":return/^[*#(\[]|\{\{/.test(e.read(O.from,O.to))?HR:null;case"Text":return BR}return null}function JR(){return new Je(FR)}const eU=Ee.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new pO("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new pO("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new pO("[~RPwxU~ZOp~~",11,15),new pO("[~RPrsU~ZOn~~",11,14),new pO("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new pO("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),tU=kt.parser.configure({top:"SingleExpression"}),ng=eU.configure({props:[De({Text:f.content,Is:f.definitionOperator,AttributeName:f.attributeName,VueAttributeName:f.keyword,Identifier:f.variableName,"AttributeValue ScriptAttributeValue":f.attributeValue,Entity:f.character,"{{ }}":f.brace,"@ :":f.punctuation})]}),sg={parser:tU},OU=ng.configure({wrap:bO((O,e)=>O.name=="InterpolationContent"?sg:null)}),iU=ng.configure({wrap:bO((O,e)=>O.name=="AttributeScript"?sg:null),top:"Attribute"}),rU={parser:OU},nU={parser:iU},sU=Ie.define({name:"vue",parser:Vi.parser.configure({dialect:"selfClosing",wrap:bO(oU)}),languageData:{closeBrackets:{brackets:["{",'"']}}});function oU(O,e){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(e.read(O.from,O.from+2))?nU:null;case"Text":return rU}return null}function aU(){return new Je(sU)}const lU="#e5c07b",Nu="#e06c75",cU="#56b6c2",hU="#ffffff",cs="#abb2bf",Il="#7d8799",fU="#61afef",QU="#98c379",Lu="#d19a66",uU="#c678dd",$U="#21252b",Bu="#2c313a",Hu="#282c34",Xa="#353a42",dU="#3E4451",Fu="#528bff",pU=z.theme({"&":{color:cs,backgroundColor:Hu},".cm-content":{caretColor:Fu},".cm-cursor, .cm-dropCursor":{borderLeftColor:Fu},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:dU},".cm-panels":{backgroundColor:$U,color:cs},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Hu,color:Il,border:"none"},".cm-activeLineGutter":{backgroundColor:Bu},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Xa},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Xa,borderBottomColor:Xa},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Bu,color:cs}}},{dark:!0}),mU=cn.define([{tag:f.keyword,color:uU},{tag:[f.name,f.deleted,f.character,f.propertyName,f.macroName],color:Nu},{tag:[f.function(f.variableName),f.labelName],color:fU},{tag:[f.color,f.constant(f.name),f.standard(f.name)],color:Lu},{tag:[f.definition(f.name),f.separator],color:cs},{tag:[f.typeName,f.className,f.number,f.changed,f.annotation,f.modifier,f.self,f.namespace],color:lU},{tag:[f.operator,f.operatorKeyword,f.url,f.escape,f.regexp,f.link,f.special(f.string)],color:cU},{tag:[f.meta,f.comment],color:Il},{tag:f.strong,fontWeight:"bold"},{tag:f.emphasis,fontStyle:"italic"},{tag:f.strikethrough,textDecoration:"line-through"},{tag:f.link,color:Il,textDecoration:"underline"},{tag:f.heading,fontWeight:"bold",color:Nu},{tag:[f.atom,f.bool,f.special(f.variableName)],color:Lu},{tag:[f.processingInstruction,f.string,f.inserted],color:QU},{tag:f.invalid,color:hU}]),Ne=[pU,kp(mU)],PU=(O,e)=>{const t=O.__vccOpts||O;for(const[i,r]of e)t[i]=r;return t},gU=b$({components:{Codemirror:w0},setup(){let O;switch(language){case"javascript":O=[Fm(),Ne];break;case"java":O=[fT(),Ne];break;case"json":O=[dT(),Ne];break;case"cpp":O=[jT(),Ne];break;case"python":O=[TY(),Ne];break;case"css":O=[sP(),Ne];break;case"sql":O=[_v(),Ne];break;case"rust":O=[nq(),Ne];break;case"xml":O=[Tq(),Ne];break;case"markdown":O=[Jk(),Ne];break;case"lezer":O=[nZ(),Ne];break;case"wast":O=[lZ(),Ne];break;case"html":O=[oh(),Ne];break;case"php":O=[ZR(),Ne];break;case"angular":O=[JR(),Ne];break;case"vue":O=[aU(),Ne];break;default:O=[Ne]}return{code:Hn(context),extensions:O}}});function SU(O,e,t,i,r,n){const s=ZS("codemirror");return JS(),OX(s,{modelValue:O.code,"onUpdate:modelValue":e[0]||(e[0]=o=>O.code=o),placeholder:"Code goes here...",style:{height:"100vh",width:"100vw"},autofocus:!0,"indent-with-tab":!0,"tab-size":2,extensions:O.extensions,disabled:!0},null,8,["modelValue","extensions"])}const XU=PU(gU,[["render",SU]]);GX(XU).mount("#app"); diff --git a/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-816cd1b6.js b/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-816cd1b6.js new file mode 100644 index 0000000000000000000000000000000000000000..62458ae566d682c3f26dfb69d15ac3fef14833d7 --- /dev/null +++ b/src/main/resources/META-INF/resources/file/preview/static/codemirror/6.0.1/index-816cd1b6.js @@ -0,0 +1,52 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const n of r)if(n.type==="childList")for(const s of n.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function t(r){const n={};return r.integrity&&(n.integrity=r.integrity),r.referrerPolicy&&(n.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?n.credentials="include":r.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(r){if(r.ep)return;r.ep=!0;const n=t(r);fetch(r.href,n)}})();/** +* @vue/shared v3.4.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Sc(O,e){const t=new Set(O.split(","));return e?i=>t.has(i.toLowerCase()):i=>t.has(i)}const Te={},zi=[],wt=()=>{},iP=()=>!1,lo=O=>O.charCodeAt(0)===111&&O.charCodeAt(1)===110&&(O.charCodeAt(2)>122||O.charCodeAt(2)<97),Pc=O=>O.startsWith("onUpdate:"),Je=Object.assign,Xc=(O,e)=>{const t=O.indexOf(e);t>-1&&O.splice(t,1)},rP=Object.prototype.hasOwnProperty,ae=(O,e)=>rP.call(O,e),J=Array.isArray,Tr=O=>ho(O)==="[object Map]",nP=O=>ho(O)==="[object Set]",te=O=>typeof O=="function",et=O=>typeof O=="string",co=O=>typeof O=="symbol",Ye=O=>O!==null&&typeof O=="object",Vd=O=>(Ye(O)||te(O))&&te(O.then)&&te(O.catch),sP=Object.prototype.toString,ho=O=>sP.call(O),oP=O=>ho(O).slice(8,-1),aP=O=>ho(O)==="[object Object]",yc=O=>et(O)&&O!=="NaN"&&O[0]!=="-"&&""+parseInt(O,10)===O,Zr=Sc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fo=O=>{const e=Object.create(null);return t=>e[t]||(e[t]=O(t))},lP=/-(\w)/g,uO=fo(O=>O.replace(lP,(e,t)=>t?t.toUpperCase():"")),cP=/\B([A-Z])/g,tr=fo(O=>O.replace(cP,"-$1").toLowerCase()),uo=fo(O=>O.charAt(0).toUpperCase()+O.slice(1)),Ao=fo(O=>O?`on${uo(O)}`:""),NO=(O,e)=>!Object.is(O,e),Io=(O,e)=>{for(let t=0;t{Object.defineProperty(O,e,{configurable:!0,enumerable:!1,value:t})},hP=O=>{const e=parseFloat(O);return isNaN(e)?O:e};let Ah;const Ud=()=>Ah||(Ah=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xc(O){if(J(O)){const e={};for(let t=0;t{if(t){const i=t.split(uP);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function bc(O){let e="";if(et(O))e=O;else if(J(O))for(let t=0;t=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),yi()}return this._dirtyLevel>=4}set dirty(e){this._dirtyLevel=e?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=EO,t=di;try{return EO=!0,di=this,this._runnings++,Ih(this),this.fn()}finally{Dh(this),this._runnings--,di=t,EO=e}}stop(){var e;this.active&&(Ih(this),Dh(this),(e=this.onStop)==null||e.call(this),this.active=!1)}}function PP(O){return O.value}function Ih(O){O._trackId++,O._depsLength=0}function Dh(O){if(O.deps.length>O._depsLength){for(let e=O._depsLength;e{const t=new Map;return t.cleanup=O,t.computed=e,t},La=new WeakMap,$i=Symbol(""),Ma=Symbol("");function pt(O,e,t){if(EO&&di){let i=La.get(O);i||La.set(O,i=new Map);let r=i.get(t);r||i.set(t,r=Ad(()=>i.delete(t))),Cd(di,r)}}function SO(O,e,t,i,r,n){const s=La.get(O);if(!s)return;let o=[];if(e==="clear")o=[...s.values()];else if(t==="length"&&J(O)){const a=Number(i);s.forEach((l,c)=>{(c==="length"||!co(c)&&c>=a)&&o.push(l)})}else switch(t!==void 0&&o.push(s.get(t)),e){case"add":J(O)?yc(t)&&o.push(s.get("length")):(o.push(s.get($i)),Tr(O)&&o.push(s.get(Ma)));break;case"delete":J(O)||(o.push(s.get($i)),Tr(O)&&o.push(s.get(Ma)));break;case"set":Tr(O)&&o.push(s.get($i));break}Tc();for(const a of o)a&&Ed(a,4);Zc()}const XP=Sc("__proto__,__v_isRef,__isVue"),Id=new Set(Object.getOwnPropertyNames(Symbol).filter(O=>O!=="arguments"&&O!=="caller").map(O=>Symbol[O]).filter(co)),Lh=yP();function yP(){const O={};return["includes","indexOf","lastIndexOf"].forEach(e=>{O[e]=function(...t){const i=he(this);for(let n=0,s=this.length;n{O[e]=function(...t){Xi(),Tc();const i=he(this)[e].apply(this,t);return Zc(),yi(),i}}),O}function xP(O){const e=he(this);return pt(e,"has",O),e.hasOwnProperty(O)}class Dd{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){const r=this._isReadonly,n=this._isShallow;if(t==="__v_isReactive")return!r;if(t==="__v_isReadonly")return r;if(t==="__v_isShallow")return n;if(t==="__v_raw")return i===(r?n?UP:Bd:n?Nd:Md).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const s=J(e);if(!r){if(s&&ae(Lh,t))return Reflect.get(Lh,t,i);if(t==="hasOwnProperty")return xP}const o=Reflect.get(e,t,i);return(co(t)?Id.has(t):XP(t))||(r||pt(e,"get",t),n)?o:mt(o)?s&&yc(t)?o:o.value:Ye(o)?r?Fd(o):kc(o):o}}class Ld extends Dd{constructor(e=!1){super(!1,e)}set(e,t,i,r){let n=e[t];if(!this._isShallow){const a=Ii(n);if(!Ws(i)&&!Ii(i)&&(n=he(n),i=he(i)),!J(e)&&mt(n)&&!mt(i))return a?!1:(n.value=i,!0)}const s=J(e)&&yc(t)?Number(t)O,Qo=O=>Reflect.getPrototypeOf(O);function vn(O,e,t=!1,i=!1){O=O.__v_raw;const r=he(O),n=he(e);t||(NO(e,n)&&pt(r,"get",e),pt(r,"get",n));const{has:s}=Qo(r),o=i?vc:t?qc:Cr;if(s.call(r,e))return o(O.get(e));if(s.call(r,n))return o(O.get(n));O!==r&&O.get(e)}function Wn(O,e=!1){const t=this.__v_raw,i=he(t),r=he(O);return e||(NO(O,r)&&pt(i,"has",O),pt(i,"has",r)),O===r?t.has(O):t.has(O)||t.has(r)}function kn(O,e=!1){return O=O.__v_raw,!e&&pt(he(O),"iterate",$i),Reflect.get(O,"size",O)}function Mh(O){O=he(O);const e=he(this);return Qo(e).has.call(e,O)||(e.add(O),SO(e,"add",O,O)),this}function Nh(O,e){e=he(e);const t=he(this),{has:i,get:r}=Qo(t);let n=i.call(t,O);n||(O=he(O),n=i.call(t,O));const s=r.call(t,O);return t.set(O,e),n?NO(e,s)&&SO(t,"set",O,e):SO(t,"add",O,e),this}function Bh(O){const e=he(this),{has:t,get:i}=Qo(e);let r=t.call(e,O);r||(O=he(O),r=t.call(e,O)),i&&i.call(e,O);const n=e.delete(O);return r&&SO(e,"delete",O,void 0),n}function Fh(){const O=he(this),e=O.size!==0,t=O.clear();return e&&SO(O,"clear",void 0,void 0),t}function Yn(O,e){return function(i,r){const n=this,s=n.__v_raw,o=he(s),a=e?vc:O?qc:Cr;return!O&&pt(o,"iterate",$i),s.forEach((l,c)=>i.call(r,a(l),a(c),n))}}function qn(O,e,t){return function(...i){const r=this.__v_raw,n=he(r),s=Tr(n),o=O==="entries"||O===Symbol.iterator&&s,a=O==="keys"&&s,l=r[O](...i),c=t?vc:e?qc:Cr;return!e&&pt(n,"iterate",a?Ma:$i),{next(){const{value:h,done:f}=l.next();return f?{value:h,done:f}:{value:o?[c(h[0]),c(h[1])]:c(h),done:f}},[Symbol.iterator](){return this}}}}function kO(O){return function(...e){return O==="delete"?!1:O==="clear"?void 0:this}}function vP(){const O={get(n){return vn(this,n)},get size(){return kn(this)},has:Wn,add:Mh,set:Nh,delete:Bh,clear:Fh,forEach:Yn(!1,!1)},e={get(n){return vn(this,n,!1,!0)},get size(){return kn(this)},has:Wn,add:Mh,set:Nh,delete:Bh,clear:Fh,forEach:Yn(!1,!0)},t={get(n){return vn(this,n,!0)},get size(){return kn(this,!0)},has(n){return Wn.call(this,n,!0)},add:kO("add"),set:kO("set"),delete:kO("delete"),clear:kO("clear"),forEach:Yn(!0,!1)},i={get(n){return vn(this,n,!0,!0)},get size(){return kn(this,!0)},has(n){return Wn.call(this,n,!0)},add:kO("add"),set:kO("set"),delete:kO("delete"),clear:kO("clear"),forEach:Yn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(n=>{O[n]=qn(n,!1,!1),t[n]=qn(n,!0,!1),e[n]=qn(n,!1,!0),i[n]=qn(n,!0,!0)}),[O,t,e,i]}const[WP,kP,YP,qP]=vP();function Wc(O,e){const t=e?O?qP:YP:O?kP:WP;return(i,r,n)=>r==="__v_isReactive"?!O:r==="__v_isReadonly"?O:r==="__v_raw"?i:Reflect.get(ae(t,r)&&r in i?t:i,r,n)}const zP={get:Wc(!1,!1)},RP={get:Wc(!1,!0)},VP={get:Wc(!0,!1)},Md=new WeakMap,Nd=new WeakMap,Bd=new WeakMap,UP=new WeakMap;function _P(O){switch(O){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jP(O){return O.__v_skip||!Object.isExtensible(O)?0:_P(oP(O))}function kc(O){return Ii(O)?O:Yc(O,!1,wP,zP,Md)}function GP(O){return Yc(O,!1,ZP,RP,Nd)}function Fd(O){return Yc(O,!0,TP,VP,Bd)}function Yc(O,e,t,i,r){if(!Ye(O)||O.__v_raw&&!(e&&O.__v_isReactive))return O;const n=r.get(O);if(n)return n;const s=jP(O);if(s===0)return O;const o=new Proxy(O,s===2?i:t);return r.set(O,o),o}function Ri(O){return Ii(O)?Ri(O.__v_raw):!!(O&&O.__v_isReactive)}function Ii(O){return!!(O&&O.__v_isReadonly)}function Ws(O){return!!(O&&O.__v_isShallow)}function Hd(O){return Ri(O)||Ii(O)}function he(O){const e=O&&O.__v_raw;return e?he(e):O}function Kd(O){return Object.isExtensible(O)&&vs(O,"__v_skip",!0),O}const Cr=O=>Ye(O)?kc(O):O,qc=O=>Ye(O)?Fd(O):O;class Jd{constructor(e,t,i,r){this.getter=e,this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new wc(()=>e(this._value),()=>cs(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=i}get value(){const e=he(this);return(!e._cacheable||e.effect.dirty)&&NO(e._value,e._value=e.effect.run())&&cs(e,4),e$(e),e.effect._dirtyLevel>=2&&cs(e,2),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function CP(O,e,t=!1){let i,r;const n=te(O);return n?(i=O,r=wt):(i=O.get,r=O.set),new Jd(i,r,n||!r,t)}function e$(O){var e;EO&&di&&(O=he(O),Cd(di,(e=O.dep)!=null?e:O.dep=Ad(()=>O.dep=void 0,O instanceof Jd?O:void 0)))}function cs(O,e=4,t){O=he(O);const i=O.dep;i&&Ed(i,e)}function mt(O){return!!(O&&O.__v_isRef===!0)}function hs(O){return EP(O,!0)}function EP(O,e){return mt(O)?O:new AP(O,e)}class AP{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:he(e),this._value=t?e:Cr(e)}get value(){return e$(this),this._value}set value(e){const t=this.__v_isShallow||Ws(e)||Ii(e);e=t?e:he(e),NO(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Cr(e),cs(this,4))}}function IP(O){return mt(O)?O.value:O}const DP={get:(O,e,t)=>IP(Reflect.get(O,e,t)),set:(O,e,t,i)=>{const r=O[e];return mt(r)&&!mt(t)?(r.value=t,!0):Reflect.set(O,e,t,i)}};function t$(O){return Ri(O)?O:new Proxy(O,DP)}/** +* @vue/runtime-core v3.4.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function AO(O,e,t,i){try{return i?O(...i):O()}catch(r){$o(r,e,t)}}function Lt(O,e,t,i){if(te(O)){const n=AO(O,e,t,i);return n&&Vd(n)&&n.catch(s=>{$o(s,e,t)}),n}const r=[];for(let n=0;n>>1,r=it[i],n=Ar(r);nsO&&it.splice(e,1)}function FP(O){J(O)?Vi.push(...O):(!qO||!qO.includes(O,O.allowRecurse?ai+1:ai))&&Vi.push(O),i$()}function Hh(O,e,t=Er?sO+1:0){for(;tAr(t)-Ar(i));if(Vi.length=0,qO){qO.push(...e);return}for(qO=e,ai=0;aiO.id==null?1/0:O.id,HP=(O,e)=>{const t=Ar(O)-Ar(e);if(t===0){if(O.pre&&!e.pre)return-1;if(e.pre&&!O.pre)return 1}return t};function n$(O){Na=!1,Er=!0,it.sort(HP);const e=wt;try{for(sO=0;sOet(Q)?Q.trim():Q)),h&&(r=t.map(hP))}let o,a=i[o=Ao(e)]||i[o=Ao(uO(e))];!a&&n&&(a=i[o=Ao(tr(e))]),a&&Lt(a,O,6,r);const l=i[o+"Once"];if(l){if(!O.emitted)O.emitted={};else if(O.emitted[o])return;O.emitted[o]=!0,Lt(l,O,6,r)}}function s$(O,e,t=!1){const i=e.emitsCache,r=i.get(O);if(r!==void 0)return r;const n=O.emits;let s={},o=!1;if(!te(O)){const a=l=>{const c=s$(l,e,!0);c&&(o=!0,Je(s,c))};!t&&e.mixins.length&&e.mixins.forEach(a),O.extends&&a(O.extends),O.mixins&&O.mixins.forEach(a)}return!n&&!o?(Ye(O)&&i.set(O,null),null):(J(n)?n.forEach(a=>s[a]=null):Je(s,n),Ye(O)&&i.set(O,s),s)}function po(O,e){return!O||!lo(e)?!1:(e=e.slice(2).replace(/Once$/,""),ae(O,e[0].toLowerCase()+e.slice(1))||ae(O,tr(e))||ae(O,e))}let It=null,o$=null;function ks(O){const e=It;return It=O,o$=O&&O.type.__scopeId||null,e}function JP(O,e=It,t){if(!e||O._n)return O;const i=(...r)=>{i._d&&lf(-1);const n=ks(e);let s;try{s=O(...r)}finally{ks(n),i._d&&lf(1)}return s};return i._n=!0,i._c=!0,i._d=!0,i}function Do(O){const{type:e,vnode:t,proxy:i,withProxy:r,props:n,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:h,data:f,setupState:Q,ctx:d,inheritAttrs:$}=O;let p,g;const P=ks(O);try{if(t.shapeFlag&4){const w=r||i,b=w;p=rO(c.call(b,w,h,n,Q,f,d)),g=a}else{const w=e;p=rO(w.length>1?w(n,{attrs:a,slots:o,emit:l}):w(n,null)),g=e.props?a:eX(a)}}catch(w){Yr.length=0,$o(w,O,1),p=Yt(Ir)}let y=p;if(g&&$!==!1){const w=Object.keys(g),{shapeFlag:b}=y;w.length&&b&7&&(s&&w.some(Pc)&&(g=tX(g,s)),y=Di(y,g))}return t.dirs&&(y=Di(y),y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition&&(y.transition=t.transition),p=y,ks(P),p}const eX=O=>{let e;for(const t in O)(t==="class"||t==="style"||lo(t))&&((e||(e={}))[t]=O[t]);return e},tX=(O,e)=>{const t={};for(const i in O)(!Pc(i)||!(i.slice(9)in e))&&(t[i]=O[i]);return t};function OX(O,e,t){const{props:i,children:r,component:n}=O,{props:s,children:o,patchFlag:a}=e,l=n.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&a>=0){if(a&1024)return!0;if(a&16)return i?Kh(i,s,l):!!s;if(a&8){const c=e.dynamicProps;for(let h=0;hO.__isSuspense;function aX(O,e){e&&e.pendingBranch?J(O)?e.effects.push(...O):e.effects.push(O):FP(O)}const lX=Symbol.for("v-scx"),cX=()=>kr(lX),zn={};function Ct(O,e,t){return l$(O,e,t)}function l$(O,e,{immediate:t,deep:i,flush:r,once:n,onTrack:s,onTrigger:o}=Te){if(e&&n){const T=e;e=(...Y)=>{T(...Y),b()}}const a=rt,l=T=>i===!0?T:ki(T,i===!1?1:void 0);let c,h=!1,f=!1;if(mt(O)?(c=()=>O.value,h=Ws(O)):Ri(O)?(c=()=>l(O),h=!0):J(O)?(f=!0,h=O.some(T=>Ri(T)||Ws(T)),c=()=>O.map(T=>{if(mt(T))return T.value;if(Ri(T))return l(T);if(te(T))return AO(T,a,2)})):te(O)?e?c=()=>AO(O,a,2):c=()=>(Q&&Q(),Lt(O,a,3,[d])):c=wt,e&&i){const T=c;c=()=>ki(T())}let Q,d=T=>{Q=y.onStop=()=>{AO(T,a,4),Q=y.onStop=void 0}},$;if(Po)if(d=wt,e?t&&Lt(e,a,3,[c(),f?[]:void 0,d]):c(),r==="sync"){const T=cX();$=T.__watcherHandles||(T.__watcherHandles=[])}else return wt;let p=f?new Array(O.length).fill(zn):zn;const g=()=>{if(!(!y.active||!y.dirty))if(e){const T=y.run();(i||h||(f?T.some((Y,D)=>NO(Y,p[D])):NO(T,p)))&&(Q&&Q(),Lt(e,a,3,[T,p===zn?void 0:f&&p[0]===zn?[]:p,d]),p=T)}else y.run()};g.allowRecurse=!!e;let P;r==="sync"?P=g:r==="post"?P=()=>ut(g,a&&a.suspense):(g.pre=!0,a&&(g.id=a.uid),P=()=>Rc(g));const y=new wc(c,wt,P),w=SP(),b=()=>{y.stop(),w&&Xc(w.effects,y)};return e?t?g():p=y.run():r==="post"?ut(y.run.bind(y),a&&a.suspense):y.run(),$&&$.push(b),b}function hX(O,e,t){const i=this.proxy,r=et(O)?O.includes(".")?c$(i,O):()=>i[O]:O.bind(i,i);let n;te(e)?n=e:(n=e.handler,t=e);const s=$n(this),o=l$(r,n.bind(i),t);return s(),o}function c$(O,e){const t=e.split(".");return()=>{let i=O;for(let r=0;r0){if(t>=e)return O;t++}if(i=i||new Set,i.has(O))return O;if(i.add(O),mt(O))ki(O.value,e,t,i);else if(J(O))for(let r=0;r{ki(r,e,t,i)});else if(aP(O))for(const r in O)ki(O[r],e,t,i);return O}function Oi(O,e,t,i){const r=O.dirs,n=e&&e.dirs;for(let s=0;sJe({name:O.name},e,{setup:O}))():O}const fs=O=>!!O.type.__asyncLoader,f$=O=>O.type.__isKeepAlive;function fX(O,e){u$(O,"a",e)}function uX(O,e){u$(O,"da",e)}function u$(O,e,t=rt){const i=O.__wdc||(O.__wdc=()=>{let r=t;for(;r;){if(r.isDeactivated)return;r=r.parent}return O()});if(mo(e,i,t),t){let r=t.parent;for(;r&&r.parent;)f$(r.parent.vnode)&&QX(i,e,t,r),r=r.parent}}function QX(O,e,t,i){const r=mo(e,O,i,!0);$$(()=>{Xc(i[e],r)},t)}function mo(O,e,t=rt,i=!1){if(t){const r=t[O]||(t[O]=[]),n=e.__weh||(e.__weh=(...s)=>{if(t.isUnmounted)return;Xi();const o=$n(t),a=Lt(e,t,O,s);return o(),yi(),a});return i?r.unshift(n):r.push(n),n}}const wO=O=>(e,t=rt)=>(!Po||O==="sp")&&mo(O,(...i)=>e(...i),t),dX=wO("bm"),Q$=wO("m"),$X=wO("bu"),pX=wO("u"),d$=wO("bum"),$$=wO("um"),mX=wO("sp"),gX=wO("rtg"),SX=wO("rtc");function PX(O,e=rt){mo("ec",O,e)}const Ba=O=>O?T$(O)?jc(O)||O.proxy:Ba(O.parent):null,vr=Je(Object.create(null),{$:O=>O,$el:O=>O.vnode.el,$data:O=>O.data,$props:O=>O.props,$attrs:O=>O.attrs,$slots:O=>O.slots,$refs:O=>O.refs,$parent:O=>Ba(O.parent),$root:O=>Ba(O.root),$emit:O=>O.emit,$options:O=>Vc(O),$forceUpdate:O=>O.f||(O.f=()=>{O.effect.dirty=!0,Rc(O.update)}),$nextTick:O=>O.n||(O.n=MP.bind(O.proxy)),$watch:O=>hX.bind(O)}),Lo=(O,e)=>O!==Te&&!O.__isScriptSetup&&ae(O,e),XX={get({_:O},e){const{ctx:t,setupState:i,data:r,props:n,accessCache:s,type:o,appContext:a}=O;let l;if(e[0]!=="$"){const Q=s[e];if(Q!==void 0)switch(Q){case 1:return i[e];case 2:return r[e];case 4:return t[e];case 3:return n[e]}else{if(Lo(i,e))return s[e]=1,i[e];if(r!==Te&&ae(r,e))return s[e]=2,r[e];if((l=O.propsOptions[0])&&ae(l,e))return s[e]=3,n[e];if(t!==Te&&ae(t,e))return s[e]=4,t[e];Fa&&(s[e]=0)}}const c=vr[e];let h,f;if(c)return e==="$attrs"&&pt(O,"get",e),c(O);if((h=o.__cssModules)&&(h=h[e]))return h;if(t!==Te&&ae(t,e))return s[e]=4,t[e];if(f=a.config.globalProperties,ae(f,e))return f[e]},set({_:O},e,t){const{data:i,setupState:r,ctx:n}=O;return Lo(r,e)?(r[e]=t,!0):i!==Te&&ae(i,e)?(i[e]=t,!0):ae(O.props,e)||e[0]==="$"&&e.slice(1)in O?!1:(n[e]=t,!0)},has({_:{data:O,setupState:e,accessCache:t,ctx:i,appContext:r,propsOptions:n}},s){let o;return!!t[s]||O!==Te&&ae(O,s)||Lo(e,s)||(o=n[0])&&ae(o,s)||ae(i,s)||ae(vr,s)||ae(r.config.globalProperties,s)},defineProperty(O,e,t){return t.get!=null?O._.accessCache[e]=0:ae(t,"value")&&this.set(O,e,t.value,null),Reflect.defineProperty(O,e,t)}};function ef(O){return J(O)?O.reduce((e,t)=>(e[t]=null,e),{}):O}let Fa=!0;function yX(O){const e=Vc(O),t=O.proxy,i=O.ctx;Fa=!1,e.beforeCreate&&tf(e.beforeCreate,O,"bc");const{data:r,computed:n,methods:s,watch:o,provide:a,inject:l,created:c,beforeMount:h,mounted:f,beforeUpdate:Q,updated:d,activated:$,deactivated:p,beforeDestroy:g,beforeUnmount:P,destroyed:y,unmounted:w,render:b,renderTracked:T,renderTriggered:Y,errorCaptured:D,serverPrefetch:Oe,expose:K,inheritAttrs:F,components:N,directives:ce,filters:se}=e;if(l&&xX(l,i,null),s)for(const ie in s){const ee=s[ie];te(ee)&&(i[ie]=ee.bind(t))}if(r){const ie=r.call(t,t);Ye(ie)&&(O.data=kc(ie))}if(Fa=!0,n)for(const ie in n){const ee=n[ie],ze=te(ee)?ee.bind(t,t):te(ee.get)?ee.get.bind(t,t):wt,be=!te(ee)&&te(ee.set)?ee.set.bind(t):wt,Re=v$({get:ze,set:be});Object.defineProperty(i,ie,{enumerable:!0,configurable:!0,get:()=>Re.value,set:We=>Re.value=We})}if(o)for(const ie in o)p$(o[ie],i,t,ie);if(a){const ie=te(a)?a.call(t):a;Reflect.ownKeys(ie).forEach(ee=>{WX(ee,ie[ee])})}c&&tf(c,O,"c");function fe(ie,ee){J(ee)?ee.forEach(ze=>ie(ze.bind(t))):ee&&ie(ee.bind(t))}if(fe(dX,h),fe(Q$,f),fe($X,Q),fe(pX,d),fe(fX,$),fe(uX,p),fe(PX,D),fe(SX,T),fe(gX,Y),fe(d$,P),fe($$,w),fe(mX,Oe),J(K))if(K.length){const ie=O.exposed||(O.exposed={});K.forEach(ee=>{Object.defineProperty(ie,ee,{get:()=>t[ee],set:ze=>t[ee]=ze})})}else O.exposed||(O.exposed={});b&&O.render===wt&&(O.render=b),F!=null&&(O.inheritAttrs=F),N&&(O.components=N),ce&&(O.directives=ce)}function xX(O,e,t=wt){J(O)&&(O=Ha(O));for(const i in O){const r=O[i];let n;Ye(r)?"default"in r?n=kr(r.from||i,r.default,!0):n=kr(r.from||i):n=kr(r),mt(n)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>n.value,set:s=>n.value=s}):e[i]=n}}function tf(O,e,t){Lt(J(O)?O.map(i=>i.bind(e.proxy)):O.bind(e.proxy),e,t)}function p$(O,e,t,i){const r=i.includes(".")?c$(t,i):()=>t[i];if(et(O)){const n=e[O];te(n)&&Ct(r,n)}else if(te(O))Ct(r,O.bind(t));else if(Ye(O))if(J(O))O.forEach(n=>p$(n,e,t,i));else{const n=te(O.handler)?O.handler.bind(t):e[O.handler];te(n)&&Ct(r,n,O)}}function Vc(O){const e=O.type,{mixins:t,extends:i}=e,{mixins:r,optionsCache:n,config:{optionMergeStrategies:s}}=O.appContext,o=n.get(e);let a;return o?a=o:!r.length&&!t&&!i?a=e:(a={},r.length&&r.forEach(l=>Ys(a,l,s,!0)),Ys(a,e,s)),Ye(e)&&n.set(e,a),a}function Ys(O,e,t,i=!1){const{mixins:r,extends:n}=e;n&&Ys(O,n,t,!0),r&&r.forEach(s=>Ys(O,s,t,!0));for(const s in e)if(!(i&&s==="expose")){const o=bX[s]||t&&t[s];O[s]=o?o(O[s],e[s]):e[s]}return O}const bX={data:Of,props:rf,emits:rf,methods:Sr,computed:Sr,beforeCreate:lt,created:lt,beforeMount:lt,mounted:lt,beforeUpdate:lt,updated:lt,beforeDestroy:lt,beforeUnmount:lt,destroyed:lt,unmounted:lt,activated:lt,deactivated:lt,errorCaptured:lt,serverPrefetch:lt,components:Sr,directives:Sr,watch:TX,provide:Of,inject:wX};function Of(O,e){return e?O?function(){return Je(te(O)?O.call(this,this):O,te(e)?e.call(this,this):e)}:e:O}function wX(O,e){return Sr(Ha(O),Ha(e))}function Ha(O){if(J(O)){const e={};for(let t=0;t1)return t&&te(e)?e.call(i&&i.proxy):e}}function kX(O,e,t,i=!1){const r={},n={};vs(n,So,1),O.propsDefaults=Object.create(null),g$(O,e,r,n);for(const s in O.propsOptions[0])s in r||(r[s]=void 0);t?O.props=i?r:GP(r):O.type.props?O.props=r:O.props=n,O.attrs=n}function YX(O,e,t,i){const{props:r,attrs:n,vnode:{patchFlag:s}}=O,o=he(r),[a]=O.propsOptions;let l=!1;if((i||s>0)&&!(s&16)){if(s&8){const c=O.vnode.dynamicProps;for(let h=0;h{a=!0;const[f,Q]=S$(h,e,!0);Je(s,f),Q&&o.push(...Q)};!t&&e.mixins.length&&e.mixins.forEach(c),O.extends&&c(O.extends),O.mixins&&O.mixins.forEach(c)}if(!n&&!a)return Ye(O)&&i.set(O,zi),zi;if(J(n))for(let c=0;c-1,Q[1]=$<0||d<$,(d>-1||ae(Q,"default"))&&o.push(h)}}}const l=[s,o];return Ye(O)&&i.set(O,l),l}function nf(O){return O[0]!=="$"&&!Zr(O)}function sf(O){return O===null?"null":typeof O=="function"?O.name||"":typeof O=="object"&&O.constructor&&O.constructor.name||""}function of(O,e){return sf(O)===sf(e)}function af(O,e){return J(e)?e.findIndex(t=>of(t,O)):te(e)&&of(e,O)?0:-1}const P$=O=>O[0]==="_"||O==="$stable",Uc=O=>J(O)?O.map(rO):[rO(O)],qX=(O,e,t)=>{if(e._n)return e;const i=JP((...r)=>Uc(e(...r)),t);return i._c=!1,i},X$=(O,e,t)=>{const i=O._ctx;for(const r in O){if(P$(r))continue;const n=O[r];if(te(n))e[r]=qX(r,n,i);else if(n!=null){const s=Uc(n);e[r]=()=>s}}},y$=(O,e)=>{const t=Uc(e);O.slots.default=()=>t},zX=(O,e)=>{if(O.vnode.shapeFlag&32){const t=e._;t?(O.slots=he(e),vs(e,"_",t)):X$(e,O.slots={})}else O.slots={},e&&y$(O,e);vs(O.slots,So,1)},RX=(O,e,t)=>{const{vnode:i,slots:r}=O;let n=!0,s=Te;if(i.shapeFlag&32){const o=e._;o?t&&o===1?n=!1:(Je(r,e),!t&&o===1&&delete r._):(n=!e.$stable,X$(e,r)),s=e}else e&&(y$(O,e),s={default:1});if(n)for(const o in r)!P$(o)&&s[o]==null&&delete r[o]};function Ja(O,e,t,i,r=!1){if(J(O)){O.forEach((f,Q)=>Ja(f,e&&(J(e)?e[Q]:e),t,i,r));return}if(fs(i)&&!r)return;const n=i.shapeFlag&4?jc(i.component)||i.component.proxy:i.el,s=r?null:n,{i:o,r:a}=O,l=e&&e.r,c=o.refs===Te?o.refs={}:o.refs,h=o.setupState;if(l!=null&&l!==a&&(et(l)?(c[l]=null,ae(h,l)&&(h[l]=null)):mt(l)&&(l.value=null)),te(a))AO(a,o,12,[s,c]);else{const f=et(a),Q=mt(a);if(f||Q){const d=()=>{if(O.f){const $=f?ae(h,a)?h[a]:c[a]:a.value;r?J($)&&Xc($,n):J($)?$.includes(n)||$.push(n):f?(c[a]=[n],ae(h,a)&&(h[a]=c[a])):(a.value=[n],O.k&&(c[O.k]=a.value))}else f?(c[a]=s,ae(h,a)&&(h[a]=s)):Q&&(a.value=s,O.k&&(c[O.k]=s))};s?(d.id=-1,ut(d,t)):d()}}}const ut=aX;function VX(O){return UX(O)}function UX(O,e){const t=Ud();t.__VUE__=!0;const{insert:i,remove:r,patchProp:n,createElement:s,createText:o,createComment:a,setText:l,setElementText:c,parentNode:h,nextSibling:f,setScopeId:Q=wt,insertStaticContent:d}=O,$=(m,S,x,Z=null,v=null,z=null,_=void 0,q=null,R=!!S.dynamicChildren)=>{if(m===S)return;m&&!ar(m,S)&&(Z=Zn(m),We(m,v,z,!0),m=null),S.patchFlag===-2&&(R=!1,S.dynamicChildren=null);const{type:W,ref:j,shapeFlag:L}=S;switch(W){case go:p(m,S,x,Z);break;case Ir:g(m,S,x,Z);break;case No:m==null&&P(S,x,Z,_);break;case mO:N(m,S,x,Z,v,z,_,q,R);break;default:L&1?b(m,S,x,Z,v,z,_,q,R):L&6?ce(m,S,x,Z,v,z,_,q,R):(L&64||L&128)&&W.process(m,S,x,Z,v,z,_,q,R,bi)}j!=null&&v&&Ja(j,m&&m.ref,z,S||m,!S)},p=(m,S,x,Z)=>{if(m==null)i(S.el=o(S.children),x,Z);else{const v=S.el=m.el;S.children!==m.children&&l(v,S.children)}},g=(m,S,x,Z)=>{m==null?i(S.el=a(S.children||""),x,Z):S.el=m.el},P=(m,S,x,Z)=>{[m.el,m.anchor]=d(m.children,S,x,Z,m.el,m.anchor)},y=({el:m,anchor:S},x,Z)=>{let v;for(;m&&m!==S;)v=f(m),i(m,x,Z),m=v;i(S,x,Z)},w=({el:m,anchor:S})=>{let x;for(;m&&m!==S;)x=f(m),r(m),m=x;r(S)},b=(m,S,x,Z,v,z,_,q,R)=>{S.type==="svg"?_="svg":S.type==="math"&&(_="mathml"),m==null?T(S,x,Z,v,z,_,q,R):Oe(m,S,v,z,_,q,R)},T=(m,S,x,Z,v,z,_,q)=>{let R,W;const{props:j,shapeFlag:L,transition:I,dirs:B}=m;if(R=m.el=s(m.type,z,j&&j.is,j),L&8?c(R,m.children):L&16&&D(m.children,R,null,Z,v,Mo(m,z),_,q),B&&Oi(m,null,Z,"created"),Y(R,m,m.scopeId,_,Z),j){for(const pe in j)pe!=="value"&&!Zr(pe)&&n(R,pe,null,j[pe],z,m.children,Z,v,Wt);"value"in j&&n(R,"value",null,j.value,z),(W=j.onVnodeBeforeMount)&&Jt(W,Z,m)}B&&Oi(m,null,Z,"beforeMount");const ne=_X(v,I);ne&&I.beforeEnter(R),i(R,S,x),((W=j&&j.onVnodeMounted)||ne||B)&&ut(()=>{W&&Jt(W,Z,m),ne&&I.enter(R),B&&Oi(m,null,Z,"mounted")},v)},Y=(m,S,x,Z,v)=>{if(x&&Q(m,x),Z)for(let z=0;z{for(let W=R;W{const q=S.el=m.el;let{patchFlag:R,dynamicChildren:W,dirs:j}=S;R|=m.patchFlag&16;const L=m.props||Te,I=S.props||Te;let B;if(x&&ii(x,!1),(B=I.onVnodeBeforeUpdate)&&Jt(B,x,S,m),j&&Oi(S,m,x,"beforeUpdate"),x&&ii(x,!0),W?K(m.dynamicChildren,W,q,x,Z,Mo(S,v),z):_||ee(m,S,q,null,x,Z,Mo(S,v),z,!1),R>0){if(R&16)F(q,S,L,I,x,Z,v);else if(R&2&&L.class!==I.class&&n(q,"class",null,I.class,v),R&4&&n(q,"style",L.style,I.style,v),R&8){const ne=S.dynamicProps;for(let pe=0;pe{B&&Jt(B,x,S,m),j&&Oi(S,m,x,"updated")},Z)},K=(m,S,x,Z,v,z,_)=>{for(let q=0;q{if(x!==Z){if(x!==Te)for(const q in x)!Zr(q)&&!(q in Z)&&n(m,q,x[q],null,_,S.children,v,z,Wt);for(const q in Z){if(Zr(q))continue;const R=Z[q],W=x[q];R!==W&&q!=="value"&&n(m,q,W,R,_,S.children,v,z,Wt)}"value"in Z&&n(m,"value",x.value,Z.value,_)}},N=(m,S,x,Z,v,z,_,q,R)=>{const W=S.el=m?m.el:o(""),j=S.anchor=m?m.anchor:o("");let{patchFlag:L,dynamicChildren:I,slotScopeIds:B}=S;B&&(q=q?q.concat(B):B),m==null?(i(W,x,Z),i(j,x,Z),D(S.children||[],x,j,v,z,_,q,R)):L>0&&L&64&&I&&m.dynamicChildren?(K(m.dynamicChildren,I,x,v,z,_,q),(S.key!=null||v&&S===v.subTree)&&x$(m,S,!0)):ee(m,S,x,j,v,z,_,q,R)},ce=(m,S,x,Z,v,z,_,q,R)=>{S.slotScopeIds=q,m==null?S.shapeFlag&512?v.ctx.activate(S,x,Z,_,R):se(S,x,Z,v,z,_,R):Se(m,S,R)},se=(m,S,x,Z,v,z,_)=>{const q=m.component=KX(m,Z,v);if(f$(m)&&(q.ctx.renderer=bi),JX(q),q.asyncDep){if(v&&v.registerDep(q,fe),!m.el){const R=q.subTree=Yt(Ir);g(null,R,S,x)}}else fe(q,m,S,x,v,z,_)},Se=(m,S,x)=>{const Z=S.component=m.component;if(OX(m,S,x))if(Z.asyncDep&&!Z.asyncResolved){ie(Z,S,x);return}else Z.next=S,BP(Z.update),Z.effect.dirty=!0,Z.update();else S.el=m.el,Z.vnode=S},fe=(m,S,x,Z,v,z,_)=>{const q=()=>{if(m.isMounted){let{next:j,bu:L,u:I,parent:B,vnode:ne}=m;{const wi=b$(m);if(wi){j&&(j.el=ne.el,ie(m,j,_)),wi.asyncDep.then(()=>{m.isUnmounted||q()});return}}let pe=j,we;ii(m,!1),j?(j.el=ne.el,ie(m,j,_)):j=ne,L&&Io(L),(we=j.props&&j.props.onVnodeBeforeUpdate)&&Jt(we,B,j,ne),ii(m,!0);const Ge=Do(m),jt=m.subTree;m.subTree=Ge,$(jt,Ge,h(jt.el),Zn(jt),m,v,z),j.el=Ge.el,pe===null&&iX(m,Ge.el),I&&ut(I,v),(we=j.props&&j.props.onVnodeUpdated)&&ut(()=>Jt(we,B,j,ne),v)}else{let j;const{el:L,props:I}=S,{bm:B,m:ne,parent:pe}=m,we=fs(S);if(ii(m,!1),B&&Io(B),!we&&(j=I&&I.onVnodeBeforeMount)&&Jt(j,pe,S),ii(m,!0),L&&Eo){const Ge=()=>{m.subTree=Do(m),Eo(L,m.subTree,m,v,null)};we?S.type.__asyncLoader().then(()=>!m.isUnmounted&&Ge()):Ge()}else{const Ge=m.subTree=Do(m);$(null,Ge,x,Z,m,v,z),S.el=Ge.el}if(ne&&ut(ne,v),!we&&(j=I&&I.onVnodeMounted)){const Ge=S;ut(()=>Jt(j,pe,Ge),v)}(S.shapeFlag&256||pe&&fs(pe.vnode)&&pe.vnode.shapeFlag&256)&&m.a&&ut(m.a,v),m.isMounted=!0,S=x=Z=null}},R=m.effect=new wc(q,wt,()=>Rc(W),m.scope),W=m.update=()=>{R.dirty&&R.run()};W.id=m.uid,ii(m,!0),W()},ie=(m,S,x)=>{S.component=m;const Z=m.vnode.props;m.vnode=S,m.next=null,YX(m,S.props,Z,x),RX(m,S.children,x),Xi(),Hh(m),yi()},ee=(m,S,x,Z,v,z,_,q,R=!1)=>{const W=m&&m.children,j=m?m.shapeFlag:0,L=S.children,{patchFlag:I,shapeFlag:B}=S;if(I>0){if(I&128){be(W,L,x,Z,v,z,_,q,R);return}else if(I&256){ze(W,L,x,Z,v,z,_,q,R);return}}B&8?(j&16&&Wt(W,v,z),L!==W&&c(x,L)):j&16?B&16?be(W,L,x,Z,v,z,_,q,R):Wt(W,v,z,!0):(j&8&&c(x,""),B&16&&D(L,x,Z,v,z,_,q,R))},ze=(m,S,x,Z,v,z,_,q,R)=>{m=m||zi,S=S||zi;const W=m.length,j=S.length,L=Math.min(W,j);let I;for(I=0;Ij?Wt(m,v,z,!0,!1,L):D(S,x,Z,v,z,_,q,R,L)},be=(m,S,x,Z,v,z,_,q,R)=>{let W=0;const j=S.length;let L=m.length-1,I=j-1;for(;W<=L&&W<=I;){const B=m[W],ne=S[W]=R?zO(S[W]):rO(S[W]);if(ar(B,ne))$(B,ne,x,null,v,z,_,q,R);else break;W++}for(;W<=L&&W<=I;){const B=m[L],ne=S[I]=R?zO(S[I]):rO(S[I]);if(ar(B,ne))$(B,ne,x,null,v,z,_,q,R);else break;L--,I--}if(W>L){if(W<=I){const B=I+1,ne=BI)for(;W<=L;)We(m[W],v,z,!0),W++;else{const B=W,ne=W,pe=new Map;for(W=ne;W<=I;W++){const St=S[W]=R?zO(S[W]):rO(S[W]);St.key!=null&&pe.set(St.key,W)}let we,Ge=0;const jt=I-ne+1;let wi=!1,Gh=0;const or=new Array(jt);for(W=0;W=jt){We(St,v,z,!0);continue}let Kt;if(St.key!=null)Kt=pe.get(St.key);else for(we=ne;we<=I;we++)if(or[we-ne]===0&&ar(St,S[we])){Kt=we;break}Kt===void 0?We(St,v,z,!0):(or[Kt-ne]=W+1,Kt>=Gh?Gh=Kt:wi=!0,$(St,S[Kt],x,null,v,z,_,q,R),Ge++)}const Ch=wi?jX(or):zi;for(we=Ch.length-1,W=jt-1;W>=0;W--){const St=ne+W,Kt=S[St],Eh=St+1{const{el:z,type:_,transition:q,children:R,shapeFlag:W}=m;if(W&6){Re(m.component.subTree,S,x,Z);return}if(W&128){m.suspense.move(S,x,Z);return}if(W&64){_.move(m,S,x,bi);return}if(_===mO){i(z,S,x);for(let L=0;Lq.enter(z),v);else{const{leave:L,delayLeave:I,afterLeave:B}=q,ne=()=>i(z,S,x),pe=()=>{L(z,()=>{ne(),B&&B()})};I?I(z,ne,pe):pe()}else i(z,S,x)},We=(m,S,x,Z=!1,v=!1)=>{const{type:z,props:_,ref:q,children:R,dynamicChildren:W,shapeFlag:j,patchFlag:L,dirs:I}=m;if(q!=null&&Ja(q,null,x,m,!0),j&256){S.ctx.deactivate(m);return}const B=j&1&&I,ne=!fs(m);let pe;if(ne&&(pe=_&&_.onVnodeBeforeUnmount)&&Jt(pe,S,m),j&6)xi(m.component,x,Z);else{if(j&128){m.suspense.unmount(x,Z);return}B&&Oi(m,null,S,"beforeUnmount"),j&64?m.type.remove(m,S,x,v,bi,Z):W&&(z!==mO||L>0&&L&64)?Wt(W,S,x,!1,!0):(z===mO&&L&384||!v&&j&16)&&Wt(R,S,x),Z&&Ht(m)}(ne&&(pe=_&&_.onVnodeUnmounted)||B)&&ut(()=>{pe&&Jt(pe,S,m),B&&Oi(m,null,S,"unmounted")},x)},Ht=m=>{const{type:S,el:x,anchor:Z,transition:v}=m;if(S===mO){WO(x,Z);return}if(S===No){w(m);return}const z=()=>{r(x),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(m.shapeFlag&1&&v&&!v.persisted){const{leave:_,delayLeave:q}=v,R=()=>_(x,z);q?q(m.el,z,R):R()}else z()},WO=(m,S)=>{let x;for(;m!==S;)x=f(m),r(m),m=x;r(S)},xi=(m,S,x)=>{const{bum:Z,scope:v,update:z,subTree:_,um:q}=m;Z&&Io(Z),v.stop(),z&&(z.active=!1,We(_,m,S,x)),q&&ut(q,S),ut(()=>{m.isUnmounted=!0},S),S&&S.pendingBranch&&!S.isUnmounted&&m.asyncDep&&!m.asyncResolved&&m.suspenseId===S.pendingId&&(S.deps--,S.deps===0&&S.resolve())},Wt=(m,S,x,Z=!1,v=!1,z=0)=>{for(let _=z;_m.shapeFlag&6?Zn(m.component.subTree):m.shapeFlag&128?m.suspense.next():f(m.anchor||m.el);let Go=!1;const jh=(m,S,x)=>{m==null?S._vnode&&We(S._vnode,null,null,!0):$(S._vnode||null,m,S,null,null,null,x),Go||(Go=!0,Hh(),r$(),Go=!1),S._vnode=m},bi={p:$,um:We,m:Re,r:Ht,mt:se,mc:D,pc:ee,pbc:K,n:Zn,o:O};let Co,Eo;return e&&([Co,Eo]=e(bi)),{render:jh,hydrate:Co,createApp:vX(jh,Co)}}function Mo({type:O,props:e},t){return t==="svg"&&O==="foreignObject"||t==="mathml"&&O==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function ii({effect:O,update:e},t){O.allowRecurse=e.allowRecurse=t}function _X(O,e){return(!O||O&&!O.pendingBranch)&&e&&!e.persisted}function x$(O,e,t=!1){const i=O.children,r=e.children;if(J(i)&&J(r))for(let n=0;n>1,O[t[o]]0&&(e[i]=t[n-1]),t[n]=i)}}for(n=t.length,s=t[n-1];n-- >0;)t[n]=s,s=e[s];return t}function b$(O){const e=O.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:b$(e)}const GX=O=>O.__isTeleport,mO=Symbol.for("v-fgt"),go=Symbol.for("v-txt"),Ir=Symbol.for("v-cmt"),No=Symbol.for("v-stc"),Yr=[];let Dt=null;function CX(O=!1){Yr.push(Dt=O?null:[])}function EX(){Yr.pop(),Dt=Yr[Yr.length-1]||null}let Dr=1;function lf(O){Dr+=O}function AX(O){return O.dynamicChildren=Dr>0?Dt||zi:null,EX(),Dr>0&&Dt&&Dt.push(O),O}function IX(O,e,t,i,r){return AX(Yt(O,e,t,i,r,!0))}function el(O){return O?O.__v_isVNode===!0:!1}function ar(O,e){return O.type===e.type&&O.key===e.key}const So="__vInternal",w$=({key:O})=>O??null,us=({ref:O,ref_key:e,ref_for:t})=>(typeof O=="number"&&(O=""+O),O!=null?et(O)||mt(O)||te(O)?{i:It,r:O,k:e,f:!!t}:O:null);function DX(O,e=null,t=null,i=0,r=null,n=O===mO?0:1,s=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:O,props:e,key:e&&w$(e),ref:e&&us(e),scopeId:o$,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:It};return o?(_c(a,t),n&128&&O.normalize(a)):t&&(a.shapeFlag|=et(t)?8:16),Dr>0&&!s&&Dt&&(a.patchFlag>0||n&6)&&a.patchFlag!==32&&Dt.push(a),a}const Yt=LX;function LX(O,e=null,t=null,i=0,r=null,n=!1){if((!O||O===nX)&&(O=Ir),el(O)){const o=Di(O,e,!0);return t&&_c(o,t),Dr>0&&!n&&Dt&&(o.shapeFlag&6?Dt[Dt.indexOf(O)]=o:Dt.push(o)),o.patchFlag|=-2,o}if(ry(O)&&(O=O.__vccOpts),e){e=MX(e);let{class:o,style:a}=e;o&&!et(o)&&(e.class=bc(o)),Ye(a)&&(Hd(a)&&!J(a)&&(a=Je({},a)),e.style=xc(a))}const s=et(O)?1:oX(O)?128:GX(O)?64:Ye(O)?4:te(O)?2:0;return DX(O,e,t,i,r,s,n,!0)}function MX(O){return O?Hd(O)||So in O?Je({},O):O:null}function Di(O,e,t=!1){const{props:i,ref:r,patchFlag:n,children:s}=O,o=e?BX(i||{},e):i;return{__v_isVNode:!0,__v_skip:!0,type:O.type,props:o,key:o&&w$(o),ref:e&&e.ref?t&&r?J(r)?r.concat(us(e)):[r,us(e)]:us(e):r,scopeId:O.scopeId,slotScopeIds:O.slotScopeIds,children:s,target:O.target,targetAnchor:O.targetAnchor,staticCount:O.staticCount,shapeFlag:O.shapeFlag,patchFlag:e&&O.type!==mO?n===-1?16:n|16:n,dynamicProps:O.dynamicProps,dynamicChildren:O.dynamicChildren,appContext:O.appContext,dirs:O.dirs,transition:O.transition,component:O.component,suspense:O.suspense,ssContent:O.ssContent&&Di(O.ssContent),ssFallback:O.ssFallback&&Di(O.ssFallback),el:O.el,anchor:O.anchor,ctx:O.ctx,ce:O.ce}}function NX(O=" ",e=0){return Yt(go,null,O,e)}function rO(O){return O==null||typeof O=="boolean"?Yt(Ir):J(O)?Yt(mO,null,O.slice()):typeof O=="object"?zO(O):Yt(go,null,String(O))}function zO(O){return O.el===null&&O.patchFlag!==-1||O.memo?O:Di(O)}function _c(O,e){let t=0;const{shapeFlag:i}=O;if(e==null)e=null;else if(J(e))t=16;else if(typeof e=="object")if(i&65){const r=e.default;r&&(r._c&&(r._d=!1),_c(O,r()),r._c&&(r._d=!0));return}else{t=32;const r=e._;!r&&!(So in e)?e._ctx=It:r===3&&It&&(It.slots._===1?e._=1:(e._=2,O.patchFlag|=1024))}else te(e)?(e={default:e,_ctx:It},t=32):(e=String(e),i&64?(t=16,e=[NX(e)]):t=8);O.children=e,O.shapeFlag|=t}function BX(...O){const e={};for(let t=0;t{let r;return(r=O[t])||(r=O[t]=[]),r.push(i),n=>{r.length>1?r.forEach(s=>s(n)):r[0](n)}};qs=e("__VUE_INSTANCE_SETTERS__",t=>rt=t),tl=e("__VUE_SSR_SETTERS__",t=>Po=t)}const $n=O=>{const e=rt;return qs(O),O.scope.on(),()=>{O.scope.off(),qs(e)}},cf=()=>{rt&&rt.scope.off(),qs(null)};function T$(O){return O.vnode.shapeFlag&4}let Po=!1;function JX(O,e=!1){e&&tl(e);const{props:t,children:i}=O.vnode,r=T$(O);kX(O,t,r,e),zX(O,i);const n=r?ey(O,e):void 0;return e&&tl(!1),n}function ey(O,e){const t=O.type;O.accessCache=Object.create(null),O.proxy=Kd(new Proxy(O.ctx,XX));const{setup:i}=t;if(i){const r=O.setupContext=i.length>1?Oy(O):null,n=$n(O);Xi();const s=AO(i,O,0,[O.props,r]);if(yi(),n(),Vd(s)){if(s.then(cf,cf),e)return s.then(o=>{hf(O,o,e)}).catch(o=>{$o(o,O,0)});O.asyncDep=s}else hf(O,s,e)}else Z$(O,e)}function hf(O,e,t){te(e)?O.type.__ssrInlineRender?O.ssrRender=e:O.render=e:Ye(e)&&(O.setupState=t$(e)),Z$(O,t)}let ff;function Z$(O,e,t){const i=O.type;if(!O.render){if(!e&&ff&&!i.render){const r=i.template||Vc(O).template;if(r){const{isCustomElement:n,compilerOptions:s}=O.appContext.config,{delimiters:o,compilerOptions:a}=i,l=Je(Je({isCustomElement:n,delimiters:o},s),a);i.render=ff(r,l)}}O.render=i.render||wt}{const r=$n(O);Xi();try{yX(O)}finally{yi(),r()}}}function ty(O){return O.attrsProxy||(O.attrsProxy=new Proxy(O.attrs,{get(e,t){return pt(O,"get","$attrs"),e[t]}}))}function Oy(O){const e=t=>{O.exposed=t||{}};return{get attrs(){return ty(O)},slots:O.slots,emit:O.emit,expose:e}}function jc(O){if(O.exposed)return O.exposeProxy||(O.exposeProxy=new Proxy(t$(Kd(O.exposed)),{get(e,t){if(t in e)return e[t];if(t in vr)return vr[t](O)},has(e,t){return t in e||t in vr}}))}function iy(O,e=!0){return te(O)?O.displayName||O.name:O.name||e&&O.__name}function ry(O){return te(O)&&"__vccOpts"in O}const v$=(O,e)=>CP(O,e,Po);function ny(O,e,t){const i=arguments.length;return i===2?Ye(e)&&!J(e)?el(e)?Yt(O,null,[e]):Yt(O,e):Yt(O,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&el(t)&&(t=[t]),Yt(O,e,t))}const sy="3.4.21";/** +* @vue/runtime-dom v3.4.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const oy="http://www.w3.org/2000/svg",ay="http://www.w3.org/1998/Math/MathML",RO=typeof document<"u"?document:null,uf=RO&&RO.createElement("template"),ly={insert:(O,e,t)=>{e.insertBefore(O,t||null)},remove:O=>{const e=O.parentNode;e&&e.removeChild(O)},createElement:(O,e,t,i)=>{const r=e==="svg"?RO.createElementNS(oy,O):e==="mathml"?RO.createElementNS(ay,O):RO.createElement(O,t?{is:t}:void 0);return O==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:O=>RO.createTextNode(O),createComment:O=>RO.createComment(O),setText:(O,e)=>{O.nodeValue=e},setElementText:(O,e)=>{O.textContent=e},parentNode:O=>O.parentNode,nextSibling:O=>O.nextSibling,querySelector:O=>RO.querySelector(O),setScopeId(O,e){O.setAttribute(e,"")},insertStaticContent(O,e,t,i,r,n){const s=t?t.previousSibling:e.lastChild;if(r&&(r===n||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),t),!(r===n||!(r=r.nextSibling)););else{uf.innerHTML=i==="svg"?`${O}`:i==="mathml"?`${O}`:O;const o=uf.content;if(i==="svg"||i==="mathml"){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}e.insertBefore(o,t)}return[s?s.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},cy=Symbol("_vtc");function hy(O,e,t){const i=O[cy];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?O.removeAttribute("class"):t?O.setAttribute("class",e):O.className=e}const Qf=Symbol("_vod"),fy=Symbol("_vsh"),uy=Symbol(""),Qy=/(^|;)\s*display\s*:/;function dy(O,e,t){const i=O.style,r=et(t);let n=!1;if(t&&!r){if(e)if(et(e))for(const s of e.split(";")){const o=s.slice(0,s.indexOf(":")).trim();t[o]==null&&Qs(i,o,"")}else for(const s in e)t[s]==null&&Qs(i,s,"");for(const s in t)s==="display"&&(n=!0),Qs(i,s,t[s])}else if(r){if(e!==t){const s=i[uy];s&&(t+=";"+s),i.cssText=t,n=Qy.test(t)}}else e&&O.removeAttribute("style");Qf in O&&(O[Qf]=n?i.display:"",O[fy]&&(i.display="none"))}const df=/\s*!important$/;function Qs(O,e,t){if(J(t))t.forEach(i=>Qs(O,e,i));else if(t==null&&(t=""),e.startsWith("--"))O.setProperty(e,t);else{const i=$y(O,e);df.test(t)?O.setProperty(tr(i),t.replace(df,""),"important"):O[i]=t}}const $f=["Webkit","Moz","ms"],Bo={};function $y(O,e){const t=Bo[e];if(t)return t;let i=uO(e);if(i!=="filter"&&i in O)return Bo[e]=i;i=uo(i);for(let r=0;r<$f.length;r++){const n=$f[r]+i;if(n in O)return Bo[e]=n}return e}const pf="http://www.w3.org/1999/xlink";function py(O,e,t,i,r){if(i&&e.startsWith("xlink:"))t==null?O.removeAttributeNS(pf,e.slice(6,e.length)):O.setAttributeNS(pf,e,t);else{const n=pP(e);t==null||n&&!_d(t)?O.removeAttribute(e):O.setAttribute(e,n?"":t)}}function my(O,e,t,i,r,n,s){if(e==="innerHTML"||e==="textContent"){i&&s(i,r,n),O[e]=t??"";return}const o=O.tagName;if(e==="value"&&o!=="PROGRESS"&&!o.includes("-")){const l=o==="OPTION"?O.getAttribute("value")||"":O.value,c=t??"";(l!==c||!("_value"in O))&&(O.value=c),t==null&&O.removeAttribute(e),O._value=t;return}let a=!1;if(t===""||t==null){const l=typeof O[e];l==="boolean"?t=_d(t):t==null&&l==="string"?(t="",a=!0):l==="number"&&(t=0,a=!0)}try{O[e]=t}catch{}a&&O.removeAttribute(e)}function gy(O,e,t,i){O.addEventListener(e,t,i)}function Sy(O,e,t,i){O.removeEventListener(e,t,i)}const mf=Symbol("_vei");function Py(O,e,t,i,r=null){const n=O[mf]||(O[mf]={}),s=n[e];if(i&&s)s.value=i;else{const[o,a]=Xy(e);if(i){const l=n[e]=by(i,r);gy(O,o,l,a)}else s&&(Sy(O,o,s,a),n[e]=void 0)}}const gf=/(?:Once|Passive|Capture)$/;function Xy(O){let e;if(gf.test(O)){e={};let i;for(;i=O.match(gf);)O=O.slice(0,O.length-i[0].length),e[i[0].toLowerCase()]=!0}return[O[2]===":"?O.slice(3):tr(O.slice(2)),e]}let Fo=0;const yy=Promise.resolve(),xy=()=>Fo||(yy.then(()=>Fo=0),Fo=Date.now());function by(O,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Lt(wy(i,t.value),e,5,[i])};return t.value=O,t.attached=xy(),t}function wy(O,e){if(J(e)){const t=O.stopImmediatePropagation;return O.stopImmediatePropagation=()=>{t.call(O),O._stopped=!0},e.map(i=>r=>!r._stopped&&i&&i(r))}else return e}const Sf=O=>O.charCodeAt(0)===111&&O.charCodeAt(1)===110&&O.charCodeAt(2)>96&&O.charCodeAt(2)<123,Ty=(O,e,t,i,r,n,s,o,a)=>{const l=r==="svg";e==="class"?hy(O,i,l):e==="style"?dy(O,t,i):lo(e)?Pc(e)||Py(O,e,t,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Zy(O,e,i,l))?my(O,e,i,n,s,o,a):(e==="true-value"?O._trueValue=i:e==="false-value"&&(O._falseValue=i),py(O,e,i,l))};function Zy(O,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in O&&Sf(e)&&te(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&O.tagName==="INPUT"||e==="type"&&O.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=O.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Sf(e)&&et(t)?!1:e in O}const vy=Je({patchProp:Ty},ly);let Pf;function Wy(){return Pf||(Pf=VX(vy))}const ky=(...O)=>{const e=Wy().createApp(...O),{mount:t}=e;return e.mount=i=>{const r=qy(i);if(!r)return;const n=e._component;!te(n)&&!n.render&&!n.template&&(n.template=r.innerHTML),r.innerHTML="";const s=t(r,!1,Yy(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},e};function Yy(O){if(O instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&O instanceof MathMLElement)return"mathml"}function qy(O){return et(O)?document.querySelector(O):O}let ue=class W${lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=Li(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),oO.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Li(this,e,t);let i=[];return this.decompose(e,t,i,0),oO.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new qr(this),n=new qr(e);for(let s=t,o=t;;){if(r.next(s),n.next(s),s=0,r.lineBreak!=n.lineBreak||r.done!=n.done||r.value!=n.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new qr(this,e)}iterRange(e,t=this.length){return new k$(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Y$(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?W$.empty:e.length<=32?new ke(e):oO.from(ke.split(e,[]))}};class ke extends ue{constructor(e,t=zy(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.text[n],o=r+s.length;if((t?i:o)>=e)return new Ry(r,o,i,s);r=o+1,i++}}decompose(e,t,i,r){let n=e<=0&&t>=this.length?this:new ke(Xf(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let s=i.pop(),o=ds(n.text,s.text.slice(),0,n.length);if(o.length<=32)i.push(new ke(o,s.length+n.length));else{let a=o.length>>1;i.push(new ke(o.slice(0,a)),new ke(o.slice(a)))}}else i.push(n)}replace(e,t,i){if(!(i instanceof ke))return super.replace(e,t,i);[e,t]=Li(this,e,t);let r=ds(this.text,ds(i.text,Xf(this.text,0,e)),t),n=this.length+i.length-(t-e);return r.length<=32?new ke(r,n):oO.from(ke.split(r,[]),n)}sliceString(e,t=this.length,i=` +`){[e,t]=Li(this,e,t);let r="";for(let n=0,s=0;n<=t&&se&&s&&(r+=i),en&&(r+=o.slice(Math.max(0,e-n),t-n)),n=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let n of e)i.push(n),r+=n.length+1,i.length==32&&(t.push(new ke(i,r)),i=[],r=-1);return r>-1&&t.push(new ke(i,r)),t}}class oO extends ue{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.children[n],o=r+s.length,a=i+s.lines-1;if((t?a:o)>=e)return s.lineInner(e,t,i,r);r=o+1,i=a+1}}decompose(e,t,i,r){for(let n=0,s=0;s<=t&&n=s){let l=r&((s<=e?1:0)|(a>=t?2:0));s>=e&&a<=t&&!l?i.push(o):o.decompose(e-s,t-s,i,l)}s=a+1}}replace(e,t,i){if([e,t]=Li(this,e,t),i.lines=n&&t<=o){let a=s.replace(e-n,t-n,i),l=this.lines-s.lines+a.lines;if(a.lines>5-1&&a.lines>l>>5+1){let c=this.children.slice();return c[r]=a,new oO(c,this.length-(t-e)+i.length)}return super.replace(n,o,a)}n=o+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` +`){[e,t]=Li(this,e,t);let r="";for(let n=0,s=0;ne&&n&&(r+=i),es&&(r+=o.sliceString(e-s,t-s,i)),s=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof oO))return 0;let i=0,[r,n,s,o]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,n+=t){if(r==s||n==o)return i;let a=this.children[r],l=e.children[n];if(a!=l)return i+a.scanIdentical(l,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let Q of e)i+=Q.lines;if(i<32){let Q=[];for(let d of e)d.flatten(Q);return new ke(Q,t)}let r=Math.max(32,i>>5),n=r<<1,s=r>>1,o=[],a=0,l=-1,c=[];function h(Q){let d;if(Q.lines>n&&Q instanceof oO)for(let $ of Q.children)h($);else Q.lines>s&&(a>s||!a)?(f(),o.push(Q)):Q instanceof ke&&a&&(d=c[c.length-1])instanceof ke&&Q.lines+d.lines<=32?(a+=Q.lines,l+=Q.length+1,c[c.length-1]=new ke(d.text.concat(Q.text),d.length+1+Q.length)):(a+Q.lines>r&&f(),a+=Q.lines,l+=Q.length+1,c.push(Q))}function f(){a!=0&&(o.push(c.length==1?c[0]:oO.from(c,l)),l=-1,a=c.length=0)}for(let Q of e)h(Q);return f(),o.length==1?o[0]:new oO(o,t)}}ue.empty=new ke([""],0);function zy(O){let e=-1;for(let t of O)e+=t.length+1;return e}function ds(O,e,t=0,i=1e9){for(let r=0,n=0,s=!0;n=t&&(a>i&&(o=o.slice(0,i-r)),r0?1:(e instanceof ke?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],n=this.offsets[i],s=n>>1,o=r instanceof ke?r.text.length:r.children.length;if(s==(t>0?o:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((n&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(r instanceof ke){let a=r.text[s+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[s+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof ke?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class k${constructor(e,t,i){this.value="",this.done=!1,this.cursor=new qr(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Y${constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(ue.prototype[Symbol.iterator]=function(){return this.iter()},qr.prototype[Symbol.iterator]=k$.prototype[Symbol.iterator]=Y$.prototype[Symbol.iterator]=function(){return this});let Ry=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}};function Li(O,e,t){return e=Math.max(0,Math.min(O.length,e)),[e,Math.max(e,Math.min(O.length,t))]}let Ui="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(O=>O?parseInt(O,36):1);for(let O=1;OO)return Ui[e-1]<=O;return!1}function yf(O){return O>=127462&&O<=127487}const xf=8205;function Ke(O,e,t=!0,i=!0){return(t?q$:Uy)(O,e,i)}function q$(O,e,t){if(e==O.length)return e;e&&z$(O.charCodeAt(e))&&R$(O.charCodeAt(e-1))&&e--;let i=Ne(O,e);for(e+=kt(i);e=0&&yf(Ne(O,s));)n++,s-=2;if(n%2==0)break;e+=2}else break}return e}function Uy(O,e,t){for(;e>0;){let i=q$(O,e-2,t);if(i=56320&&O<57344}function R$(O){return O>=55296&&O<56320}function Ne(O,e){let t=O.charCodeAt(e);if(!R$(t)||e+1==O.length)return t;let i=O.charCodeAt(e+1);return z$(i)?(t-55296<<10)+(i-56320)+65536:t}function Gc(O){return O<=65535?String.fromCharCode(O):(O-=65536,String.fromCharCode((O>>10)+55296,(O&1023)+56320))}function kt(O){return O<65536?1:2}const Ol=/\r\n?|\n/;var Fe=function(O){return O[O.Simple=0]="Simple",O[O.TrackDel=1]="TrackDel",O[O.TrackBefore=2]="TrackBefore",O[O.TrackAfter=3]="TrackAfter",O}(Fe||(Fe={}));class fO{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return n+(e-r);n+=o}else{if(i!=Fe.Simple&&l>=e&&(i==Fe.TrackDel&&re||i==Fe.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!o)return e==r||t<0?n:n+a;n+=a}r=l}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return n}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&o>=e)return rt?"cover":!0;r=o}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new fO(e)}static create(e){return new fO(e)}}class _e extends fO{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return il(this,(t,i,r,n,s)=>e=e.replace(r,r+(i-t),s),!1),e}mapDesc(e,t=!1){return rl(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,n=0;r=0){t[r]=o,t[r+1]=s;let a=r>>1;for(;i.length0&&jO(i,t,n.text),n.forward(c),o+=c}let l=e[s++];for(;o>1].toJSON()))}return e}static of(e,t,i){let r=[],n=[],s=0,o=null;function a(c=!1){if(!c&&!r.length)return;sf||h<0||f>t)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${t})`);let d=Q?typeof Q=="string"?ue.of(Q.split(i||Ol)):Q:ue.empty,$=d.length;if(h==f&&$==0)return;hs&&Ot(r,h-s,-1),Ot(r,f-h,$),jO(n,r,d),s=f}}return l(e),a(!o),o}static empty(e){return new _e(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;ro&&typeof s!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(n.length==1)t.push(n[0],0);else{for(;i.length=0&&t<=0&&t==O[r+1]?O[r]+=e:e==0&&O[r]==0?O[r+1]+=t:i?(O[r]+=e,O[r+1]+=t):O.push(e,t)}function jO(O,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||s==O.sections.length||O.sections[s+1]<0);)o=O.sections[s++],a=O.sections[s++];e(r,l,n,c,h),r=l,n=c}}}function rl(O,e,t,i=!1){let r=[],n=i?[]:null,s=new Lr(O),o=new Lr(e);for(let a=-1;;)if(s.ins==-1&&o.ins==-1){let l=Math.min(s.len,o.len);Ot(r,l,-1),s.forward(l),o.forward(l)}else if(o.ins>=0&&(s.ins<0||a==s.i||s.off==0&&(o.len=0&&a=0){let l=0,c=s.len;for(;c;)if(o.ins==-1){let h=Math.min(c,o.len);l+=h,c-=h,o.forward(h)}else if(o.ins==0&&o.lena||s.ins>=0&&s.len>a)&&(o||i.length>l),n.forward2(a),s.forward(a)}}}}class Lr{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?ue.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?ue.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class fi{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new fi(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(e.anchor,e.head)}static create(e,t,i){return new fi(e,t,i)}}class X{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:X.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(e.ranges.map(t=>fi.fromJSON(t)),e.main)}static single(e,t=e){return new X([X.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;re?8:0)|n)}static normalized(e,t=0){let i=e[t];e.sort((r,n)=>r.from-n.from),t=e.indexOf(i);for(let r=1;rn.head?X.range(a,o):X.range(o,a))}}return new X(e,t)}}function U$(O,e){for(let t of O.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Cc=0;class G{constructor(e,t,i,r,n){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=Cc++,this.default=e([]),this.extensions=typeof n=="function"?n(this):n}get reader(){return this}static define(e={}){return new G(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Ec),!!e.static,e.enables)}of(e){return new $s([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $s(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new $s(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function Ec(O,e){return O==e||O.length==e.length&&O.every((t,i)=>t===e[i])}class $s{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=Cc++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,n=this.id,s=e[n]>>1,o=this.type==2,a=!1,l=!1,c=[];for(let h of this.dependencies)h=="doc"?a=!0:h=="selection"?l=!0:((t=e[h.id])!==null&&t!==void 0?t:1)&1||c.push(e[h.id]);return{create(h){return h.values[s]=i(h),1},update(h,f){if(a&&f.docChanged||l&&(f.docChanged||f.selection)||nl(h,c)){let Q=i(h);if(o?!bf(Q,h.values[s],r):!r(Q,h.values[s]))return h.values[s]=Q,1}return 0},reconfigure:(h,f)=>{let Q,d=f.config.address[n];if(d!=null){let $=Rs(f,d);if(this.dependencies.every(p=>p instanceof G?f.facet(p)===h.facet(p):p instanceof Ie?f.field(p,!1)==h.field(p,!1):!0)||(o?bf(Q=i(h),$,r):r(Q=i(h),$)))return h.values[s]=$,0}else Q=i(h);return h.values[s]=Q,1}}}}function bf(O,e,t){if(O.length!=e.length)return!1;for(let i=0;iO[a.id]),r=t.map(a=>a.type),n=i.filter(a=>!(a&1)),s=O[e.id]>>1;function o(a){let l=[];for(let c=0;ci===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(wf).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let n=i.values[t],s=this.updateF(n,r);return this.compareF(n,s)?0:(i.values[t]=s,1)},reconfigure:(i,r)=>r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,wf.of({field:this,create:e})]}get extension(){return this}}const li={lowest:4,low:3,default:2,high:1,highest:0};function lr(O){return e=>new _$(e,O)}const TO={highest:lr(li.highest),high:lr(li.high),default:lr(li.default),low:lr(li.low),lowest:lr(li.lowest)};class _${constructor(e,t){this.inner=e,this.prec=t}}class pn{of(e){return new sl(this,e)}reconfigure(e){return pn.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class sl{constructor(e,t){this.compartment=e,this.inner=t}}class zs{constructor(e,t,i,r,n,s){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=n,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],n=Object.create(null),s=new Map;for(let f of jy(e,t,s))f instanceof Ie?r.push(f):(n[f.facet.id]||(n[f.facet.id]=[])).push(f);let o=Object.create(null),a=[],l=[];for(let f of r)o[f.id]=l.length<<1,l.push(Q=>f.slot(Q));let c=i==null?void 0:i.config.facets;for(let f in n){let Q=n[f],d=Q[0].facet,$=c&&c[f]||[];if(Q.every(p=>p.type==0))if(o[d.id]=a.length<<1|1,Ec($,Q))a.push(i.facet(d));else{let p=d.combine(Q.map(g=>g.value));a.push(i&&d.compare(p,i.facet(d))?i.facet(d):p)}else{for(let p of Q)p.type==0?(o[p.id]=a.length<<1|1,a.push(p.value)):(o[p.id]=l.length<<1,l.push(g=>p.dynamicSlot(g)));o[d.id]=l.length<<1,l.push(p=>_y(p,d,Q))}}let h=l.map(f=>f(o));return new zs(e,s,h,o,a,n)}}function jy(O,e,t){let i=[[],[],[],[],[]],r=new Map;function n(s,o){let a=r.get(s);if(a!=null){if(a<=o)return;let l=i[a].indexOf(s);l>-1&&i[a].splice(l,1),s instanceof sl&&t.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let l of s)n(l,o);else if(s instanceof sl){if(t.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let l=e.get(s.compartment)||s.inner;t.set(s.compartment,l),n(l,o)}else if(s instanceof _$)n(s.inner,s.prec);else if(s instanceof Ie)i[o].push(s),s.provides&&n(s.provides,o);else if(s instanceof $s)i[o].push(s),s.facet.extensions&&n(s.facet.extensions,li.default);else{let l=s.extension;if(!l)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);n(l,o)}}return n(O,li.default),i.reduce((s,o)=>s.concat(o))}function zr(O,e){if(e&1)return 2;let t=e>>1,i=O.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;O.status[t]=4;let r=O.computeSlot(O,O.config.dynamicSlots[t]);return O.status[t]=2|r}function Rs(O,e){return e&1?O.config.staticValues[e>>1]:O.values[e>>1]}const j$=G.define(),ol=G.define({combine:O=>O.some(e=>e),static:!0}),G$=G.define({combine:O=>O.length?O[0]:void 0,static:!0}),C$=G.define(),E$=G.define(),A$=G.define(),I$=G.define({combine:O=>O.length?O[0]:!1});class ZO{constructor(e,t){this.type=e,this.value=t}static define(){return new Gy}}class Gy{of(e){return new ZO(this,e)}}class Cy{constructor(e){this.map=e}of(e){return new H(this,e)}}class H{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new H(this.type,t)}is(e){return this.type==e}static define(e={}){return new Cy(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let n=r.map(t);n&&i.push(n)}return i}}H.reconfigure=H.define();H.appendConfig=H.define();class Ve{constructor(e,t,i,r,n,s){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=n,this.scrollIntoView=s,this._doc=null,this._state=null,i&&U$(i,t.newLength),n.some(o=>o.type==Ve.time)||(this.annotations=n.concat(Ve.time.of(Date.now())))}static create(e,t,i,r,n,s){return new Ve(e,t,i,r,n,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(Ve.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}Ve.time=ZO.define();Ve.userEvent=ZO.define();Ve.addToHistory=ZO.define();Ve.remote=ZO.define();function Ey(O,e){let t=[];for(let i=0,r=0;;){let n,s;if(i=O[i]))n=O[i++],s=O[i++];else if(r=0;r--){let n=i[r](O);n instanceof Ve?O=n:Array.isArray(n)&&n.length==1&&n[0]instanceof Ve?O=n[0]:O=L$(e,_i(n),!1)}return O}function Iy(O){let e=O.startState,t=e.facet(A$),i=O;for(let r=t.length-1;r>=0;r--){let n=t[r](O);n&&Object.keys(n).length&&(i=D$(i,al(e,n,O.changes.newLength),!0))}return i==O?O:Ve.create(e,O.changes,O.selection,i.effects,i.annotations,i.scrollIntoView)}const Dy=[];function _i(O){return O==null?Dy:Array.isArray(O)?O:[O]}var Ze=function(O){return O[O.Word=0]="Word",O[O.Space=1]="Space",O[O.Other=2]="Other",O}(Ze||(Ze={}));const Ly=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let ll;try{ll=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function My(O){if(ll)return ll.test(O);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||Ly.test(t)))return!0}return!1}function Ny(O){return e=>{if(!/\S/.test(e))return Ze.Space;if(My(e))return Ze.Word;for(let t=0;t-1)return Ze.Word;return Ze.Other}}class re{constructor(e,t,i,r,n,s){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=n,s&&(s._state=this);for(let o=0;or.set(l,a)),t=null),r.set(o.value.compartment,o.value.extension)):o.is(H.reconfigure)?(t=null,i=o.value):o.is(H.appendConfig)&&(t=null,i=_i(i).concat(o.value));let n;t?n=e.startState.values.slice():(t=zs.resolve(i,r,this),n=new re(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,l)=>l.reconfigure(a,this),null).values);let s=e.startState.facet(ol)?e.newSelection:e.newSelection.asSingle();new re(t,e.newDoc,s,n,(o,a)=>a.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),n=[i.range],s=_i(i.effects);for(let o=1;os.spec.fromJSON(o,a)))}}return re.create({doc:e.doc,selection:X.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=zs.resolve(e.extensions||[],new Map),i=e.doc instanceof ue?e.doc:ue.of((e.doc||"").split(t.staticFacet(re.lineSeparator)||Ol)),r=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return U$(r,i.length),t.staticFacet(ol)||(r=r.asSingle()),new re(t,i,r,t.dynamicSlots.map(()=>null),(n,s)=>s.create(n),null)}get tabSize(){return this.facet(re.tabSize)}get lineBreak(){return this.facet(re.lineSeparator)||` +`}get readOnly(){return this.facet(I$)}phrase(e,...t){for(let i of this.facet(re.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,r)=>{if(r=="$")return"$";let n=+(r||1);return!n||n>t.length?i:t[n-1]})),e}languageDataAt(e,t,i=-1){let r=[];for(let n of this.facet(j$))for(let s of n(this,t,i))Object.prototype.hasOwnProperty.call(s,e)&&r.push(s[e]);return r}charCategorizer(e){return Ny(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),n=this.charCategorizer(e),s=e-i,o=e-i;for(;s>0;){let a=Ke(t,s,!1);if(n(t.slice(a,s))!=Ze.Word)break;s=a}for(;oO.length?O[0]:4});re.lineSeparator=G$;re.readOnly=I$;re.phrases=G.define({compare(O,e){let t=Object.keys(O),i=Object.keys(e);return t.length==i.length&&t.every(r=>O[r]==e[r])}});re.languageData=j$;re.changeFilter=C$;re.transactionFilter=E$;re.transactionExtender=A$;pn.reconfigure=H.define();function QO(O,e,t={}){let i={};for(let r of O)for(let n of Object.keys(r)){let s=r[n],o=i[n];if(o===void 0)i[n]=s;else if(!(o===s||s===void 0))if(Object.hasOwnProperty.call(t,n))i[n]=t[n](o,s);else throw new Error("Config merge conflict for field "+n)}for(let r in e)i[r]===void 0&&(i[r]=e[r]);return i}class pi{eq(e){return this==e}range(e,t=e){return cl.create(e,t,this)}}pi.prototype.startSide=pi.prototype.endSide=0;pi.prototype.point=!1;pi.prototype.mapMode=Fe.TrackDel;let cl=class M${constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new M$(e,t,i)}};function hl(O,e){return O.from-e.from||O.value.startSide-e.value.startSide}class Ac{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let n=i?this.to:this.from;for(let s=r,o=n.length;;){if(s==o)return s;let a=s+o>>1,l=n[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==s)return l>=0?s:o;l>=0?o=a:s=a+1}}between(e,t,i,r){for(let n=this.findIndex(t,-1e9,!0),s=this.findIndex(i,1e9,!1,n);nQ||f==Q&&l.startSide>0&&l.endSide<=0)continue;(Q-f||l.endSide-l.startSide)<0||(s<0&&(s=f),l.point&&(o=Math.max(o,Q-f)),i.push(l),r.push(f-s),n.push(Q-s))}return{mapped:i.length?new Ac(r,n,i,o):null,pos:s}}}class le{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new le(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:n=this.length}=e,s=e.filter;if(t.length==0&&!s)return this;if(i&&(t=t.slice().sort(hl)),this.isEmpty)return t.length?le.of(t):this;let o=new N$(this,null,-1).goto(0),a=0,l=[],c=new BO;for(;o.value||a=0){let h=t[a++];c.addInner(h.from,h.to,h.value)||l.push(h)}else o.rangeIndex==1&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||no.to||n=n&&e<=n+s.length&&s.between(n,e-n,t-n,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return Mr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Mr.from(e).goto(t)}static compare(e,t,i,r,n=-1){let s=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),o=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),a=Tf(s,o,i),l=new cr(s,a,n),c=new cr(o,a,n);i.iterGaps((h,f,Q)=>Zf(l,h,c,f,Q,r)),i.empty&&i.length==0&&Zf(l,0,c,0,0,r)}static eq(e,t,i=0,r){r==null&&(r=1e9-1);let n=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),s=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(n.length!=s.length)return!1;if(!n.length)return!0;let o=Tf(n,s),a=new cr(n,o,0).goto(i),l=new cr(s,o,0).goto(i);for(;;){if(a.to!=l.to||!fl(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>r)return!0;a.next(),l.next()}}static spans(e,t,i,r,n=-1){let s=new cr(e,null,n).goto(t),o=t,a=s.openStart;for(;;){let l=Math.min(s.to,i);if(s.point){let c=s.activeForPoint(s.to),h=s.pointFromo&&(r.span(o,l,s.active,a),a=s.openEnd(l));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(e,t=!1){let i=new BO;for(let r of e instanceof cl?[e]:t?By(e):e)i.add(r.from,r.to,r.value);return i.finish()}static join(e){if(!e.length)return le.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let r=e[i];r!=le.empty;r=r.nextLayer)t=new le(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}}le.empty=new le([],[],null,-1);function By(O){if(O.length>1)for(let e=O[0],t=1;t0)return O.slice().sort(hl);e=i}return O}le.empty.nextLayer=le.empty;class BO{finishChunk(e){this.chunks.push(new Ac(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new BO)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(le.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=le.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Tf(O,e,t){let i=new Map;for(let n of O)for(let s=0;s=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new N$(s,t,i,n));return r.length==1?r[0]:new Mr(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ho(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ho(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ho(this.heap,0)}}}function Ho(O,e){for(let t=O[e];;){let i=(e<<1)+1;if(i>=O.length)break;let r=O[i];if(i+1=0&&(r=O[i+1],i++),t.compare(r)<0)break;O[i]=t,O[e]=r,e=i}}class cr{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Mr.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Rn(this.active,e),Rn(this.activeTo,e),Rn(this.activeRank,e),this.minActive=vf(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:n}=this.cursor;for(;t0;)t++;Vn(this.active,t,i),Vn(this.activeTo,t,r),Vn(this.activeRank,t,n),e&&Vn(e,t,this.cursor.from),this.minActive=vf(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&Rn(i,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let n=this.cursor.value;if(!n.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[r]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Zf(O,e,t,i,r,n){O.goto(e),t.goto(i);let s=i+r,o=i,a=i-e;for(;;){let l=O.to+a-t.to||O.endSide-t.endSide,c=l<0?O.to+a:t.to,h=Math.min(c,s);if(O.point||t.point?O.point&&t.point&&(O.point==t.point||O.point.eq(t.point))&&fl(O.activeForPoint(O.to),t.activeForPoint(t.to))||n.comparePoint(o,h,O.point,t.point):h>o&&!fl(O.active,t.active)&&n.compareRange(o,h,O.active,t.active),c>s)break;o=c,l<=0&&O.next(),l>=0&&t.next()}}function fl(O,e){if(O.length!=e.length)return!1;for(let t=0;t=e;i--)O[i+1]=O[i];O[e]=t}function vf(O,e){let t=-1,i=1e9;for(let r=0;r=e)return r;if(r==O.length)break;n+=O.charCodeAt(r)==9?t-n%t:1,r=Ke(O,r)}return i===!0?-1:O.length}const Ql="ͼ",Wf=typeof Symbol>"u"?"__"+Ql:Symbol.for(Ql),dl=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),kf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class FO{constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function n(s,o,a,l){let c=[],h=/^@(\w+)\b/.exec(s[0]),f=h&&h[1]=="keyframes";if(h&&o==null)return a.push(s[0]+";");for(let Q in o){let d=o[Q];if(/&/.test(Q))n(Q.split(/,\s*/).map($=>s.map(p=>$.replace(/&/,p))).reduce(($,p)=>$.concat(p)),d,a);else if(d&&typeof d=="object"){if(!h)throw new RangeError("The value of a property ("+Q+") should be a primitive value.");n(r(Q),d,c,f)}else d!=null&&c.push(Q.replace(/_.*/,"").replace(/[A-Z]/g,$=>"-"+$.toLowerCase())+": "+d+";")}(c.length||f)&&a.push((i&&!h&&!l?s.map(i):s).join(", ")+" {"+c.join(" ")+"}")}for(let s in e)n(r(s),e[s],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=kf[Wf]||1;return kf[Wf]=e+1,Ql+e.toString(36)}static mount(e,t,i){let r=e[dl],n=i&&i.nonce;r?n&&r.setNonce(n):r=new Fy(e,n),r.mount(Array.isArray(t)?t:[t],e)}}let Yf=new Map;class Fy{constructor(e,t){let i=e.ownerDocument||e,r=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let n=Yf.get(i);if(n)return e[dl]=n;this.sheet=new r.CSSStyleSheet,Yf.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[dl]=this}mount(e,t){let i=this.sheet,r=0,n=0;for(let s=0;s-1&&(this.modules.splice(a,1),n--,a=-1),a==-1){if(this.modules.splice(n++,0,o),i)for(let l=0;l",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Hy=typeof navigator<"u"&&/Mac/.test(navigator.platform),Ky=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Be=0;Be<10;Be++)HO[48+Be]=HO[96+Be]=String(Be);for(var Be=1;Be<=24;Be++)HO[Be+111]="F"+Be;for(var Be=65;Be<=90;Be++)HO[Be]=String.fromCharCode(Be+32),Nr[Be]=String.fromCharCode(Be);for(var Ko in HO)Nr.hasOwnProperty(Ko)||(Nr[Ko]=HO[Ko]);function Jy(O){var e=Hy&&O.metaKey&&O.shiftKey&&!O.ctrlKey&&!O.altKey||Ky&&O.shiftKey&&O.key&&O.key.length==1||O.key=="Unidentified",t=!e&&O.key||(O.shiftKey?Nr:HO)[O.keyCode]||O.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Vs(O){let e;return O.nodeType==11?e=O.getSelection?O:O.ownerDocument:e=O,e.getSelection()}function $l(O,e){return e?O==e||O.contains(e.nodeType!=1?e.parentNode:e):!1}function e1(O){let e=O.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function ps(O,e){if(!e.anchorNode)return!1;try{return $l(O,e.anchorNode)}catch{return!1}}function Mi(O){return O.nodeType==3?mi(O,0,O.nodeValue.length).getClientRects():O.nodeType==1?O.getClientRects():[]}function Rr(O,e,t,i){return t?qf(O,e,t,i,-1)||qf(O,e,t,i,1):!1}function Br(O){for(var e=0;;e++)if(O=O.previousSibling,!O)return e}function qf(O,e,t,i,r){for(;;){if(O==t&&e==i)return!0;if(e==(r<0?0:XO(O))){if(O.nodeName=="DIV")return!1;let n=O.parentNode;if(!n||n.nodeType!=1)return!1;e=Br(O)+(r<0?0:1),O=n}else if(O.nodeType==1){if(O=O.childNodes[e+(r<0?-1:0)],O.nodeType==1&&O.contentEditable=="false")return!1;e=r<0?XO(O):0}else return!1}}function XO(O){return O.nodeType==3?O.nodeValue.length:O.childNodes.length}function Xo(O,e){let t=e?O.left:O.right;return{left:t,right:t,top:O.top,bottom:O.bottom}}function t1(O){return{left:0,right:O.innerWidth,top:0,bottom:O.innerHeight}}function B$(O,e){let t=e.width/O.offsetWidth,i=e.height/O.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-O.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-O.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}function O1(O,e,t,i,r,n,s,o){let a=O.ownerDocument,l=a.defaultView||window;for(let c=O,h=!1;c&&!h;)if(c.nodeType==1){let f,Q=c==a.body,d=1,$=1;if(Q)f=t1(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(h=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let P=c.getBoundingClientRect();({scaleX:d,scaleY:$}=B$(c,P)),f={left:P.left,right:P.left+c.clientWidth*d,top:P.top,bottom:P.top+c.clientHeight*$}}let p=0,g=0;if(r=="nearest")e.top0&&e.bottom>f.bottom+g&&(g=e.bottom-f.bottom+g+s)):e.bottom>f.bottom&&(g=e.bottom-f.bottom+s,t<0&&e.top-g0&&e.right>f.right+p&&(p=e.right-f.right+p+n)):e.right>f.right&&(p=e.right-f.right+n,t<0&&e.leftt.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}class r1{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?XO(t):0),i,Math.min(e.focusOffset,i?XO(i):0))}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}}let Ti=null;function F$(O){if(O.setActive)return O.setActive();if(Ti)return O.focus(Ti);let e=[];for(let t=O;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(O.focus(Ti==null?{get preventScroll(){return Ti={preventScroll:!0},!0}}:void 0),!Ti){Ti=!1;for(let t=0;tMath.max(1,O.scrollHeight-O.clientHeight-4)}class nt{constructor(e,t,i=!0){this.node=e,this.offset=t,this.precise=i}static before(e,t){return new nt(e.parentNode,Br(e),t)}static after(e,t){return new nt(e.parentNode,Br(e)+1,t)}}const Ic=[];class ye{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let i of this.children){if(i==e)return t;t+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(this.flags&2){let i=this.dom,r=null,n;for(let s of this.children){if(s.flags&7){if(!s.dom&&(n=r?r.nextSibling:i.firstChild)){let o=ye.get(n);(!o||!o.parent&&o.canReuseDOM(s))&&s.reuseDOM(n)}s.sync(e,t),s.flags&=-8}if(n=r?r.nextSibling:i.firstChild,t&&!t.written&&t.node==i&&n!=s.dom&&(t.written=!0),s.dom.parentNode==i)for(;n&&n!=s.dom;)n=Rf(n);else i.insertBefore(s.dom,n);r=s.dom}for(n=r?r.nextSibling:i.firstChild,n&&t&&t.node==i&&(t.written=!0);n;)n=Rf(n)}else if(this.flags&1)for(let i of this.children)i.flags&7&&(i.sync(e,t),i.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let i;if(e==this.dom)i=this.dom.childNodes[t];else{let r=XO(e)==0?0:t==0?-1:1;for(;;){let n=e.parentNode;if(n==this.dom)break;r==0&&n.firstChild!=n.lastChild&&(e==n.firstChild?r=-1:r=1),e=n}r<0?i=e:i=e.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!ye.get(i);)i=i.nextSibling;if(!i)return this.length;for(let r=0,n=0;;r++){let s=this.children[r];if(s.dom==i)return n;n+=s.length+s.breakAfter}}domBoundsAround(e,t,i=0){let r=-1,n=-1,s=-1,o=-1;for(let a=0,l=i,c=i;at)return h.domBoundsAround(e,t,l);if(f>=e&&r==-1&&(r=a,n=l),l>t&&h.dom.parentNode==this.dom){s=a,o=c;break}c=f,l=f+h.breakAfter}return{from:n,to:o<0?i+this.length:o,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=Ic){this.markDirty();for(let r=e;rthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ep(O,e,t,i,r,n,s,o,a){let{children:l}=O,c=l.length?l[e]:null,h=n.length?n[n.length-1]:null,f=h?h.breakAfter:s;if(!(e==i&&c&&!s&&!f&&n.length<2&&c.merge(t,r,n.length?h:null,t==0,o,a))){if(i0&&(!s&&n.length&&c.merge(t,c.length,n[0],!1,o,0)?c.breakAfter=n.shift().breakAfter:(t2);var C={mac:_f||/Mac/.test(bt.platform),windows:/Win/.test(bt.platform),linux:/Linux|X11/.test(bt.platform),ie:yo,ie_version:Op?pl.documentMode||6:gl?+gl[1]:ml?+ml[1]:0,gecko:Vf,gecko_version:Vf?+(/Firefox\/(\d+)/.exec(bt.userAgent)||[0,0])[1]:0,chrome:!!Jo,chrome_version:Jo?+Jo[1]:0,ios:_f,android:/Android\b/.test(bt.userAgent),webkit:Uf,safari:ip,webkit_version:Uf?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:pl.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const o1=256;class yO extends ye{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return this.flags&8||i&&(!(i instanceof yO)||this.length-(t-e)+i.length>o1||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new yO(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new nt(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return a1(this.dom,e,t)}}class xO extends ye{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let r of t)r.setParent(this)}setAttrs(e){if(H$(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,r,n,s){return i&&(!(i instanceof xO&&i.mark.eq(this.mark))||e&&n<=0||te&&t.push(i=e&&(r=n),i=a,n++}let s=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new xO(this.mark,t,s)}domAtPos(e){return rp(this,e)}coordsAt(e,t){return sp(this,e,t)}}function a1(O,e,t){let i=O.nodeValue.length;e>i&&(e=i);let r=e,n=e,s=0;e==0&&t<0||e==i&&t>=0?C.chrome||C.gecko||(e?(r--,s=1):n=0)?0:o.length-1];return C.safari&&!s&&a.width==0&&(a=Array.prototype.find.call(o,l=>l.width)||a),s?Xo(a,s<0):a||null}class GO extends ye{static create(e,t,i){return new GO(e,t,i)}constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}split(e){let t=GO.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,i,r,n,s){return i&&(!(i instanceof GO)||!this.widget.compare(i.widget)||e>0&&n<=0||t0)?nt.before(this.dom):nt.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;let r=this.dom.getClientRects(),n=null;if(!r.length)return null;let s=this.side?this.side<0:e>0;for(let o=s?r.length-1:0;n=r[o],!(e>0?o==0:o==r.length-1||n.top0?nt.before(this.dom):nt.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ue.empty}get isHidden(){return!0}}yO.prototype.children=GO.prototype.children=Ni.prototype.children=Ic;function rp(O,e){let t=O.dom,{children:i}=O,r=0;for(let n=0;rn&&e0;n--){let s=i[n-1];if(s.dom.parentNode==t)return s.domAtPos(s.length)}for(let n=r;n0&&e instanceof xO&&r.length&&(i=r[r.length-1])instanceof xO&&i.mark.eq(e.mark)?np(i,e.children[0],t-1):(r.push(e),e.setParent(O)),O.length+=e.length}function sp(O,e,t){let i=null,r=-1,n=null,s=-1;function o(l,c){for(let h=0,f=0;h=c&&(Q.children.length?o(Q,c-f):(!n||n.isHidden&&t>0)&&(d>c||f==d&&Q.getSide()>0)?(n=Q,s=c-f):(f-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let n of i)if(n!=t&&(r.indexOf(n)==-1||O[n]!==e[n]))return!1;return!0}function Pl(O,e,t){let i=!1;if(e)for(let r in e)t&&r in t||(i=!0,r=="style"?O.style.cssText="":O.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(i=!0,r=="style"?O.style.cssText=t[r]:O.setAttribute(r,t[r]));return i}function c1(O){let e=Object.create(null);for(let t=0;t0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Dc(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){np(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Sl(t,this.attrs||{})),i&&(this.attrs=Sl({class:i},this.attrs||{}))}domAtPos(e){return rp(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var i;this.dom?this.flags&4&&(H$(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Pl(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&ye.get(r)instanceof xO;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((i=ye.get(r))===null||i===void 0?void 0:i.isEditable)==!1&&(!C.ios||!this.children.some(n=>n instanceof yO))){let n=document.createElement("BR");n.cmIgnore=!0,this.dom.appendChild(n)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let i of this.children){if(!(i instanceof yO)||/[^ -~]/.test(i.text))return null;let r=Mi(i.dom);if(r.length!=1)return null;e+=r[0].width,t=r[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let i=sp(this,e,t);if(!this.children.length&&i&&this.parent){let{heightOracle:r}=this.parent.view.viewState,n=i.bottom-i.top;if(Math.abs(n-r.lineHeight)<2&&r.textHeight=t){if(n instanceof Ue)return n;if(s>t)break}r=s+n.breakAfter}return null}}class IO extends ye{constructor(e,t,i){super(),this.widget=e,this.length=t,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,r,n,s){return i&&(!(i instanceof IO)||!this.widget.compare(i.widget)||e>0&&n<=0||t0}}class dO{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var ht=function(O){return O[O.Text=0]="Text",O[O.WidgetBefore=1]="WidgetBefore",O[O.WidgetAfter=2]="WidgetAfter",O[O.WidgetRange=3]="WidgetRange",O}(ht||(ht={}));class E extends pi{constructor(e,t,i,r){super(),this.startSide=e,this.endSide=t,this.widget=i,this.spec=r}get heightRelevant(){return!1}static mark(e){return new mn(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),i=!!e.block;return t+=i&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new KO(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,r;if(e.isBlockGap)i=-5e8,r=4e8;else{let{start:n,end:s}=op(e,t);i=(n?t?-3e8:-1:5e8)-1,r=(s?t?2e8:1:-6e8)+1}return new KO(e,i,r,t,e.widget||null,!0)}static line(e){return new gn(e)}static set(e,t=!1){return le.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}E.none=le.empty;class mn extends E{constructor(e){let{start:t,end:i}=op(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,i;return this==e||e instanceof mn&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&Dc(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}mn.prototype.point=!1;class gn extends E{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof gn&&this.spec.class==e.spec.class&&Dc(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}gn.prototype.mapMode=Fe.TrackBefore;gn.prototype.point=!0;class KO extends E{constructor(e,t,i,r,n,s){super(t,i,n,e),this.block=r,this.isReplace=s,this.mapMode=r?t<=0?Fe.TrackBefore:Fe.TrackAfter:Fe.TrackDel}get type(){return this.startSide!=this.endSide?ht.WidgetRange:this.startSide<=0?ht.WidgetBefore:ht.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof KO&&h1(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}KO.prototype.point=!0;function op(O,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=O;return t==null&&(t=O.inclusive),i==null&&(i=O.inclusive),{start:t??e,end:i??e}}function h1(O,e){return O==e||!!(O&&e&&O.compare(e))}function Xl(O,e,t,i=0){let r=t.length-1;r>=0&&t[r]+i>=O?t[r]=Math.max(t[r],e):t.push(O,e)}class Vr{constructor(e,t,i,r){this.doc=e,this.pos=t,this.end=i,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof IO&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new Ue),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Un(new Ni(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof IO)&&this.getLine()}buildText(e,t,i){for(;e>0;){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:o}=this.cursor.next(this.skip);if(this.skip=0,o)throw new Error("Ran out of text content when drawing inline views");if(s){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=n,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Un(new yO(this.text.slice(this.textOff,this.textOff+r)),t),i),this.atCursorPos=!0,this.textOff+=r,e-=r,i=0}}span(e,t,i,r){this.buildText(t-e,i,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,i,r,n,s){if(this.disallowBlockEffectsFor[s]&&i instanceof KO){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=t-e;if(i instanceof KO)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new IO(i.widget||gi.block,o,i));else{let a=GO.create(i.widget||gi.inline,o,o?0:i.startSide),l=this.atCursorPos&&!a.isEditable&&n<=r.length&&(e0),c=!a.isEditable&&(er.length||i.startSide<=0),h=this.getLine();this.pendingBuffer==2&&!l&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),l&&(h.append(Un(new Ni(1),r),n),n=r.length+Math.max(0,n-r.length)),h.append(Un(a,r),n),this.atCursorPos=c,this.pendingBuffer=c?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=n)}static build(e,t,i,r,n){let s=new Vr(e,t,i,n);return s.openEnd=le.spans(r,t,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function Un(O,e){for(let t of e)O=new xO(t,[O],O.length);return O}class gi extends dO{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}gi.inline=new gi("span");gi.block=new gi("div");var xe=function(O){return O[O.LTR=0]="LTR",O[O.RTL=1]="RTL",O}(xe||(xe={}));const Si=xe.LTR,Lc=xe.RTL;function ap(O){let e=[];for(let t=0;t=t){if(o.level==i)return s;(n<0||(r!=0?r<0?o.fromt:e[n].level>o.level))&&(n=s)}}if(n<0)throw new RangeError("Index out of range");return n}}function cp(O,e){if(O.length!=e.length)return!1;for(let t=0;t=0;$-=3)if(eO[$+1]==-Q){let p=eO[$+2],g=p&2?r:p&4?p&1?n:r:0;g&&(me[h]=me[eO[$]]=g),o=$;break}}else{if(eO.length==189)break;eO[o++]=h,eO[o++]=f,eO[o++]=a}else if((d=me[h])==2||d==1){let $=d==r;a=$?0:1;for(let p=o-3;p>=0;p-=3){let g=eO[p+2];if(g&2)break;if($)eO[p+2]|=2;else{if(g&4)break;eO[p+2]|=4}}}}}function p1(O,e,t,i){for(let r=0,n=i;r<=t.length;r++){let s=r?t[r-1].to:O,o=ra;)d==p&&(d=t[--$].from,p=$?t[$-1].to:O),me[--d]=Q;a=c}else n=l,a++}}}function xl(O,e,t,i,r,n,s){let o=i%2?2:1;if(i%2==r%2)for(let a=e,l=0;aa&&s.push(new CO(a,$.from,Q));let p=$.direction==Si!=!(Q%2);bl(O,p?i+1:i,r,$.inner,$.from,$.to,s),a=$.to}d=$.to}else{if(d==t||(c?me[d]!=o:me[d]==o))break;d++}f?xl(O,a,d,i+1,r,f,s):ae;){let c=!0,h=!1;if(!l||a>n[l-1].to){let $=me[a-1];$!=o&&(c=!1,h=$==16)}let f=!c&&o==1?[]:null,Q=c?i:i+1,d=a;e:for(;;)if(l&&d==n[l-1].to){if(h)break e;let $=n[--l];if(!c)for(let p=$.from,g=l;;){if(p==e)break e;if(g&&n[g-1].to==p)p=n[--g].from;else{if(me[p-1]==o)break e;break}}if(f)f.push($);else{$.tome.length;)me[me.length]=256;let i=[],r=e==Si?0:1;return bl(O,r,r,t,0,O.length,i),i}function hp(O){return[new CO(0,O,0)]}let fp="";function g1(O,e,t,i,r){var n;let s=i.head-O.from,o=CO.find(e,s,(n=i.bidiLevel)!==null&&n!==void 0?n:-1,i.assoc),a=e[o],l=a.side(r,t);if(s==l){let f=o+=r?1:-1;if(f<0||f>=e.length)return null;a=e[o=f],s=a.side(!r,t),l=a.side(r,t)}let c=Ke(O.text,s,a.forward(r,t));(ca.to)&&(c=l),fp=O.text.slice(Math.min(s,c),Math.max(s,c));let h=o==(r?e.length-1:0)?null:e[o+(r?1:-1)];return h&&c==l&&h.level+(r?0:1)O.some(e=>e)}),Sp=G.define({combine:O=>O.some(e=>e)});class Gi{constructor(e,t="nearest",i="nearest",r=5,n=5,s=!1){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=n,this.isSnapshot=s}map(e){return e.empty?this:new Gi(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Gi(X.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const _n=H.define({map:(O,e)=>O.map(e)});function Tt(O,e,t){let i=O.facet($p);i.length?i[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}const xo=G.define({combine:O=>O.length?O[0]:!0});let P1=0;const Pr=G.define();class qe{constructor(e,t,i,r,n){this.id=e,this.create=t,this.domEventHandlers=i,this.domEventObservers=r,this.extension=n(this)}static define(e,t){const{eventHandlers:i,eventObservers:r,provide:n,decorations:s}=t||{};return new qe(P1++,e,i,r,o=>{let a=[Pr.of(o)];return s&&a.push(Fr.of(l=>{let c=l.plugin(o);return c?s(c):E.none})),n&&a.push(n(o)),a})}static fromClass(e,t){return qe.define(i=>new e(i),t)}}class ea{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(Tt(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){Tt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){Tt(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Pp=G.define(),Mc=G.define(),Fr=G.define(),Xp=G.define(),Nc=G.define(),yp=G.define();function Gf(O,e){let t=O.state.facet(yp);if(!t.length)return t;let i=t.map(n=>n instanceof Function?n(O):n),r=[];return le.spans(i,e.from,e.to,{point(){},span(n,s,o,a){let l=n-e.from,c=s-e.from,h=r;for(let f=o.length-1;f>=0;f--,a--){let Q=o[f].spec.bidiIsolate,d;if(Q==null&&(Q=S1(e.text,l,c)),a>0&&h.length&&(d=h[h.length-1]).to==l&&d.direction==Q)d.to=c,h=d.inner;else{let $={from:l,to:c,direction:Q,inner:[]};h.push($),h=$.inner}}}}),r}const xp=G.define();function bp(O){let e=0,t=0,i=0,r=0;for(let n of O.state.facet(xp)){let s=n(O);s&&(s.left!=null&&(e=Math.max(e,s.left)),s.right!=null&&(t=Math.max(t,s.right)),s.top!=null&&(i=Math.max(i,s.top)),s.bottom!=null&&(r=Math.max(r,s.bottom)))}return{left:e,right:t,top:i,bottom:r}}const Xr=G.define();class Vt{constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new Vt(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAc)break;n+=2}if(!a)return i;new Vt(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Us{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=_e.empty(this.startState.doc.length);for(let n of i)this.changes=this.changes.compose(n.changes);let r=[];this.changes.iterChangedRanges((n,s,o,a)=>r.push(new Vt(n,s,o,a))),this.changedRanges=r}static create(e,t,i){return new Us(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}class Cf extends ye{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.compositionBarrier=E.none,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new Ue],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Vt(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:l,toA:c})=>cthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let r=-1;this.view.inputState.composing>=0&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!v1(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let n=r>-1?x1(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:l,to:c}=this.hasComposition;i=new Vt(l,c,e.changes.mapPos(l,-1),e.changes.mapPos(c,1)).addToSet(i.slice())}this.hasComposition=n?{from:n.range.fromB,to:n.range.toB}:null,(C.ie||C.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let s=this.decorations,o=this.updateDeco(),a=T1(s,o,e.changes);return i=Vt.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,n),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,i);let{observer:r}=this.view;r.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=C.chrome||C.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,s),this.flags&=-8,s&&(s.written||r.selectionRange.focusNode!=s.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(s=>s.flags&=-9);let n=[];if(this.view.viewport.from||this.view.viewport.to=0?r[s]:null;if(!o)break;let{fromA:a,toA:l,fromB:c,toB:h}=o,f,Q,d,$;if(i&&i.range.fromBc){let w=Vr.build(this.view.state.doc,c,i.range.fromB,this.decorations,this.dynamicDecorationMap),b=Vr.build(this.view.state.doc,i.range.toB,h,this.decorations,this.dynamicDecorationMap);Q=w.breakAtStart,d=w.openStart,$=b.openEnd;let T=this.compositionView(i);b.breakAtStart?T.breakAfter=1:b.content.length&&T.merge(T.length,T.length,b.content[0],!1,b.openStart,0)&&(T.breakAfter=b.content[0].breakAfter,b.content.shift()),w.content.length&&T.merge(0,0,w.content[w.content.length-1],!0,0,w.openEnd)&&w.content.pop(),f=w.content.concat(T).concat(b.content)}else({content:f,breakAtStart:Q,openStart:d,openEnd:$}=Vr.build(this.view.state.doc,c,h,this.decorations,this.dynamicDecorationMap));let{i:p,off:g}=n.findPos(l,1),{i:P,off:y}=n.findPos(a,-1);ep(this,P,y,p,g,f,Q,d,$)}i&&this.fixCompositionDOM(i)}compositionView(e){let t=new yO(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new xO(r,[t],t.length);let i=new Ue;return i.append(t,0),i}fixCompositionDOM(e){let t=(n,s)=>{s.flags|=8|(s.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(s);let o=ye.get(n);o&&o!=s&&(o.dom=null),s.setDOM(n)},i=this.childPos(e.range.fromB,1),r=this.children[i.i];t(e.line,r);for(let n=e.marks.length-1;n>=-1;n--)i=r.childPos(i.off,1),r=r.children[i.i],t(n>=0?e.marks[n].node:e.text,r)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,r=i==this.dom,n=!r&&ps(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(r||t||n))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(o.anchor)),l=o.empty?a:this.moveToLine(this.domAtPos(o.head));if(C.gecko&&o.empty&&!this.hasComposition&&y1(a)){let h=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(h,a.node.childNodes[a.offset]||null)),a=l=new nt(h,0),s=!0}let c=this.view.observer.selectionRange;(s||!c.focusNode||(!Rr(a.node,a.offset,c.anchorNode,c.anchorOffset)||!Rr(l.node,l.offset,c.focusNode,c.focusOffset))&&!this.suppressWidgetCursorChange(c,o))&&(this.view.observer.ignore(()=>{C.android&&C.chrome&&this.dom.contains(c.focusNode)&&Z1(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let h=Vs(this.view.root);if(h)if(o.empty){if(C.gecko){let f=b1(a.node,a.offset);if(f&&f!=3){let Q=Tp(a.node,a.offset,f==1?1:-1);Q&&(a=new nt(Q.node,Q.offset))}}h.collapse(a.node,a.offset),o.bidiLevel!=null&&h.caretBidiLevel!==void 0&&(h.caretBidiLevel=o.bidiLevel)}else if(h.extend){h.collapse(a.node,a.offset);try{h.extend(l.node,l.offset)}catch{}}else{let f=document.createRange();o.anchor>o.head&&([a,l]=[l,a]),f.setEnd(l.node,l.offset),f.setStart(a.node,a.offset),h.removeAllRanges(),h.addRange(f)}n&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new nt(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new nt(c.focusNode,c.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&!this.compositionBarrier.size&&Rr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=Vs(e.root),{anchorNode:r,anchorOffset:n}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let s=Ue.find(this,t.head);if(!s)return;let o=s.posAtStart;if(t.head==o||t.head==o+s.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&i.collapse(r,n)}moveToLine(e){let t=this.dom,i;if(e.node!=t)return e;for(let r=e.offset;!i&&r=0;r--){let n=ye.get(t.childNodes[r]);n instanceof Ue&&(i=n.domAtPos(n.length))}return i?new nt(i.node,i.offset,!0):e}nearest(e){for(let t=e;t;){let i=ye.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=0;s--){let o=this.children[s],a=n-o.breakAfter,l=a-o.length;if(ae||o.covers(1))&&(!i||o instanceof Ue&&!(i instanceof Ue&&t>=0))&&(i=o,r=l),n=l}return i?i.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:i}=this.childPos(e,1),r=this.children[t];if(!(r instanceof Ue))return null;for(;r.children.length;){let{i:o,off:a}=r.childPos(i,1);for(;;o++){if(o==r.children.length)return null;if((r=r.children[o]).length)break}i=a}if(!(r instanceof yO))return null;let n=Ke(r.text,i);if(n==i)return null;let s=mi(r.dom,i,n).getClientRects();for(let o=0;oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==xe.LTR;for(let l=0,c=0;cr)break;if(l>=i){let Q=h.dom.getBoundingClientRect();if(t.push(Q.height),s){let d=h.dom.lastChild,$=d?Mi(d):[];if($.length){let p=$[$.length-1],g=a?p.right-Q.left:Q.right-p.left;g>o&&(o=g,this.minWidth=n,this.minWidthFrom=l,this.minWidthTo=f)}}}l=f+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?xe.RTL:xe.LTR}measureTextSize(){for(let n of this.children)if(n instanceof Ue){let s=n.measureTextSize();if(s)return s}let e=document.createElement("div"),t,i,r;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let n=Mi(e.firstChild)[0];t=e.getBoundingClientRect().height,i=n?n.width/27:7,r=n?n.height:t,e.remove()}),{lineHeight:t,charWidth:i,textHeight:r}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new J$(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let n=r==t.viewports.length?null:t.viewports[r],s=n?n.from-1:this.length;if(s>i){let o=(t.lineBlockAt(s).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(E.replace({widget:new Ef(o),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!n)break;i=n.to+1}return E.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Fr).map(n=>(this.dynamicDecorationMap[e++]=typeof n=="function")?n(this.view):n),i=!1,r=this.view.state.facet(Xp).map((n,s)=>{let o=typeof n=="function";return o&&(i=!0),o?n(this.view):n});for(r.length&&(this.dynamicDecorationMap[e++]=i,t.push(le.join(r))),this.decorations=[this.compositionBarrier,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e{o.point?i=!1:o.endSide<0&&nt.anchor?-1:1),r;if(!i)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,r.left),top:Math.min(i.top,r.top),right:Math.max(i.right,r.right),bottom:Math.max(i.bottom,r.bottom)});let n=bp(this.view),s={left:i.left-n.left,top:i.top-n.top,right:i.right+n.right,bottom:i.bottom+n.bottom},{offsetWidth:o,offsetHeight:a}=this.view.scrollDOM;O1(this.view.scrollDOM,s,t.head0)i=i.childNodes[r-1],r=XO(i);else break}if(t>=0)for(let i=O,r=e;;){if(i.nodeType==3)return{node:i,offset:r};if(i.nodeType==1&&r=0)i=i.childNodes[r],r=0;else break}return null}function b1(O,e){return O.nodeType!=1?0:(e&&O.childNodes[e-1].contentEditable=="false"?1:0)|(e{ie.from&&(t=!0)}),t}function W1(O,e,t=1){let i=O.charCategorizer(e),r=O.doc.lineAt(e),n=e-r.from;if(r.length==0)return X.cursor(e);n==0?t=1:n==r.length&&(t=-1);let s=n,o=n;t<0?s=Ke(r.text,n,!1):o=Ke(r.text,n);let a=i(r.text.slice(s,o));for(;s>0;){let l=Ke(r.text,s,!1);if(i(r.text.slice(l,s))!=a)break;s=l}for(;oO?e.left-O:Math.max(0,O-e.right)}function Y1(O,e){return e.top>O?e.top-O:Math.max(0,O-e.bottom)}function ta(O,e){return O.tope.top+1}function Af(O,e){return eO.bottom?{top:O.top,left:O.left,right:O.right,bottom:e}:O}function Tl(O,e,t){let i,r,n,s,o=!1,a,l,c,h;for(let d=O.firstChild;d;d=d.nextSibling){let $=Mi(d);for(let p=0;p<$.length;p++){let g=$[p];r&&ta(r,g)&&(g=Af(If(g,r.bottom),r.top));let P=k1(e,g),y=Y1(t,g);if(P==0&&y==0)return d.nodeType==3?Df(d,e,t):Tl(d,e,t);if(!i||s>y||s==y&&n>P){i=d,r=g,n=P,s=y;let w=y?t0?p<$.length-1:p>0)}P==0?t>g.bottom&&(!c||c.bottomg.top)&&(l=d,h=g):c&&ta(c,g)?c=If(c,g.bottom):h&&ta(h,g)&&(h=Af(h,g.top))}}if(c&&c.bottom>=t?(i=a,r=c):h&&h.top<=t&&(i=l,r=h),!i)return{node:O,offset:0};let f=Math.max(r.left,Math.min(r.right,e));if(i.nodeType==3)return Df(i,f,t);if(o&&i.contentEditable!="false")return Tl(i,f,t);let Q=Array.prototype.indexOf.call(O.childNodes,i)+(e>=(r.left+r.right)/2?1:0);return{node:O,offset:Q}}function Df(O,e,t){let i=O.nodeValue.length,r=-1,n=1e9,s=0;for(let o=0;ot?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&h=(c.left+c.right)/2,Q=f;if((C.chrome||C.gecko)&&mi(O,o).getBoundingClientRect().left==c.right&&(Q=!f),h<=0)return{node:O,offset:o+(Q?1:0)};r=o+(Q?1:0),n=h}}}return{node:O,offset:r>-1?r:s>0?O.nodeValue.length:0}}function Zp(O,e,t,i=-1){var r,n;let s=O.contentDOM.getBoundingClientRect(),o=s.top+O.viewState.paddingTop,a,{docHeight:l}=O.viewState,{x:c,y:h}=e,f=h-o;if(f<0)return 0;if(f>l)return O.state.doc.length;for(let w=O.viewState.heightOracle.textHeight/2,b=!1;a=O.elementAtHeight(f),a.type!=ht.Text;)for(;f=i>0?a.bottom+w:a.top-w,!(f>=0&&f<=l);){if(b)return t?null:0;b=!0,i=-i}h=o+f;let Q=a.from;if(QO.viewport.to)return O.viewport.to==O.state.doc.length?O.state.doc.length:t?null:Lf(O,s,a,c,h);let d=O.dom.ownerDocument,$=O.root.elementFromPoint?O.root:d,p=$.elementFromPoint(c,h);p&&!O.contentDOM.contains(p)&&(p=null),p||(c=Math.max(s.left+1,Math.min(s.right-1,c)),p=$.elementFromPoint(c,h),p&&!O.contentDOM.contains(p)&&(p=null));let g,P=-1;if(p&&((r=O.docView.nearest(p))===null||r===void 0?void 0:r.isEditable)!=!1){if(d.caretPositionFromPoint){let w=d.caretPositionFromPoint(c,h);w&&({offsetNode:g,offset:P}=w)}else if(d.caretRangeFromPoint){let w=d.caretRangeFromPoint(c,h);w&&({startContainer:g,startOffset:P}=w,(!O.contentDOM.contains(g)||C.safari&&q1(g,P,c)||C.chrome&&z1(g,P,c))&&(g=void 0))}}if(!g||!O.docView.dom.contains(g)){let w=Ue.find(O.docView,Q);if(!w)return f>a.top+a.height/2?a.to:a.from;({node:g,offset:P}=Tl(w.dom,c,h))}let y=O.docView.nearest(g);if(!y)return null;if(y.isWidget&&((n=y.dom)===null||n===void 0?void 0:n.nodeType)==1){let w=y.dom.getBoundingClientRect();return e.yO.defaultLineHeight*1.5){let o=O.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(O.defaultLineHeight-o)*.5)/o);n+=a*O.viewState.heightOracle.lineLength}let s=O.state.sliceDoc(t.from,t.to);return t.from+ul(s,n,O.state.tabSize)}function q1(O,e,t){let i;if(O.nodeType!=3||e!=(i=O.nodeValue.length))return!1;for(let r=O.nextSibling;r;r=r.nextSibling)if(r.nodeType!=1||r.nodeName!="BR")return!1;return mi(O,i-1,i).getBoundingClientRect().left>t}function z1(O,e,t){if(e!=0)return!1;for(let r=O;;){let n=r.parentNode;if(!n||n.nodeType!=1||n.firstChild!=r)return!1;if(n.classList.contains("cm-line"))break;r=n}let i=O.nodeType==1?O.getBoundingClientRect():mi(O,0,Math.max(O.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function Zl(O,e){let t=O.lineBlockAt(e);if(Array.isArray(t.type)){for(let i of t.type)if(i.to>e||i.to==e&&(i.to==t.to||i.type==ht.Text))return i}return t}function R1(O,e,t,i){let r=Zl(O,e.head),n=!i||r.type!=ht.Text||!(O.lineWrapping||r.widgetLineBreaks)?null:O.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(n){let s=O.dom.getBoundingClientRect(),o=O.textDirectionAt(r.from),a=O.posAtCoords({x:t==(o==xe.LTR)?s.right-1:s.left+1,y:(n.top+n.bottom)/2});if(a!=null)return X.cursor(a,t?-1:1)}return X.cursor(t?r.to:r.from,t?-1:1)}function Mf(O,e,t,i){let r=O.state.doc.lineAt(e.head),n=O.bidiSpans(r),s=O.textDirectionAt(r.from);for(let o=e,a=null;;){let l=g1(r,n,s,o,t),c=fp;if(!l){if(r.number==(t?O.state.doc.lines:1))return o;c=` +`,r=O.state.doc.line(r.number+(t?1:-1)),n=O.bidiSpans(r),l=O.visualLineSide(r,!t)}if(a){if(!a(c))return o}else{if(!i)return l;a=i(c)}o=l}}function V1(O,e,t){let i=O.state.charCategorizer(e),r=i(t);return n=>{let s=i(n);return r==Ze.Space&&(r=s),r==s}}function U1(O,e,t,i){let r=e.head,n=t?1:-1;if(r==(t?O.state.doc.length:0))return X.cursor(r,e.assoc);let s=e.goalColumn,o,a=O.contentDOM.getBoundingClientRect(),l=O.coordsAtPos(r,e.assoc||-1),c=O.documentTop;if(l)s==null&&(s=l.left-a.left),o=n<0?l.top:l.bottom;else{let Q=O.viewState.lineBlockAt(r);s==null&&(s=Math.min(a.right-a.left,O.defaultCharacterWidth*(r-Q.from))),o=(n<0?Q.top:Q.bottom)+c}let h=a.left+s,f=i??O.viewState.heightOracle.textHeight>>1;for(let Q=0;;Q+=10){let d=o+(f+Q)*n,$=Zp(O,{x:h,y:d},!1,n);if(da.bottom||(n<0?$r)){let p=O.docView.coordsForChar($),g=!p||d{if(e>n&&er(O)),t.from,e.head>t.from?-1:1);return i==t.from?t:X.cursor(i,inull),C.gecko&&ex(e.contentDOM.ownerDocument)}handleEvent(e){!L1(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||this.runHandlers(e.type,e)}runHandlers(e,t){let i=this.handlers[e];if(i){for(let r of i.observers)r(this.view,t);for(let r of i.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=j1(e),i=this.handlers,r=this.view.contentDOM;for(let n in t)if(n!="scroll"){let s=!t[n].handlers.length,o=i[n];o&&s!=!o.handlers.length&&(r.removeEventListener(n,this.handleEvent),o=null),o||r.addEventListener(n,this.handleEvent,{passive:s})}for(let n in i)n!="scroll"&&!t[n]&&r.removeEventListener(n,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&Date.now()i.keyCode==e.keyCode))&&!e.ctrlKey||G1.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(){let e=this.pendingIOSKey;return e?(this.pendingIOSKey=void 0,ji(this.view.contentDOM,e.key,e.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:C.safari&&!C.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Nf(O,e){return(t,i)=>{try{return e.call(O,i,t)}catch(r){Tt(t.state,r)}}}function j1(O){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of O){let r=i.spec;if(r&&r.domEventHandlers)for(let n in r.domEventHandlers){let s=r.domEventHandlers[n];s&&t(n).handlers.push(Nf(i.value,s))}if(r&&r.domEventObservers)for(let n in r.domEventObservers){let s=r.domEventObservers[n];s&&t(n).observers.push(Nf(i.value,s))}}for(let i in Nt)t(i).handlers.push(Nt[i]);for(let i in Bt)t(i).observers.push(Bt[i]);return e}const vp=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],G1="dthko",Wp=[16,17,18,20,91,92,224,225],jn=6;function Gn(O){return Math.max(0,O)*.7+8}function C1(O,e){return Math.max(Math.abs(O.clientX-e.clientX),Math.abs(O.clientY-e.clientY))}class E1{constructor(e,t,i,r){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=i1(e.contentDOM),this.atoms=e.state.facet(Nc).map(s=>s(e));let n=e.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this)),n.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(re.allowMultipleSelections)&&A1(e,t),this.dragging=D1(e,t)&&zp(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&C1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let i=0,r=0,n=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},s=bp(this.view);e.clientX-s.left<=n.left+jn?i=-Gn(n.left-e.clientX):e.clientX+s.right>=n.right-jn&&(i=Gn(e.clientX-n.right)),e.clientY-s.top<=n.top+jn?r=-Gn(n.top-e.clientY):e.clientY+s.bottom>=n.bottom-jn&&(r=Gn(e.clientY-n.bottom)),this.setScrollSpeed(i,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let i=0;ithis.select(this.lastEvent),20)}}function A1(O,e){let t=O.state.facet(up);return t.length?t[0](e):C.mac?e.metaKey:e.ctrlKey}function I1(O,e){let t=O.state.facet(Qp);return t.length?t[0](e):C.mac?!e.altKey:!e.ctrlKey}function D1(O,e){let{main:t}=O.state.selection;if(t.empty)return!1;let i=Vs(O.root);if(!i||i.rangeCount==0)return!0;let r=i.getRangeAt(0).getClientRects();for(let n=0;n=e.clientX&&s.top<=e.clientY&&s.bottom>=e.clientY)return!0}return!1}function L1(O,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=O.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=ye.get(t))&&i.ignoreEvent(e))return!1;return!0}const Nt=Object.create(null),Bt=Object.create(null),kp=C.ie&&C.ie_version<15||C.ios&&C.webkit_version<604;function M1(O){let e=O.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{O.focus(),t.remove(),Yp(O,t.value)},50)}function Yp(O,e){let{state:t}=O,i,r=1,n=t.toText(e),s=n.lines==t.selection.ranges.length;if(vl!=null&&t.selection.ranges.every(a=>a.empty)&&vl==n.toString()){let a=-1;i=t.changeByRange(l=>{let c=t.doc.lineAt(l.from);if(c.from==a)return{range:l};a=c.from;let h=t.toText((s?n.line(r++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:h},range:X.cursor(l.from+h.length)}})}else s?i=t.changeByRange(a=>{let l=n.line(r++);return{changes:{from:a.from,to:a.to,insert:l.text},range:X.cursor(a.from+l.length)}}):i=t.replaceSelection(n);O.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Bt.scroll=O=>{O.inputState.lastScrollTop=O.scrollDOM.scrollTop,O.inputState.lastScrollLeft=O.scrollDOM.scrollLeft};Nt.keydown=(O,e)=>(O.inputState.setSelectionOrigin("select"),e.keyCode==27&&(O.inputState.lastEscPress=Date.now()),!1);Bt.touchstart=(O,e)=>{O.inputState.lastTouchTime=Date.now(),O.inputState.setSelectionOrigin("select.pointer")};Bt.touchmove=O=>{O.inputState.setSelectionOrigin("select.pointer")};Nt.mousedown=(O,e)=>{if(O.observer.flush(),O.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of O.state.facet(dp))if(t=i(O,e),t)break;if(!t&&e.button==0&&(t=F1(O,e)),t){let i=!O.hasFocus;O.inputState.startMouseSelection(new E1(O,e,t,i)),i&&O.observer.ignore(()=>F$(O.contentDOM));let r=O.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}return!1};function Bf(O,e,t,i){if(i==1)return X.cursor(e,t);if(i==2)return W1(O.state,e,t);{let r=Ue.find(O.docView,e),n=O.state.doc.lineAt(r?r.posAtEnd:e),s=r?r.posAtStart:n.from,o=r?r.posAtEnd:n.to;return oO>=e.top&&O<=e.bottom,Ff=(O,e,t)=>qp(e,t)&&O>=t.left&&O<=t.right;function N1(O,e,t,i){let r=Ue.find(O.docView,e);if(!r)return 1;let n=e-r.posAtStart;if(n==0)return 1;if(n==r.length)return-1;let s=r.coordsAt(n,-1);if(s&&Ff(t,i,s))return-1;let o=r.coordsAt(n,1);return o&&Ff(t,i,o)?1:s&&qp(i,s)?-1:1}function Hf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:N1(O,t,e.clientX,e.clientY)}}const B1=C.ie&&C.ie_version<=11;let Kf=null,Jf=0,eu=0;function zp(O){if(!B1)return O.detail;let e=Kf,t=eu;return Kf=O,eu=Date.now(),Jf=!e||t>Date.now()-400&&Math.abs(e.clientX-O.clientX)<2&&Math.abs(e.clientY-O.clientY)<2?(Jf+1)%3:1}function F1(O,e){let t=Hf(O,e),i=zp(e),r=O.state.selection;return{update(n){n.docChanged&&(t.pos=n.changes.mapPos(t.pos),r=r.map(n.changes))},get(n,s,o){let a=Hf(O,n),l,c=Bf(O,a.pos,a.bias,i);if(t.pos!=a.pos&&!s){let h=Bf(O,t.pos,t.bias,i),f=Math.min(h.from,c.from),Q=Math.max(h.to,c.to);c=f1&&(l=H1(r,a.pos))?l:o?r.addRange(c):X.create([c])}}}function H1(O,e){for(let t=0;t=e)return X.create(O.ranges.slice(0,t).concat(O.ranges.slice(t+1)),O.mainIndex==t?0:O.mainIndex-(O.mainIndex>t?1:0))}return null}Nt.dragstart=(O,e)=>{let{selection:{main:t}}=O.state;if(e.target.draggable){let r=O.docView.nearest(e.target);if(r&&r.isWidget){let n=r.posAtStart,s=n+r.length;(n>=t.to||s<=t.from)&&(t=X.range(n,s))}}let{inputState:i}=O;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",O.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove"),!1};Nt.dragend=O=>(O.inputState.draggedContent=null,!1);function tu(O,e,t,i){if(!t)return;let r=O.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:n}=O.inputState,s=i&&n&&I1(O,e)?{from:n.from,to:n.to}:null,o={from:r,insert:t},a=O.state.changes(s?[s,o]:o);O.focus(),O.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:s?"move.drop":"input.drop"}),O.inputState.draggedContent=null}Nt.drop=(O,e)=>{if(!e.dataTransfer)return!1;if(O.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),r=0,n=()=>{++r==t.length&&tu(O,e,i.filter(s=>s!=null).join(O.state.lineBreak),!1)};for(let s=0;s{/[\x00-\x08\x0e-\x1f]{2}/.test(o.result)||(i[s]=o.result),n()},o.readAsText(t[s])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return tu(O,e,i,!0),!0}return!1};Nt.paste=(O,e)=>{if(O.state.readOnly)return!0;O.observer.flush();let t=kp?null:e.clipboardData;return t?(Yp(O,t.getData("text/plain")||t.getData("text/uri-text")),!0):(M1(O),!1)};function K1(O,e){let t=O.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),O.focus()},50)}function J1(O){let e=[],t=[],i=!1;for(let r of O.selection.ranges)r.empty||(e.push(O.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:n}of O.selection.ranges){let s=O.doc.lineAt(n);s.number>r&&(e.push(s.text),t.push({from:s.from,to:Math.min(O.doc.length,s.to+1)})),r=s.number}i=!0}return{text:e.join(O.lineBreak),ranges:t,linewise:i}}let vl=null;Nt.copy=Nt.cut=(O,e)=>{let{text:t,ranges:i,linewise:r}=J1(O.state);if(!t&&!r)return!1;vl=r?t:null,e.type=="cut"&&!O.state.readOnly&&O.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let n=kp?null:e.clipboardData;return n?(n.clearData(),n.setData("text/plain",t),!0):(K1(O,t),!1)};const Rp=ZO.define();function Vp(O,e){let t=[];for(let i of O.facet(mp)){let r=i(O,e);r&&t.push(r)}return t?O.update({effects:t,annotations:Rp.of(!0)}):null}function Up(O){setTimeout(()=>{let e=O.hasFocus;if(e!=O.inputState.notifiedFocused){let t=Vp(O.state,e);t?O.dispatch(t):O.update([])}},10)}Bt.focus=O=>{O.inputState.lastFocusTime=Date.now(),!O.scrollDOM.scrollTop&&(O.inputState.lastScrollTop||O.inputState.lastScrollLeft)&&(O.scrollDOM.scrollTop=O.inputState.lastScrollTop,O.scrollDOM.scrollLeft=O.inputState.lastScrollLeft),Up(O)};Bt.blur=O=>{O.observer.clearSelectionRange(),Up(O)};Bt.compositionstart=Bt.compositionupdate=O=>{O.inputState.compositionFirstChange==null&&(O.inputState.compositionFirstChange=!0),O.inputState.composing<0&&(O.inputState.composing=0,O.docView.maybeCreateCompositionBarrier()&&(O.update([]),O.docView.clearCompositionBarrier()))};Bt.compositionend=O=>{O.inputState.composing=-1,O.inputState.compositionEndedAt=Date.now(),O.inputState.compositionPendingKey=!0,O.inputState.compositionPendingChange=O.observer.pendingRecords().length>0,O.inputState.compositionFirstChange=null,C.chrome&&C.android?O.observer.flushSoon():O.inputState.compositionPendingChange?Promise.resolve().then(()=>O.observer.flush()):setTimeout(()=>{O.inputState.composing<0&&O.docView.hasComposition&&O.update([])},50)};Bt.contextmenu=O=>{O.inputState.lastContextMenu=Date.now()};Nt.beforeinput=(O,e)=>{var t;let i;if(C.chrome&&C.android&&(i=vp.find(r=>r.inputType==e.inputType))&&(O.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let r=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var n;(((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0)>r+10&&O.hasFocus&&(O.contentDOM.blur(),O.focus())},100)}return!1};const Ou=new Set;function ex(O){Ou.has(O)||(Ou.add(O),O.addEventListener("copy",()=>{}),O.addEventListener("cut",()=>{}))}const iu=["pre-wrap","normal","pre-line","break-spaces"];class tx{constructor(e){this.lineWrapping=e,this.doc=ue.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return iu.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=i,this.textHeight=r,this.lineLength=n,a){this.heightSamples={};for(let l=0;l0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>gs&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return ft.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let n=this,s=i.doc;for(let o=r.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:c,toB:h}=r[o],f=n.lineAt(a,Xe.ByPosNoHeight,i.setDoc(t),0,0),Q=f.to>=l?f:n.lineAt(l,Xe.ByPosNoHeight,i,0,0);for(h+=Q.to-l,l=Q.to;o>0&&f.from<=r[o-1].toA;)a=r[o-1].fromA,c=r[o-1].fromB,o--,an*2){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),i+=1+o.break,r-=o.size}else if(n>r*2){let o=e[i];o.break?e.splice(i,1,o.left,null,o.right):e.splice(i,1,o.left,o.right),i+=2+o.break,n-=o.size}else break;else if(r=n&&s(this.blockAt(0,i,r,n))}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class xt extends _p{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,i,r){return new aO(r,this.length,i,this.height,this.breaks)}replace(e,t,i){let r=i[0];return i.length==1&&(r instanceof xt||r instanceof Me&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof Me?r=new xt(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):ft.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Me extends ft{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,n=r-i+1,s,o=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*n);s=a/n,this.length>n+1&&(o=(this.height-a)/(this.length-n-1))}else s=this.height/n;return{firstLine:i,lastLine:r,perLine:s,perChar:o}}blockAt(e,t,i,r){let{firstLine:n,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let l=r+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),c=t.doc.lineAt(l),h=o+c.length*a,f=Math.max(i,e-h/2);return new aO(c.from,c.length,f,h,0)}else{let l=Math.max(0,Math.min(s-n,Math.floor((e-i)/o))),{from:c,length:h}=t.doc.line(n+l);return new aO(c,h,i+o*l,o,0)}}lineAt(e,t,i,r,n){if(t==Xe.ByHeight)return this.blockAt(e,i,r,n);if(t==Xe.ByPosNoHeight){let{from:Q,to:d}=i.doc.lineAt(e);return new aO(Q,d-Q,0,0,0)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,n),l=i.doc.lineAt(e),c=o+l.length*a,h=l.number-s,f=r+o*h+a*(l.from-n-h);return new aO(l.from,l.length,Math.max(r,Math.min(f,r+this.height-c)),c,0)}forEachLine(e,t,i,r,n,s){e=Math.max(e,n),t=Math.min(t,n+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,n);for(let c=e,h=r;c<=t;){let f=i.doc.lineAt(c);if(c==e){let d=f.number-o;h+=a*d+l*(e-n-d)}let Q=a+l*f.length;s(new aO(f.from,f.length,h,Q,0)),h+=Q,c=f.to+1}}replace(e,t,i){let r=this.length-t;if(r>0){let n=i[i.length-1];n instanceof Me?i[i.length-1]=new Me(n.length+r):i.push(null,new Me(r-1))}if(e>0){let n=i[0];n instanceof Me?i[0]=new Me(e+n.length):i.unshift(new Me(e-1),null)}return ft.of(i)}decomposeLeft(e,t){t.push(new Me(e-1),null)}decomposeRight(e,t){t.push(null,new Me(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let n=t+this.length;if(r&&r.from<=t+this.length&&r.more){let s=[],o=Math.max(t,r.from),a=-1;for(r.from>t&&s.push(new Me(r.from-t-1).updateHeight(e,t));o<=n&&r.more;){let c=e.doc.lineAt(o).length;s.length&&s.push(null);let h=r.heights[r.index++];a==-1?a=h:Math.abs(h-a)>=gs&&(a=-2);let f=new xt(c,h);f.outdated=!1,s.push(f),o+=c+1}o<=n&&s.push(null,new Me(n-o).updateHeight(e,o));let l=ft.of(s);return(a<0||Math.abs(l.height-this.height)>=gs||Math.abs(a-this.heightMetrics(e,t).perLine)>=gs)&&(e.heightChanged=!0),l}else(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class ix extends ft{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,r){let n=i+this.left.height;return eo))return l;let c=t==Xe.ByPosNoHeight?Xe.ByPosNoHeight:Xe.ByPos;return a?l.join(this.right.lineAt(o,c,i,s,o)):this.left.lineAt(o,c,i,r,n).join(l)}forEachLine(e,t,i,r,n,s){let o=r+this.left.height,a=n+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,o,a,s);else{let l=this.lineAt(a,Xe.ByPos,i,r,n);e=e&&l.from<=t&&s(l),t>l.to&&this.right.forEachLine(l.to+1,t,i,o,a,s)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let n=[];e>0&&this.decomposeLeft(e,n);let s=n.length;for(let o of i)n.push(o);if(e>0&&ru(n,s-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?ft.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:n,right:s}=this,o=t+n.length+this.break,a=null;return r&&r.from<=t+n.length&&r.more?a=n=n.updateHeight(e,t,i,r):n.updateHeight(e,t,i),r&&r.from<=o+s.length&&r.more?a=s=s.updateHeight(e,o,i,r):s.updateHeight(e,o,i),a?this.balanced(n,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function ru(O,e){let t,i;O[e]==null&&(t=O[e-1])instanceof Me&&(i=O[e+1])instanceof Me&&O.splice(e-1,3,new Me(t.length+1+i.length))}const rx=5;class Bc{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof xt?r.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new xt(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=rx)&&this.addLineDeco(r,n,s)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new xt(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new Me(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof xt)return e;let t=new xt(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let r=this.ensureLine();r.length+=i,r.collapsed+=i,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof xt)&&!this.isCovered?this.nodes.push(new xt(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&h.overflow!="visible"){let f=c.getBoundingClientRect();n=Math.max(n,f.left),s=Math.min(s,f.right),o=Math.max(o,f.top),a=l==O.parentNode?f.bottom:Math.min(a,f.bottom)}l=h.position=="absolute"||h.position=="fixed"?c.offsetParent:c.parentNode}else if(l.nodeType==11)l=l.host;else break;return{left:n-t.left,right:Math.max(n,s)-t.left,top:o-(t.top+e),bottom:Math.max(o,a)-(t.top+e)}}function ax(O,e){let t=O.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class ia{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new tx(t),this.stateDeco=e.facet(Fr).filter(i=>typeof i!="function"),this.heightMap=ft.empty().applyChanges(this.stateDeco,ue.empty,this.heightOracle.setDoc(e.doc),[new Vt(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=E.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some(({from:n,to:s})=>r>=n&&r<=s)){let{from:n,to:s}=this.lineBlockAt(r);e.push(new Cn(n,s))}}this.viewports=e.sort((i,r)=>i.from-r.from),this.scaler=this.heightMap.height<=7e6?su:new fx(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:yr(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Fr).filter(c=>typeof c!="function");let r=e.changedRanges,n=Vt.extendWithRanges(r,nx(i,this.stateDeco,e?e.changes:_e.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),n),this.heightMap.height!=s&&(e.flags|=2),o?(this.scrollAnchorPos=e.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=n.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let l=!e.changes.empty||e.flags&2||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),l&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Sp)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,n=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?xe.RTL:xe.LTR;let s=this.heightOracle.mustRefreshForWrapping(n),o=t.getBoundingClientRect(),a=s||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let l=0,c=0;if(o.width&&o.height){let{scaleX:w,scaleY:b}=B$(t,o);(this.scaleX!=w||this.scaleY!=b)&&(this.scaleX=w,this.scaleY=b,l|=8,s=a=!0)}let h=(parseInt(i.paddingTop)||0)*this.scaleY,f=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let Q=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=Q&&(this.scrollAnchorHeight=-1,this.scrollTop=Q),this.scrolledToBottom=K$(e.scrollDOM);let d=(this.printing?ax:ox)(t,this.paddingTop),$=d.top-this.pixelViewport.top,p=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let P=o.width;if((this.contentDOMWidth!=P||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let w=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(w)&&(s=!0),s||r.lineWrapping&&Math.abs(P-this.contentDOMWidth)>r.charWidth){let{lineHeight:b,charWidth:T,textHeight:Y}=e.docView.measureTextSize();s=b>0&&r.refresh(n,b,T,Y,P/T,w),s&&(e.docView.minWidth=0,l|=8)}$>0&&p>0?c=Math.max($,p):$<0&&p<0&&(c=Math.min($,p)),r.heightChanged=!1;for(let b of this.viewports){let T=b.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(b);this.heightMap=(s?ft.empty().applyChanges(this.stateDeco,ue.empty,this.heightOracle,[new Vt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,s,new Ox(b.from,T))}r.heightChanged&&(l|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(l&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,n=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new Cn(r.lineAt(s-i*1e3,Xe.ByHeight,n,0,0).from,r.lineAt(o+(1-i)*1e3,Xe.ByHeight,n,0,0).to);if(t){let{head:l}=t.range;if(la.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(l,Xe.ByPos,n,0,0),f;t.y=="center"?f=(h.top+h.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&l=o+Math.max(10,Math.min(i,250)))&&r>s-2*1e3&&n>1,s=r<<1;if(this.defaultTextDirection!=xe.LTR&&!i)return[];let o=[],a=(l,c,h,f)=>{if(c-ll&&pp.from>=h.from&&p.to<=h.to&&Math.abs(p.from-l)p.fromg));if(!$){if(cp.from<=c&&p.to>=c)){let p=t.moveToLineBoundary(X.cursor(c),!1,!0).head;p>l&&(c=p)}$=new ia(l,c,this.gapSize(h,l,c,f))}o.push($)};for(let l of this.viewportLines){if(l.lengthl.from&&a(l.from,f,l,c),Qt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];le.spans(e,this.viewport.from,this.viewport.to,{span(r,n){t.push({from:r,to:n})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((r,n)=>r.from!=t[n].from||r.to!=t[n].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||yr(this.heightMap.lineAt(e,Xe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return yr(this.heightMap.lineAt(this.scaler.fromDOM(e),Xe.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return yr(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Cn{constructor(e,t){this.from=e,this.to=t}}function cx(O,e,t){let i=[],r=O,n=0;return le.spans(t,O,e,{span(){},point(s,o){s>r&&(i.push({from:r,to:s}),n+=s-r),r=o}},20),r=1)return e[e.length-1].to;let i=Math.floor(O*t);for(let r=0;;r++){let{from:n,to:s}=e[r],o=s-n;if(i<=o)return n+i;i-=o}}function An(O,e){let t=0;for(let{from:i,to:r}of O.ranges){if(e<=r){t+=e-i;break}t+=r-i}return t/O.total}function hx(O,e){for(let t of O)if(e(t))return t}const su={toDOM(O){return O},fromDOM(O){return O},scale:1};class fx{constructor(e,t,i){let r=0,n=0,s=0;this.viewports=i.map(({from:o,to:a})=>{let l=t.lineAt(o,Xe.ByPos,e,0,0).top,c=t.lineAt(a,Xe.ByPos,e,0,0).bottom;return r+=c-l,{from:o,to:a,top:l,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let o of this.viewports)o.domTop=s+(o.top-n)*this.scale,s=o.domBottom=o.domTop+(o.bottom-o.top),n=o.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=tyr(r,e)):O._content)}const In=G.define({combine:O=>O.join(" ")}),Wl=G.define({combine:O=>O.indexOf(!0)>-1}),kl=FO.newName(),jp=FO.newName(),Gp=FO.newName(),Cp={"&light":"."+jp,"&dark":"."+Gp};function Yl(O,e,t){return new FO(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,r=>{if(r=="&")return O;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):O+" "+i}})}const ux=Yl("."+kl,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Cp),xr="￿";class Qx{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(re.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=xr}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let r=e;;){this.findPointBefore(i,r);let n=this.text.length;this.readNode(r);let s=r.nextSibling;if(s==t)break;let o=ye.get(r),a=ye.get(s);(o&&a?o.breakAfter:(o?o.breakAfter:ou(r))||ou(s)&&(r.nodeName!="BR"||r.cmIgnore)&&this.text.length>n)&&this.lineBreak(),r=s}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let n=-1,s=1,o;if(this.lineSeparator?(n=t.indexOf(this.lineSeparator,i),s=this.lineSeparator.length):(o=r.exec(t))&&(n=o.index,s=o[0].length),this.append(t.slice(i,n<0?t.length:n)),n<0)break;if(this.lineBreak(),s>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=s-1);i=n+s}}readNode(e){if(e.cmIgnore)return;let t=ye.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let r=i.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(dx(e,i.node,i.offset)?t:0))}}function dx(O,e,t){for(;;){if(!e||t-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let o=n||s?[]:gx(e),a=new Qx(o,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=Sx(o,this.bounds.from)}else{let o=e.observer.selectionRange,a=n&&n.node==o.focusNode&&n.offset==o.focusOffset||!$l(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),l=s&&s.node==o.anchorNode&&s.offset==o.anchorOffset||!$l(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset),c=e.viewport;if((C.ios||C.chrome)&&e.state.selection.main.empty&&a!=l&&(c.from>0||c.toDate.now()-100?O.inputState.lastKeyCode:-1;if(e.bounds){let{from:s,to:o}=e.bounds,a=r.from,l=null;(n===8||C.android&&e.text.length=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:O.state.doc.slice(r.from,t.from).append(t.insert).append(O.state.doc.slice(t.to,r.to))}:(C.mac||C.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&O.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:ue.of([" "])}):C.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==` + `&&O.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:ue.of([" "])}),t){if(C.ios&&O.inputState.flushIOSKey()||C.android&&(t.to==r.to&&(t.from==r.from||t.from==r.from-1&&O.state.sliceDoc(t.from,r.from)==" ")&&t.insert.length==1&&t.insert.lines==2&&ji(O.contentDOM,"Enter",13)||(t.from==r.from-1&&t.to==r.to&&t.insert.length==0||n==8&&t.insert.lengthr.head)&&ji(O.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&ji(O.contentDOM,"Delete",46)))return!0;let s=t.insert.toString();O.inputState.composing>=0&&O.inputState.composing++;let o,a=()=>o||(o=px(O,t,i));return O.state.facet(pp).some(l=>l(O,t.from,t.to,s,a))||O.dispatch(a()),!0}else if(i&&!i.main.eq(r)){let s=!1,o="select";return O.inputState.lastSelectionTime>Date.now()-50&&(O.inputState.lastSelectionOrigin=="select"&&(s=!0),o=O.inputState.lastSelectionOrigin),O.dispatch({selection:i,scrollIntoView:s,userEvent:o}),!0}else return!1}function px(O,e,t){let i,r=O.state,n=r.selection.main;if(e.from>=n.from&&e.to<=n.to&&e.to-e.from>=(n.to-n.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&O.inputState.composing<0){let o=n.frome.to?r.sliceDoc(e.to,n.to):"";i=r.replaceSelection(O.state.toText(o+e.insert.sliceString(0,void 0,O.state.lineBreak)+a))}else{let o=r.changes(e),a=t&&t.main.to<=o.newLength?t.main:void 0;if(r.selection.ranges.length>1&&O.inputState.composing>=0&&e.to<=n.to&&e.to>=n.to-10){let l=O.state.sliceDoc(e.from,e.to),c,h=t&&wp(O,t.main.head);if(h){let d=e.insert.length-(e.to-e.from);c={from:h.from,to:h.to-d}}else c=O.state.doc.lineAt(n.head);let f=n.to-e.to,Q=n.to-n.from;i=r.changeByRange(d=>{if(d.from==n.from&&d.to==n.to)return{changes:o,range:a||d.map(o)};let $=d.to-f,p=$-l.length;if(d.to-d.from!=Q||O.state.sliceDoc(p,$)!=l||d.to>=c.from&&d.from<=c.to)return{range:d};let g=r.changes({from:p,to:$,insert:e.insert}),P=d.to-n.to;return{changes:g,range:a?X.range(Math.max(0,a.anchor+P),Math.max(0,a.head+P)):d.map(g)}})}else i={changes:o,selection:a&&r.selection.replaceRange(a)}}let s="input.type";return(O.composing||O.inputState.compositionPendingChange&&O.inputState.compositionEndedAt>Date.now()-50)&&(O.inputState.compositionPendingChange=!1,s+=".compose",O.inputState.compositionFirstChange&&(s+=".start",O.inputState.compositionFirstChange=!1)),r.update(i,{userEvent:s,scrollIntoView:!0})}function mx(O,e,t,i){let r=Math.min(O.length,e.length),n=0;for(;n0&&o>0&&O.charCodeAt(s-1)==e.charCodeAt(o-1);)s--,o--;if(i=="end"){let a=Math.max(0,n-Math.min(s,o));t-=s+a-n}if(s=s?n-t:0;n-=a,o=n+(o-s),s=n}else if(o=o?n-t:0;n-=a,s=n+(s-o),o=n}return{from:n,toA:s,toB:o}}function gx(O){let e=[];if(O.root.activeElement!=O.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:n}=O.observer.selectionRange;return t&&(e.push(new au(t,i)),(r!=t||n!=i)&&e.push(new au(r,n))),e}function Sx(O,e){if(O.length==0)return null;let t=O[0].pos,i=O.length==2?O[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}const Px={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ra=C.ie&&C.ie_version<=11;class Xx{constructor(e){this.view=e,this.active=!1,this.selectionRange=new r1,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(C.ie&&C.ie_version<=11||C.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),ra&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(xo)?i.root.activeElement!=this.dom:!ps(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);if(n&&n.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(C.ie&&C.ie_version<=11||C.android&&C.chrome)&&!i.state.selection.main.empty&&r.focusNode&&Rr(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=C.safari&&e.root.nodeType==11&&e1(this.dom.ownerDocument)==this.dom&&yx(this.view)||Vs(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=ps(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let n=this.delayedAndroidKey;n&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=n.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&n.force&&ji(this.dom,n.key,n.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let s=this.readMutation(n);s&&(s.typeOver&&(r=!0),t==-1?{from:t,to:i}=s:(t=Math.min(s.from,t),i=Math.max(s.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&ps(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let n=new $x(this.view,e,t,i);return this.view.docView.domChanged={newSel:n.newSel?n.newSel.main:null},n}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,r=Ep(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let i=lu(t,e.previousSibling||e.target.previousSibling,-1),r=lu(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function lu(O,e,t){for(;e;){let i=ye.get(e);if(i&&i.parent==O)return i;let r=e.parentNode;e=r!=O.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function yx(O){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(O.contentDOM.addEventListener("beforeinput",t,!0),O.dom.ownerDocument.execCommand("indent"),O.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=O.docView.domAtPos(O.state.selection.main.anchor);return Rr(o.node,o.offset,n,s)&&([i,r,n,s]=[n,s,i,r]),{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:s}}class U{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:t}=e;this.dispatchTransactions=e.dispatchTransactions||t&&(i=>i.forEach(r=>t(r,this)))||(i=>this.update(i)),this.dispatch=this.dispatch.bind(this),this._root=e.root||n1(e.parent)||document,this.viewState=new nu(e.state||re.create(e)),e.scrollTo&&e.scrollTo.is(_n)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Pr).map(i=>new ea(i));for(let i of this.plugins)i.update(this);this.observer=new Xx(this),this.inputState=new _1(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Cf(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...e){let t=e.length==1&&e[0]instanceof Ve?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,r,n=this.state;for(let f of e){if(f.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=f.state}if(this.destroyed){this.viewState.state=n;return}let s=this.hasFocus,o=0,a=null;e.some(f=>f.annotation(Rp))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=Vp(n,s),a||(o=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(c=null)):this.observer.clear(),n.facet(re.phrases)!=this.state.facet(re.phrases))return this.setState(n);r=Us.create(this,n,e),r.flags|=o;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:Q}=f.state.selection;h=new Gi(Q.empty?Q:X.cursor(Q.head,Q.head>Q.anchor?-1:1))}for(let Q of f.effects)Q.is(_n)&&(h=Q.value.clip(this.state))}this.viewState.update(r,h),this.bidiCache=_s.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(Xr)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(In)!=r.state.facet(In)&&(this.viewState.mustMeasureContent=!0),(t||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let f of this.state.facet(wl))try{f(r)}catch(Q){Tt(this.state,Q,"update listener")}(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!Ep(this,c)&&l.force&&ji(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new nu(e),this.plugins=e.facet(Pr).map(i=>new ea(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Cf(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Pr),i=e.state.facet(Pr);if(t!=i){let r=[];for(let n of i){let s=t.indexOf(n);if(s<0)r.push(new ea(n));else{let o=this.plugins[s];o.mustUpdate=e,r.push(o)}}for(let n of this.plugins)n.mustUpdate!=e&&n.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,r=i.scrollTop*this.scaleY,{scrollAnchorPos:n,scrollAnchorHeight:s}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let o=0;;o++){if(s<0)if(K$(i))n=-1,s=this.viewState.heightMap.height;else{let Q=this.viewState.scrollAnchorAt(r);n=Q.from,s=Q.top}this.updateState=1;let a=this.viewState.measure(this);if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];a&4||([this.measureRequests,l]=[l,this.measureRequests]);let c=l.map(Q=>{try{return Q.read(this)}catch(d){return Tt(this.state,d),cu}}),h=Us.create(this,this.state,[]),f=!1;h.flags|=a,t?t.flags|=a:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let Q=0;Q1||d<-1){r=r+d,i.scrollTop=r/this.scaleY,s=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let o of this.state.facet(wl))o(t)}get themeClasses(){return kl+" "+(this.state.facet(Wl)?Gp:jp)+" "+this.state.facet(In)}updateAttrs(){let e=hu(this,Pp,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(xo)?"true":"false",class:"cm-content",style:`${C.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),hu(this,Mc,t);let i=this.observer.ignore(()=>{let r=Pl(this.contentDOM,this.contentAttrs,t),n=Pl(this.dom,this.editorAttrs,e);return r||n});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let r of i.effects)if(r.is(U.announce)){t&&(this.announceDOM.textContent=""),t=!1;let n=this.announceDOM.appendChild(document.createElement("div"));n.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(Xr);let e=this.state.facet(U.cspNonce);FO.mount(this.root,this.styleModules.concat(ux).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return Oa(this,e,Mf(this,e,t,i))}moveByGroup(e,t){return Oa(this,e,Mf(this,e,t,i=>V1(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),r=this.textDirectionAt(e.from),n=i[t?i.length-1:0];return X.cursor(n.side(t,r)+e.from,n.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,i=!0){return R1(this,e,t,i)}moveVertically(e,t,i){return Oa(this,e,U1(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Zp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[CO.find(n,e-r.from,-1,t)];return Xo(i,s.dir==xe.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(gp)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>xx)return hp(e.length);let t=this.textDirectionAt(e.from),i;for(let n of this.bidiCache)if(n.from==e.from&&n.dir==t&&(n.fresh||cp(n.isolates,i=Gf(this,e))))return n.order;i||(i=Gf(this,e));let r=m1(e.text,t,i);return this.bidiCache.push(new _s(e.from,e.to,t,i,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||C.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{F$(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return _n.of(new Gi(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return _n.of(new Gi(X.cursor(i.from),"start","start",i.top-e,t,!0))}static domEventHandlers(e){return qe.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return qe.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=FO.newName(),r=[In.of(i),Xr.of(Yl(`.${i}`,e))];return t&&t.dark&&r.push(Wl.of(!0)),r}static baseTheme(e){return TO.lowest(Xr.of(Yl("."+kl,e,Cp)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&ye.get(i)||ye.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}}U.styleModule=Xr;U.inputHandler=pp;U.focusChangeEffect=mp;U.perLineTextDirection=gp;U.exceptionSink=$p;U.updateListener=wl;U.editable=xo;U.mouseSelectionStyle=dp;U.dragMovesSelection=Qp;U.clickAddsSelectionRange=up;U.decorations=Fr;U.outerDecorations=Xp;U.atomicRanges=Nc;U.bidiIsolatedRanges=yp;U.scrollMargins=xp;U.darkTheme=Wl;U.cspNonce=G.define({combine:O=>O.length?O[0]:""});U.contentAttributes=Mc;U.editorAttributes=Pp;U.lineWrapping=U.contentAttributes.of({class:"cm-lineWrapping"});U.announce=H.define();const xx=4096,cu={};class _s{constructor(e,t,i,r,n,s){this.from=e,this.to=t,this.dir=i,this.isolates=r,this.fresh=n,this.order=s}static update(e,t){if(t.empty&&!e.some(n=>n.fresh))return e;let i=[],r=e.length?e[e.length-1].dir:xe.LTR;for(let n=Math.max(0,e.length-10);n=0;r--){let n=i[r],s=typeof n=="function"?n(O):n;s&&Sl(s,t)}return t}const bx=C.mac?"mac":C.windows?"win":C.linux?"linux":"key";function wx(O,e){const t=O.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let r,n,s,o;for(let a=0;ai.concat(r),[]))),t}function Zx(O,e,t){return Ip(Ap(O.state),e,O,t)}let _O=null;const vx=4e3;function Wx(O,e=bx){let t=Object.create(null),i=Object.create(null),r=(s,o)=>{let a=i[s];if(a==null)i[s]=o;else if(a!=o)throw new Error("Key binding "+s+" is used both as a regular binding and as a multi-stroke prefix")},n=(s,o,a,l,c)=>{var h,f;let Q=t[s]||(t[s]=Object.create(null)),d=o.split(/ (?!$)/).map(g=>wx(g,e));for(let g=1;g{let w=_O={view:y,prefix:P,scope:s};return setTimeout(()=>{_O==w&&(_O=null)},vx),!0}]})}let $=d.join(" ");r($,!1);let p=Q[$]||(Q[$]={preventDefault:!1,stopPropagation:!1,run:((f=(h=Q._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});a&&p.run.push(a),l&&(p.preventDefault=!0),c&&(p.stopPropagation=!0)};for(let s of O){let o=s.scope?s.scope.split(" "):["editor"];if(s.any)for(let l of o){let c=t[l]||(t[l]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let h in c)c[h].run.push(s.any)}let a=s[e]||s.key;if(a)for(let l of o)n(l,a,s.run,s.preventDefault,s.stopPropagation),s.shift&&n(l,"Shift-"+a,s.shift,s.preventDefault,s.stopPropagation)}return t}function Ip(O,e,t,i){let r=Jy(e),n=Ne(r,0),s=kt(n)==r.length&&r!=" ",o="",a=!1,l=!1,c=!1;_O&&_O.view==t&&_O.scope==i&&(o=_O.prefix+" ",Wp.indexOf(e.keyCode)<0&&(l=!0,_O=null));let h=new Set,f=p=>{if(p){for(let g of p.run)if(!h.has(g)&&(h.add(g),g(t,e)))return p.stopPropagation&&(c=!0),!0;p.preventDefault&&(p.stopPropagation&&(c=!0),l=!0)}return!1},Q=O[i],d,$;return Q&&(f(Q[o+Dn(r,e,!s)])?a=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(C.windows&&e.ctrlKey&&e.altKey)&&(d=HO[e.keyCode])&&d!=r?(f(Q[o+Dn(d,e,!0)])||e.shiftKey&&($=Nr[e.keyCode])!=r&&$!=d&&f(Q[o+Dn($,e,!1)]))&&(a=!0):s&&e.shiftKey&&f(Q[o+Dn(r,e,!0)])&&(a=!0),!a&&f(Q._any)&&(a=!0)),l&&(a=!0),a&&c&&e.stopPropagation(),a}class Sn{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=Dp(e);return[new Sn(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}else return kx(e,t,i)}}function Dp(O){let e=O.scrollDOM.getBoundingClientRect();return{left:(O.textDirection==xe.LTR?e.left:e.right-O.scrollDOM.clientWidth*O.scaleX)-O.scrollDOM.scrollLeft*O.scaleX,top:e.top-O.scrollDOM.scrollTop*O.scaleY}}function uu(O,e,t){let i=X.cursor(e);return{from:Math.max(t.from,O.moveToLineBoundary(i,!1,!0).from),to:Math.min(t.to,O.moveToLineBoundary(i,!0,!0).from),type:ht.Text}}function kx(O,e,t){if(t.to<=O.viewport.from||t.from>=O.viewport.to)return[];let i=Math.max(t.from,O.viewport.from),r=Math.min(t.to,O.viewport.to),n=O.textDirection==xe.LTR,s=O.contentDOM,o=s.getBoundingClientRect(),a=Dp(O),l=s.querySelector(".cm-line"),c=l&&window.getComputedStyle(l),h=o.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),f=o.right-(c?parseInt(c.paddingRight):0),Q=Zl(O,i),d=Zl(O,r),$=Q.type==ht.Text?Q:null,p=d.type==ht.Text?d:null;if($&&(O.lineWrapping||Q.widgetLineBreaks)&&($=uu(O,i,$)),p&&(O.lineWrapping||d.widgetLineBreaks)&&(p=uu(O,r,p)),$&&p&&$.from==p.from)return P(y(t.from,t.to,$));{let b=$?y(t.from,null,$):w(Q,!1),T=p?y(null,t.to,p):w(d,!0),Y=[];return($||Q).to<(p||d).from-($&&p?1:0)||Q.widgetLineBreaks>1&&b.bottom+O.defaultLineHeight/2N&&se.from=fe)break;be>Se&&F(Math.max(ze,Se),b==null&&ze<=N,Math.min(be,fe),T==null&&be>=ce,ee.dir)}if(Se=ie.to+1,Se>=fe)break}return K.length==0&&F(N,b==null,ce,T==null,O.textDirection),{top:D,bottom:Oe,horizontal:K}}function w(b,T){let Y=o.top+(T?b.top:b.bottom);return{top:Y,bottom:Y,horizontal:[]}}}function Yx(O,e){return O.constructor==e.constructor&&O.eq(e)}class qx{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Ss)!=e.state.facet(Ss)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(Ss);for(;t!Yx(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Ss=G.define();function Lp(O){return[qe.define(e=>new qx(e,O)),Ss.of(O)]}const Mp=!C.ios,Hr=G.define({combine(O){return QO(O,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function zx(O={}){return[Hr.of(O),Rx,Vx,Ux,Sp.of(!0)]}function Np(O){return O.startState.facet(Hr)!=O.state.facet(Hr)}const Rx=Lp({above:!0,markers(O){let{state:e}=O,t=e.facet(Hr),i=[];for(let r of e.selection.ranges){let n=r==e.selection.main;if(r.empty?!n||Mp:t.drawRangeCursor){let s=n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",o=r.empty?r:X.cursor(r.head,r.head>r.anchor?-1:1);for(let a of Sn.forRange(O,s,o))i.push(a)}}return i},update(O,e){O.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Np(O);return t&&Qu(O.state,e),O.docChanged||O.selectionSet||t},mount(O,e){Qu(e.state,O)},class:"cm-cursorLayer"});function Qu(O,e){e.style.animationDuration=O.facet(Hr).cursorBlinkRate+"ms"}const Vx=Lp({above:!1,markers(O){return O.state.selection.ranges.map(e=>e.empty?[]:Sn.forRange(O,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(O,e){return O.docChanged||O.selectionSet||O.viewportChanged||Np(O)},class:"cm-selectionLayer"}),ql={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Mp&&(ql[".cm-line"].caretColor="transparent !important",ql[".cm-content"]={caretColor:"transparent !important"});const Ux=TO.highest(U.theme(ql)),Bp=H.define({map(O,e){return O==null?null:e.mapPos(O)}}),br=Ie.define({create(){return null},update(O,e){return O!=null&&(O=e.changes.mapPos(O)),e.effects.reduce((t,i)=>i.is(Bp)?i.value:t,O)}}),_x=qe.fromClass(class{constructor(O){this.view=O,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(O){var e;let t=O.state.field(br);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(O.startState.field(br)!=t||O.docChanged||O.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:O}=this,e=O.state.field(br),t=e!=null&&O.coordsAtPos(e);if(!t)return null;let i=O.scrollDOM.getBoundingClientRect();return{left:t.left-i.left+O.scrollDOM.scrollLeft*O.scaleX,top:t.top-i.top+O.scrollDOM.scrollTop*O.scaleY,height:t.bottom-t.top}}drawCursor(O){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;O?(this.cursor.style.left=O.left/e+"px",this.cursor.style.top=O.top/t+"px",this.cursor.style.height=O.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(O){this.view.state.field(br)!=O&&this.view.dispatch({effects:Bp.of(O)})}},{eventObservers:{dragover(O){this.setDropPos(this.view.posAtCoords({x:O.clientX,y:O.clientY}))},dragleave(O){(O.target==this.view.contentDOM||!this.view.contentDOM.contains(O.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function jx(){return[br,_x]}function du(O,e,t,i,r){e.lastIndex=0;for(let n=O.iterRange(t,i),s=t,o;!n.next().done;s+=n.value.length)if(!n.lineBreak)for(;o=e.exec(n.value);)r(s+o.index,o)}function Gx(O,e){let t=O.visibleRanges;if(t.length==1&&t[0].from==O.viewport.from&&t[0].to==O.viewport.to)return t;let i=[];for(let{from:r,to:n}of t)r=Math.max(O.state.doc.lineAt(r).from,r-e),n=Math.min(O.state.doc.lineAt(n).to,n+e),i.length&&i[i.length-1].to>=r?i[i.length-1].to=n:i.push({from:r,to:n});return i}class Cx{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:s=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(o,a,l,c)=>r(c,l,l+o[0].length,o,a);else if(typeof i=="function")this.addMatch=(o,a,l,c)=>{let h=i(o,a,l);h&&c(l,l+o[0].length,h)};else if(i)this.addMatch=(o,a,l,c)=>c(l,l+o[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=n,this.maxLength=s}createDeco(e){let t=new BO,i=t.add.bind(t);for(let{from:r,to:n}of Gx(e,this.maxLength))du(e.state.doc,this.regexp,r,n,(s,o)=>this.addMatch(o,e,s,i));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((n,s,o,a)=>{a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let s=Math.max(n.from,i),o=Math.min(n.to,r);if(o>s){let a=e.state.doc.lineAt(s),l=a.toa.from;s--)if(this.boundary.test(a.text[s-1-a.from])){c=s;break}for(;of.push(g.range($,p));if(a==l)for(this.regexp.lastIndex=c-a.from;(Q=this.regexp.exec(a.text))&&Q.indexthis.addMatch(p,e,$,d));t=t.update({filterFrom:c,filterTo:h,filter:($,p)=>$h,add:f})}}return t}}const zl=/x/.unicode!=null?"gu":"g",Ex=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,zl),Ax={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let na=null;function Ix(){var O;if(na==null&&typeof document<"u"&&document.body){let e=document.body.style;na=((O=e.tabSize)!==null&&O!==void 0?O:e.MozTabSize)!=null}return na||!1}const Ps=G.define({combine(O){let e=QO(O,{render:null,specialChars:Ex,addSpecialChars:null});return(e.replaceTabs=!Ix())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,zl)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,zl)),e}});function Dx(O={}){return[Ps.of(O),Lx()]}let $u=null;function Lx(){return $u||($u=qe.fromClass(class{constructor(O){this.view=O,this.decorations=E.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(O.state.facet(Ps)),this.decorations=this.decorator.createDeco(O)}makeDecorator(O){return new Cx({regexp:O.specialChars,decoration:(e,t,i)=>{let{doc:r}=t.state,n=Ne(e[0],0);if(n==9){let s=r.lineAt(i),o=t.state.tabSize,a=Mt(s.text,o,i-s.from);return E.replace({widget:new Fx((o-a%o)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[n]||(this.decorationCache[n]=E.replace({widget:new Bx(O,n)}))},boundary:O.replaceTabs?void 0:/[^]/})}update(O){let e=O.state.facet(Ps);O.startState.facet(Ps)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(O.view)):this.decorations=this.decorator.updateDeco(O,this.decorations)}},{decorations:O=>O.decorations}))}const Mx="•";function Nx(O){return O>=32?Mx:O==10?"␤":String.fromCharCode(9216+O)}class Bx extends dO{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Nx(this.code),i=e.state.phrase("Control character")+" "+(Ax[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class Fx extends dO{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function Hx(){return Jx}const Kx=E.line({class:"cm-activeLine"}),Jx=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.docChanged||O.selectionSet)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=-1,t=[];for(let i of O.state.selection.ranges){let r=O.lineBlockAt(i.head);r.from>e&&(t.push(Kx.range(r.from)),e=r.from)}return E.set(t)}},{decorations:O=>O.decorations});class eb extends dO{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}coordsAt(e){let t=e.firstChild?Mi(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),r=Xo(t[0],i.direction!="rtl"),n=parseInt(i.lineHeight);return r.bottom-r.top>n*1.5?{left:r.left,right:r.right,top:r.top,bottom:r.top+n}:r}ignoreEvent(){return!1}}function tb(O){return qe.fromClass(class{constructor(e){this.view=e,this.placeholder=O?E.set([E.widget({widget:new eb(O),side:1}).range(0)]):E.none}get decorations(){return this.view.state.doc.length?E.none:this.placeholder}},{decorations:e=>e.decorations})}const Rl=2e3;function Ob(O,e,t){let i=Math.min(e.line,t.line),r=Math.max(e.line,t.line),n=[];if(e.off>Rl||t.off>Rl||e.col<0||t.col<0){let s=Math.min(e.off,t.off),o=Math.max(e.off,t.off);for(let a=i;a<=r;a++){let l=O.doc.line(a);l.length<=o&&n.push(X.range(l.from+s,l.to+o))}}else{let s=Math.min(e.col,t.col),o=Math.max(e.col,t.col);for(let a=i;a<=r;a++){let l=O.doc.line(a),c=ul(l.text,s,O.tabSize,!0);if(c<0)n.push(X.cursor(l.to));else{let h=ul(l.text,o,O.tabSize);n.push(X.range(l.from+c,l.from+h))}}}return n}function ib(O,e){let t=O.coordsAtPos(O.viewport.from);return t?Math.round(Math.abs((t.left-e)/O.defaultCharacterWidth)):-1}function pu(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1),i=O.state.doc.lineAt(t),r=t-i.from,n=r>Rl?-1:r==i.length?ib(O,e.clientX):Mt(i.text,O.state.tabSize,t-i.from);return{line:i.number,col:n,off:r}}function rb(O,e){let t=pu(O,e),i=O.state.selection;return t?{update(r){if(r.docChanged){let n=r.changes.mapPos(r.startState.doc.line(t.line).from),s=r.state.doc.lineAt(n);t={line:s.number,col:t.col,off:Math.min(t.off,s.length)},i=i.map(r.changes)}},get(r,n,s){let o=pu(O,r);if(!o)return i;let a=Ob(O.state,t,o);return a.length?s?X.create(a.concat(i.ranges)):X.create(a):i}}:null}function nb(O){let e=(O==null?void 0:O.eventFilter)||(t=>t.altKey&&t.button==0);return U.mouseSelectionStyle.of((t,i)=>e(i)?rb(t,i):null)}const sb={Alt:[18,O=>!!O.altKey],Control:[17,O=>!!O.ctrlKey],Shift:[16,O=>!!O.shiftKey],Meta:[91,O=>!!O.metaKey]},ob={style:"cursor: crosshair"};function ab(O={}){let[e,t]=sb[O.key||"Alt"],i=qe.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventObservers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[i,U.contentAttributes.of(r=>{var n;return!((n=r.plugin(i))===null||n===void 0)&&n.isDown?ob:null})]}const hr="-10000px";class Fp{constructor(e,t,i,r){this.facet=t,this.createTooltipView=i,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s);let n=null;this.tooltipViews=this.tooltips.map(s=>n=i(s,n))}update(e,t){var i;let r=e.state.facet(this.facet),n=r.filter(a=>a);if(r===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let s=[],o=t?[]:null;for(let a=0;at[l]=a),t.length=o.length),this.input=r,this.tooltips=n,this.tooltipViews=s,!0}}function lb(O){let{win:e}=O;return{top:0,left:0,bottom:e.innerHeight,right:e.innerWidth}}const sa=G.define({combine:O=>{var e,t,i;return{position:C.ios?"absolute":((e=O.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=O.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=O.find(r=>r.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||lb}}}),mu=new WeakMap,Fc=qe.fromClass(class{constructor(O){this.view=O,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=O.state.facet(sa);this.position=e.position,this.parent=e.parent,this.classes=O.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Fp(O,Hc,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),O.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let O of this.manager.tooltipViews)this.intersectionObserver.observe(O.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(O){O.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(O,this.above);e&&this.observeIntersection();let t=e||O.geometryChanged,i=O.state.facet(sa);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(O,e){let t=O.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),O.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let r=document.createElement("div");r.className="cm-tooltip-arrow",t.dom.insertBefore(r,i)}return t.dom.style.position=this.position,t.dom.style.top=hr,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var O,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(O=i.destroy)===null||O===void 0||O.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let O=this.view.dom.getBoundingClientRect(),e=1,t=1,i=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(C.gecko)i=r.offsetParent!=this.container.ownerDocument.body;else if(r.style.top==hr&&r.style.left=="0px"){let n=r.getBoundingClientRect();i=Math.abs(n.top+1e4)>1||Math.abs(n.left)>1}}if(i||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(e=r.width/this.parent.offsetWidth,t=r.height/this.parent.offsetHeight)}else({scaleX:e,scaleY:t}=this.view.viewState);return{editor:O,parent:this.parent?this.container.getBoundingClientRect():O,pos:this.manager.tooltips.map((r,n)=>{let s=this.manager.tooltipViews[n];return s.getCoords?s.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(sa).tooltipSpace(this.view),scaleX:e,scaleY:t,makeAbsolute:i}}writeMeasure(O){var e;if(O.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let o of this.manager.tooltipViews)o.dom.style.position="absolute"}let{editor:t,space:i,scaleX:r,scaleY:n}=O,s=[];for(let o=0;o=Math.min(t.bottom,i.bottom)||h.rightMath.min(t.right,i.right)+.1){c.style.top=hr;continue}let Q=a.arrow?l.dom.querySelector(".cm-tooltip-arrow"):null,d=Q?7:0,$=f.right-f.left,p=(e=mu.get(l))!==null&&e!==void 0?e:f.bottom-f.top,g=l.offset||hb,P=this.view.textDirection==xe.LTR,y=f.width>i.right-i.left?P?i.left:i.right-f.width:P?Math.min(h.left-(Q?14:0)+g.x,i.right-$):Math.max(i.left,h.left-$+(Q?14:0)-g.x),w=this.above[o];!a.strictSide&&(w?h.top-(f.bottom-f.top)-g.yi.bottom)&&w==i.bottom-h.bottom>h.top-i.top&&(w=this.above[o]=!w);let b=(w?h.top-i.top:i.bottom-h.bottom)-d;if(by&&D.topT&&(T=w?D.top-p-2-d:D.bottom+d+2);if(this.position=="absolute"?(c.style.top=(T-O.parent.top)/n+"px",c.style.left=(y-O.parent.left)/r+"px"):(c.style.top=T/n+"px",c.style.left=y/r+"px"),Q){let D=h.left+(P?g.x:-g.x)-(y+14-7);Q.style.left=D/r+"px"}l.overlap!==!0&&s.push({left:y,top:T,right:Y,bottom:T+p}),c.classList.toggle("cm-tooltip-above",w),c.classList.toggle("cm-tooltip-below",!w),l.positioned&&l.positioned(O.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let O of this.manager.tooltipViews)O.dom.style.top=hr}},{eventObservers:{scroll(){this.maybeMeasure()}}}),cb=U.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),hb={x:0,y:0},Hc=G.define({enables:[Fc,cb]}),js=G.define({combine:O=>O.reduce((e,t)=>e.concat(t),[])});class bo{static create(e){return new bo(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Fp(e,js,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let r=i[e];if(r!==void 0){if(t===void 0)t=r;else if(t!==r)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const fb=Hc.compute([js],O=>{let e=O.facet(js);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:bo.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class ub{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eo.bottom||t.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(r)).find(c=>c.from<=r&&c.to>=r),l=a&&a.dir==xe.RTL?-1:1;n=t.x{this.pending==o&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>Tt(e.state,a,"hover tooltip"))}else s&&!(Array.isArray(s)&&!s.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(s)?s:[s])})}get tooltip(){let e=this.view.plugin(Fc),t=e?e.manager.tooltips.findIndex(i=>i.create==bo.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:r,tooltip:n}=this;if(r.length&&n&&!Qb(n.dom,e)||this.pending){let{pos:s}=r[0]||this.pending,o=(i=(t=r[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:s;(s==o?this.view.posAtCoords(this.lastMove)!=s:!db(this.view,s,o,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Ln=4;function Qb(O,e){let t=O.getBoundingClientRect();return e.clientX>=t.left-Ln&&e.clientX<=t.right+Ln&&e.clientY>=t.top-Ln&&e.clientY<=t.bottom+Ln}function db(O,e,t,i,r,n){let s=O.scrollDOM.getBoundingClientRect(),o=O.documentTop+O.documentPadding.top+O.contentHeight;if(s.left>i||s.rightr||Math.min(s.bottom,o)=e&&a<=t}function $b(O,e={}){let t=H.define(),i=Ie.define({create(){return[]},update(r,n){if(r.length&&(e.hideOnChange&&(n.docChanged||n.selection)?r=[]:e.hideOn&&(r=r.filter(s=>!e.hideOn(n,s))),n.docChanged)){let s=[];for(let o of r){let a=n.changes.mapPos(o.pos,-1,Fe.TrackDel);if(a!=null){let l=Object.assign(Object.create(null),o);l.pos=a,l.end!=null&&(l.end=n.changes.mapPos(l.end)),s.push(l)}}r=s}for(let s of n.effects)s.is(t)&&(r=s.value),s.is(pb)&&(r=[]);return r},provide:r=>js.from(r)});return[i,qe.define(r=>new ub(r,O,i,t,e.hoverTime||300)),fb]}function Hp(O,e){let t=O.plugin(Fc);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const pb=H.define(),gu=G.define({combine(O){let e,t;for(let i of O)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Kr(O,e){let t=O.plugin(Kp),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const Kp=qe.fromClass(class{constructor(O){this.input=O.state.facet(Jr),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(O));let e=O.state.facet(gu);this.top=new Mn(O,!0,e.topContainer),this.bottom=new Mn(O,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(O){let e=O.state.facet(gu);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Mn(O.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Mn(O.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=O.state.facet(Jr);if(t!=this.input){let i=t.filter(a=>a),r=[],n=[],s=[],o=[];for(let a of i){let l=this.specs.indexOf(a),c;l<0?(c=a(O.view),o.push(c)):(c=this.panels[l],c.update&&c.update(O)),r.push(c),(c.top?n:s).push(c)}this.specs=i,this.panels=r,this.top.sync(n),this.bottom.sync(s);for(let a of o)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(O)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:O=>U.scrollMargins.of(e=>{let t=e.plugin(O);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Mn{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Su(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Su(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Su(O){let e=O.nextSibling;return O.remove(),e}const Jr=G.define({enables:Kp});class bO extends pi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}bO.prototype.elementClass="";bO.prototype.toDOM=void 0;bO.prototype.mapMode=Fe.TrackBefore;bO.prototype.startSide=bO.prototype.endSide=-1;bO.prototype.point=!0;const Xs=G.define(),mb={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>le.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},Ur=G.define();function gb(O){return[Jp(),Ur.of(Object.assign(Object.assign({},mb),O))]}const Vl=G.define({combine:O=>O.some(e=>e)});function Jp(O){let e=[Sb];return O&&O.fixed===!1&&e.push(Vl.of(!0)),e}const Sb=qe.fromClass(class{constructor(O){this.view=O,this.prevViewport=O.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=O.state.facet(Ur).map(e=>new Xu(O,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!O.state.facet(Vl),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),O.scrollDOM.insertBefore(this.dom,O.contentDOM)}update(O){if(this.updateGutters(O)){let e=this.prevViewport,t=O.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}O.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(Vl)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=O.view.viewport}syncGutters(O){let e=this.dom.nextSibling;O&&this.dom.remove();let t=le.iter(this.view.state.facet(Xs),this.view.viewport.from),i=[],r=this.gutters.map(n=>new Pb(n,this.view.viewport,-this.view.documentPadding.top));for(let n of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(n.type)){let s=!0;for(let o of n.type)if(o.type==ht.Text&&s){Ul(t,i,o.from);for(let a of r)a.line(this.view,o,i);s=!1}else if(o.widget)for(let a of r)a.widget(this.view,o)}else if(n.type==ht.Text){Ul(t,i,n.from);for(let s of r)s.line(this.view,n,i)}else if(n.widget)for(let s of r)s.widget(this.view,n);for(let n of r)n.finish();O&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(O){let e=O.startState.facet(Ur),t=O.state.facet(Ur),i=O.docChanged||O.heightChanged||O.viewportChanged||!le.eq(O.startState.facet(Xs),O.state.facet(Xs),O.view.viewport.from,O.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(O)&&(i=!0);else{i=!0;let r=[];for(let n of t){let s=e.indexOf(n);s<0?r.push(new Xu(this.view,n)):(this.gutters[s].update(O),r.push(this.gutters[s]))}for(let n of this.gutters)n.dom.remove(),r.indexOf(n)<0&&n.destroy();for(let n of r)this.dom.appendChild(n.dom);this.gutters=r}return i}destroy(){for(let O of this.gutters)O.destroy();this.dom.remove()}},{provide:O=>U.scrollMargins.of(e=>{let t=e.plugin(O);return!t||t.gutters.length==0||!t.fixed?null:e.textDirection==xe.LTR?{left:t.dom.offsetWidth*e.scaleX}:{right:t.dom.offsetWidth*e.scaleX}})});function Pu(O){return Array.isArray(O)?O:[O]}function Ul(O,e,t){for(;O.value&&O.from<=t;)O.from==t&&e.push(O.value),O.next()}class Pb{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=le.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:r}=this,n=(t.top-this.height)/e.scaleY,s=t.height/e.scaleY;if(this.i==r.elements.length){let o=new em(e,s,n,i);r.elements.push(o),r.dom.appendChild(o.dom)}else r.elements[this.i].update(e,s,n,i);this.height=t.bottom,this.i++}line(e,t,i){let r=[];Ul(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let s=this.gutter;r.length==0&&!s.config.renderEmptyElements||this.addElement(e,t,r)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t);i&&this.addElement(e,t,[i])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Xu{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,r=>{let n=r.target,s;if(n!=this.dom&&this.dom.contains(n)){for(;n.parentNode!=this.dom;)n=n.parentNode;let a=n.getBoundingClientRect();s=(a.top+a.bottom)/2}else s=r.clientY;let o=e.lineBlockAtHeight(s-e.documentTop);t.domEventHandlers[i](e,o,r)&&r.preventDefault()});this.markers=Pu(t.markers(e)),t.initialSpacer&&(this.spacer=new em(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Pu(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let i=e.view.viewport;return!le.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class em{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),Xb(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let i="cm-gutterElement",r=this.dom.firstChild;for(let n=0,s=0;;){let o=s,a=nn(o,a,l)||s(o,a,l):s}return i}})}});class oa extends bO{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function aa(O,e){return O.state.facet(Yi).formatNumber(e,O.state)}const xb=Ur.compute([Yi],O=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(yb)},lineMarker(e,t,i){return i.some(r=>r.toDOM)?null:new oa(aa(e,e.state.doc.lineAt(t.from).number))},widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(Yi)!=e.state.facet(Yi),initialSpacer(e){return new oa(aa(e,yu(e.state.doc.lines)))},updateSpacer(e,t){let i=aa(t.view,yu(t.view.state.doc.lines));return i==e.number?e:new oa(i)},domEventHandlers:O.facet(Yi).domEventHandlers}));function bb(O={}){return[Yi.of(O),Jp(),xb]}function yu(O){let e=9;for(;e{let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.head).from;r>t&&(t=r,e.push(wb.range(r)))}return le.of(e)});function Zb(){return Tb}const tm=1024;let vb=0;class qt{constructor(e,t){this.from=e,this.to=t}}class M{constructor(e={}){this.id=vb++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=je.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}M.closedBy=new M({deserialize:O=>O.split(" ")});M.openedBy=new M({deserialize:O=>O.split(" ")});M.group=new M({deserialize:O=>O.split(" ")});M.isolate=new M({deserialize:O=>{if(O&&O!="rtl"&&O!="ltr"&&O!="auto")throw new RangeError("Invalid value for isolate: "+O);return O||"auto"}});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});class en{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[M.mounted.id]}}const Wb=Object.create(null);class je{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Wb,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new je(e.name||"",t,e.id,i);if(e.props){for(let n of e.props)if(Array.isArray(n)||(n=n(r)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(M.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(M.group),n=-1;n<(r?r.length:0);n++){let s=t[n<0?i.name:r[n]];if(s)return s}}}}je.none=new je("",Object.create(null),0,8);class Pn{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(s|ge.IncludeAnonymous);;){let l=!1;if(a.from<=n&&a.to>=r&&(!o&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;l=!0}for(;l&&i&&(o||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;l=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:eh(je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new Qe(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new Qe(je.none,t,i,r)))}static build(e){return zb(e)}}Qe.empty=new Qe(je.none,[],[],0);class Kc{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Kc(this.buffer,this.index)}}class JO{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return je.none}toString(){let e=[];for(let t=0;t0));a=s[a+3]);return o}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),s=0;for(let o=e,a=0;o=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function tn(O,e,t,i){for(var r;O.from==O.to||(t<1?O.from>=e:O.from>e)||(t>-1?O.to<=e:O.to0?o.length:-1;e!=l;e+=t){let c=o[e],h=a[e]+s.from;if(Om(r,i,h,h+c.length)){if(c instanceof JO){if(n&ge.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,t,i-h,r);if(f>-1)return new lO(new kb(s,c,e,h),null,f)}else if(n&ge.IncludeAnonymous||!c.type.isAnonymous||Jc(c)){let f;if(!(n&ge.IgnoreMounts)&&(f=en.get(c))&&!f.overlay)return new st(f.tree,h,e,s);let Q=new st(c,h,e,s);return n&ge.IncludeAnonymous||!Q.type.isAnonymous?Q:Q.nextChild(t<0?c.children.length-1:0,t,i,r)}}}if(n&ge.IncludeAnonymous||!s.type.isAnonymous||(s.index>=0?e=s.index+t:e=t<0?-1:s._parent._tree.children.length,s=s._parent,!s))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&ge.IgnoreOverlays)&&(r=en.get(this._tree))&&r.overlay){let n=e-this.from;for(let{from:s,to:o}of r.overlay)if((t>0?s<=n:s=n:o>n))return new st(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function bu(O,e,t,i){let r=O.cursor(),n=[];if(!r.firstChild())return n;if(t!=null){for(let s=!1;!s;)if(s=r.type.is(t),!r.nextSibling())return n}for(;;){if(i!=null&&r.type.is(i))return n;if(r.type.is(e)&&n.push(r.node),!r.nextSibling())return i==null?n:[]}}function _l(O,e,t=e.length-1){for(let i=O.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class kb{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class lO extends im{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new lO(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&ge.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new lO(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new lO(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new lO(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let s=i.buffer[this.index+1];e.push(i.slice(r,n,s)),t.push(0)}return new Qe(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function rm(O){if(!O.length)return null;let e=0,t=O[0];for(let n=1;nt.from||s.to=e){let o=new st(s.tree,s.overlay[0].from+n.from,-1,n);(r||(r=[i])).push(tn(o,e,t,!1))}}return r?rm(r):i}class Gs{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof st)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=i+r.buffer[e+1],this.to=i+r.buffer[e+2],!0}yield(e){return e?e instanceof st?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:r}=this.buffer,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,i);return n<0?!1:(this.stack.push(this.index),this.yieldBuf(n))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&ge.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ge.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ge.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let n=t+e,s=e<0?-1:i._tree.children.length;n!=s;n+=e){let o=i._tree.children[n];if(this.mode&ge.IncludeAnonymous||o instanceof JO||!o.type.isAnonymous||Jc(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==r){if(r==this.index)return s;t=s,i=n+1;break e}r=this.stack[--n]}for(let r=i;r=0;n--){if(n<0)return _l(this.node,e,r);let s=i[t.buffer[this.stack[n]]];if(!s.isAnonymous){if(e[r]&&e[r]!=s.name)return!1;r--}}return!0}}function Jc(O){return O.children.some(e=>e instanceof JO||!e.type.isAnonymous||Jc(e))}function zb(O){var e;let{buffer:t,nodeSet:i,maxBufferLength:r=tm,reused:n=[],minRepeatType:s=i.types.length}=O,o=Array.isArray(t)?new Kc(t,t.length):t,a=i.types,l=0,c=0;function h(b,T,Y,D,Oe,K){let{id:F,start:N,end:ce,size:se}=o,Se=c;for(;se<0;)if(o.next(),se==-1){let be=n[F];Y.push(be),D.push(N-b);return}else if(se==-3){l=F;return}else if(se==-4){c=F;return}else throw new RangeError(`Unrecognized record size: ${se}`);let fe=a[F],ie,ee,ze=N-b;if(ce-N<=r&&(ee=p(o.pos-T,Oe))){let be=new Uint16Array(ee.size-ee.skip),Re=o.pos-ee.size,We=be.length;for(;o.pos>Re;)We=g(ee.start,be,We);ie=new JO(be,ce-ee.start,i),ze=ee.start-b}else{let be=o.pos-se;o.next();let Re=[],We=[],Ht=F>=s?F:-1,WO=0,xi=ce;for(;o.pos>be;)Ht>=0&&o.id==Ht&&o.size>=0?(o.end<=xi-r&&(d(Re,We,N,WO,o.end,xi,Ht,Se),WO=Re.length,xi=o.end),o.next()):K>2500?f(N,be,Re,We):h(N,be,Re,We,Ht,K+1);if(Ht>=0&&WO>0&&WO-1&&WO>0){let Wt=Q(fe);ie=eh(fe,Re,We,0,Re.length,0,ce-N,Wt,Wt)}else ie=$(fe,Re,We,ce-N,Se-ce)}Y.push(ie),D.push(ze)}function f(b,T,Y,D){let Oe=[],K=0,F=-1;for(;o.pos>T;){let{id:N,start:ce,end:se,size:Se}=o;if(Se>4)o.next();else{if(F>-1&&ce=0;se-=3)N[Se++]=Oe[se],N[Se++]=Oe[se+1]-ce,N[Se++]=Oe[se+2]-ce,N[Se++]=Se;Y.push(new JO(N,Oe[2]-ce,i)),D.push(ce-b)}}function Q(b){return(T,Y,D)=>{let Oe=0,K=T.length-1,F,N;if(K>=0&&(F=T[K])instanceof Qe){if(!K&&F.type==b&&F.length==D)return F;(N=F.prop(M.lookAhead))&&(Oe=Y[K]+F.length+N)}return $(b,T,Y,D,Oe)}}function d(b,T,Y,D,Oe,K,F,N){let ce=[],se=[];for(;b.length>D;)ce.push(b.pop()),se.push(T.pop()+Y-Oe);b.push($(i.types[F],ce,se,K-Oe,N-K)),T.push(Oe-Y)}function $(b,T,Y,D,Oe=0,K){if(l){let F=[M.contextHash,l];K=K?[F].concat(K):[F]}if(Oe>25){let F=[M.lookAhead,Oe];K=K?[F].concat(K):[F]}return new Qe(b,T,Y,D,K)}function p(b,T){let Y=o.fork(),D=0,Oe=0,K=0,F=Y.end-r,N={size:0,start:0,skip:0};e:for(let ce=Y.pos-b;Y.pos>ce;){let se=Y.size;if(Y.id==T&&se>=0){N.size=D,N.start=Oe,N.skip=K,K+=4,D+=4,Y.next();continue}let Se=Y.pos-se;if(se<0||Se=s?4:0,ie=Y.start;for(Y.next();Y.pos>Se;){if(Y.size<0)if(Y.size==-3)fe+=4;else break e;else Y.id>=s&&(fe+=4);Y.next()}Oe=ie,D+=se,K+=fe}return(T<0||D==b)&&(N.size=D,N.start=Oe,N.skip=K),N.size>4?N:void 0}function g(b,T,Y){let{id:D,start:Oe,end:K,size:F}=o;if(o.next(),F>=0&&D4){let ce=o.pos-(F-4);for(;o.pos>ce;)Y=g(b,T,Y)}T[--Y]=N,T[--Y]=K-b,T[--Y]=Oe-b,T[--Y]=D}else F==-3?l=D:F==-4&&(c=D);return Y}let P=[],y=[];for(;o.pos>0;)h(O.start||0,O.bufferStart||0,P,y,-1,0);let w=(e=O.length)!==null&&e!==void 0?e:P.length?y[0]+P[0].length:0;return new Qe(a[O.topID],P.reverse(),y.reverse(),w)}const wu=new WeakMap;function ys(O,e){if(!O.isAnonymous||e instanceof JO||e.type!=O)return 1;let t=wu.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=O||!(i instanceof Qe)){t=1;break}t+=ys(O,i)}wu.set(e,t)}return t}function eh(O,e,t,i,r,n,s,o,a){let l=0;for(let d=i;d=c)break;T+=Y}if(y==w+1){if(T>c){let Y=d[w];Q(Y.children,Y.positions,0,Y.children.length,$[w]+P);continue}h.push(d[w])}else{let Y=$[y-1]+d[y-1].length-b;h.push(eh(O,d,$,w,y,b,Y,null,a))}f.push(b+P-n)}}return Q(e,t,i,r,0),(o||a)(h,f,s)}class th{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof lO?this.setBuffer(e.context.buffer,e.index,t):e instanceof st&&this.map.set(e.tree,t)}get(e){return e instanceof lO?this.getBuffer(e.context.buffer,e.index):e instanceof st?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class PO{constructor(e,t,i,r,n=!1,s=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(s?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let r=[new PO(0,e.length,e,0,!1,i)];for(let n of t)n.to>e.length&&r.push(n);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,s=e.length?e[0]:null;for(let o=0,a=0,l=0;;o++){let c=o=i)for(;s&&s.from=f.from||h<=f.to||l){let Q=Math.max(f.from,a)-l,d=Math.min(f.to,h)-l;f=Q>=d?null:new PO(Q,d,f.tree,f.offset+l,o>0,!!c)}if(f&&r.push(f),s.to>h)break;s=nnew qt(r.from,r.to)):[new qt(0,0)]:[new qt(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let n=r.advance();if(n)return n}}}class Rb{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function vO(O){return(e,t,i,r)=>new Ub(e,O,t,i,r)}class Tu{constructor(e,t,i,r,n){this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.from=n}}function Zu(O){if(!O.length||O.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(O))}class Vb{constructor(e,t,i,r,n,s,o){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=s,this.prev=o,this.depth=0,this.ranges=[]}}const jl=new M({perNode:!0});class Ub{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new Qe(i.type,i.children,i.positions,i.length,i.propValues.concat([[jl,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[M.mounted.id]=new en(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)o=!1;else if(e.hasNode(r)){if(t){let l=t.mounts.find(c=>c.frag.from<=r.from&&c.frag.to>=r.to&&c.mount.overlay);if(l)for(let c of l.mount.overlay){let h=c.from+l.pos,f=c.to+l.pos;h>=r.from&&f<=r.to&&!t.ranges.some(Q=>Q.fromh)&&t.ranges.push({from:h,to:f})}}o=!1}else if(i&&(s=_b(i.ranges,r.from,r.to)))o=s!=2;else if(!r.type.isAnonymous&&(n=this.nest(r,this.input))&&(r.fromnew qt(h.from-r.from,h.to-r.from)):null,r.tree,c.length?c[0].from:r.from)),n.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):o=!1}}else t&&(a=t.predicate(r))&&(a===!0&&(a=new qt(r.from,r.to)),a.fromnew qt(c.from-t.start,c.to-t.start)),t.target,l[0].from))),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function _b(O,e,t){for(let i of O){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function vu(O,e,t,i,r,n){if(e=e&&t.enter(i,1,ge.IgnoreOverlays|ge.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof Qe)t=t.children[0];else break}return!1}}let Gb=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(jl))!==null&&t!==void 0?t:i.to,this.inner=new Wu(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(jl))!==null&&e!==void 0?e:t.to,this.inner=new Wu(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let n=this.inner.cursor.node;n;n=n.parent){let s=(i=n.tree)===null||i===void 0?void 0:i.prop(M.mounted);if(s&&s.parser==t)for(let o=this.fragI;o=n.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:n.from-a.offset,mount:s})}}}return r}};function ku(O,e){let t=null,i=e;for(let r=1,n=0;r=o)break;a.to<=s||(t||(i=t=e.slice()),a.fromo&&t.splice(n+1,0,new qt(o,a.to))):a.to>o?t[n--]=new qt(o,a.to):t.splice(n--,1))}}return i}function Cb(O,e,t,i){let r=0,n=0,s=!1,o=!1,a=-1e9,l=[];for(;;){let c=r==O.length?1e9:s?O[r].to:O[r].from,h=n==e.length?1e9:o?e[n].to:e[n].from;if(s!=o){let f=Math.max(a,t),Q=Math.min(c,h,i);fnew qt(f.from+i,f.to+i)),h=Cb(e,c,a,l);for(let f=0,Q=a;;f++){let d=f==h.length,$=d?l:h[f].from;if($>Q&&t.push(new PO(Q,$,r.tree,-s,n.from>=Q||n.openStart,n.to<=$||n.openEnd)),d)break;Q=h[f].to}}else t.push(new PO(a,l,r.tree,-s,n.from>=s||n.openStart,n.to<=o||n.openEnd))}return t}let Eb=0;class Et{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=Eb++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new Et([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new Cs;return t=>t.modified.indexOf(e)>-1?t:Cs.get(t.base||t,t.modified.concat(e).sort((i,r)=>i.id-r.id))}}let Ab=0;class Cs{constructor(){this.instances=[],this.id=Ab++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(o=>o.base==e&&Ib(t,o.modified));if(i)return i;let r=[],n=new Et(r,e,t);for(let o of t)o.instances.push(n);let s=Db(t);for(let o of e.set)if(!o.modified.length)for(let a of s)r.push(Cs.get(o,a));return n}}function Ib(O,e){return O.length==e.length&&O.every((t,i)=>t==e[i])}function Db(O){let e=[[]];for(let t=0;ti.length-t.length)}function De(O){let e=Object.create(null);for(let t in O){let i=O[t];Array.isArray(i)||(i=[i]);for(let r of t.split(" "))if(r){let n=[],s=2,o=r;for(let h=0;;){if(o=="..."&&h>0&&h+3==r.length){s=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!f)throw new RangeError("Invalid path: "+r);if(n.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==r.length)break;let Q=r[h++];if(h==r.length&&Q=="!"){s=0;break}if(Q!="/")throw new RangeError("Invalid path: "+r);o=r.slice(h)}let a=n.length-1,l=n[a];if(!l)throw new RangeError("Invalid path: "+r);let c=new Es(i,s,a>0?n.slice(0,a):null);e[l]=c.sort(e[l])}}return nm.add(e)}const nm=new M;class Es{constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let s=r;for(let o of n)for(let a of o.set){let l=t[a.id];if(l){s=s?s+" "+l:l;break}}return s},scope:i}}function Lb(O,e){let t=null;for(let i of O){let r=i.style(e);r&&(t=t?t+" "+r:r)}return t}function Mb(O,e,t,i=0,r=O.length){let n=new Nb(i,Array.isArray(e)?e:[e],t);n.highlightRange(O.cursor(),i,r,"",n.highlighters),n.flush(r)}class Nb{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,n){let{type:s,from:o,to:a}=e;if(o>=i||a<=t)return;s.isTop&&(n=this.highlighters.filter(Q=>!Q.scope||Q.scope(s)));let l=r,c=Bb(e)||Es.empty,h=Lb(n,c.tags);if(h&&(l&&(l+=" "),l+=h,c.mode==1&&(r+=(r?" ":"")+h)),this.startSpan(Math.max(t,o),l),c.opaque)return;let f=e.tree&&e.tree.prop(M.mounted);if(f&&f.overlay){let Q=e.node.enter(f.overlay[0].from+o,1),d=this.highlighters.filter(p=>!p.scope||p.scope(f.tree.type)),$=e.firstChild();for(let p=0,g=o;;p++){let P=p=y||!e.nextSibling())););if(!P||y>i)break;g=P.to+o,g>t&&(this.highlightRange(Q.cursor(),Math.max(t,P.from+o),Math.min(i,g),"",d),this.startSpan(Math.min(i,g),l))}$&&e.parent()}else if(e.firstChild()){f&&(r="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,n),this.startSpan(Math.min(i,e.to),l)}while(e.nextSibling());e.parent()}}}function Bb(O){let e=O.type.prop(nm);for(;e&&e.context&&!O.matchContext(e.context);)e=e.next;return e||null}const V=Et.define,Bn=V(),VO=V(),qu=V(VO),zu=V(VO),UO=V(),Fn=V(UO),la=V(UO),iO=V(),ri=V(iO),tO=V(),OO=V(),Gl=V(),fr=V(Gl),Hn=V(),u={comment:Bn,lineComment:V(Bn),blockComment:V(Bn),docComment:V(Bn),name:VO,variableName:V(VO),typeName:qu,tagName:V(qu),propertyName:zu,attributeName:V(zu),className:V(VO),labelName:V(VO),namespace:V(VO),macroName:V(VO),literal:UO,string:Fn,docString:V(Fn),character:V(Fn),attributeValue:V(Fn),number:la,integer:V(la),float:V(la),bool:V(UO),regexp:V(UO),escape:V(UO),color:V(UO),url:V(UO),keyword:tO,self:V(tO),null:V(tO),atom:V(tO),unit:V(tO),modifier:V(tO),operatorKeyword:V(tO),controlKeyword:V(tO),definitionKeyword:V(tO),moduleKeyword:V(tO),operator:OO,derefOperator:V(OO),arithmeticOperator:V(OO),logicOperator:V(OO),bitwiseOperator:V(OO),compareOperator:V(OO),updateOperator:V(OO),definitionOperator:V(OO),typeOperator:V(OO),controlOperator:V(OO),punctuation:Gl,separator:V(Gl),bracket:fr,angleBracket:V(fr),squareBracket:V(fr),paren:V(fr),brace:V(fr),content:iO,heading:ri,heading1:V(ri),heading2:V(ri),heading3:V(ri),heading4:V(ri),heading5:V(ri),heading6:V(ri),contentSeparator:V(iO),list:V(iO),quote:V(iO),emphasis:V(iO),strong:V(iO),link:V(iO),monospace:V(iO),strikethrough:V(iO),inserted:V(),deleted:V(),changed:V(),invalid:V(),meta:Hn,documentMeta:V(Hn),annotation:V(Hn),processingInstruction:V(Hn),definition:Et.defineModifier(),constant:Et.defineModifier(),function:Et.defineModifier(),standard:Et.defineModifier(),local:Et.defineModifier(),special:Et.defineModifier()};sm([{tag:u.link,class:"tok-link"},{tag:u.heading,class:"tok-heading"},{tag:u.emphasis,class:"tok-emphasis"},{tag:u.strong,class:"tok-strong"},{tag:u.keyword,class:"tok-keyword"},{tag:u.atom,class:"tok-atom"},{tag:u.bool,class:"tok-bool"},{tag:u.url,class:"tok-url"},{tag:u.labelName,class:"tok-labelName"},{tag:u.inserted,class:"tok-inserted"},{tag:u.deleted,class:"tok-deleted"},{tag:u.literal,class:"tok-literal"},{tag:u.string,class:"tok-string"},{tag:u.number,class:"tok-number"},{tag:[u.regexp,u.escape,u.special(u.string)],class:"tok-string2"},{tag:u.variableName,class:"tok-variableName"},{tag:u.local(u.variableName),class:"tok-variableName tok-local"},{tag:u.definition(u.variableName),class:"tok-variableName tok-definition"},{tag:u.special(u.variableName),class:"tok-variableName2"},{tag:u.definition(u.propertyName),class:"tok-propertyName tok-definition"},{tag:u.typeName,class:"tok-typeName"},{tag:u.namespace,class:"tok-namespace"},{tag:u.className,class:"tok-className"},{tag:u.macroName,class:"tok-macroName"},{tag:u.propertyName,class:"tok-propertyName"},{tag:u.operator,class:"tok-operator"},{tag:u.comment,class:"tok-comment"},{tag:u.meta,class:"tok-meta"},{tag:u.invalid,class:"tok-invalid"},{tag:u.punctuation,class:"tok-punctuation"}]);var ca;const ui=new M;function ih(O){return G.define({combine:O?e=>e.concat(O):void 0})}const rh=new M;class zt{constructor(e,t,i=[],r=""){this.data=e,this.name=r,re.prototype.hasOwnProperty("tree")||Object.defineProperty(re.prototype,"tree",{get(){return de(this)}}),this.parser=t,this.extension=[ei.of(this),re.languageData.of((n,s,o)=>{let a=Ru(n,s,o),l=a.type.prop(ui);if(!l)return[];let c=n.facet(l),h=a.type.prop(rh);if(h){let f=a.resolve(s-a.from,o);for(let Q of h)if(Q.test(f,n)){let d=n.facet(Q.facet);return Q.type=="replace"?d:d.concat(c)}}return c})].concat(i)}isActiveAt(e,t,i=-1){return Ru(e,t,i).type.prop(ui)==this.data}findRegions(e){let t=e.facet(ei);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=(n,s)=>{if(n.prop(ui)==this.data){i.push({from:s,to:s+n.length});return}let o=n.prop(M.mounted);if(o){if(o.tree.prop(ui)==this.data){if(o.overlay)for(let a of o.overlay)i.push({from:a.from+s,to:a.to+s});else i.push({from:s,to:s+n.length});return}else if(o.overlay){let a=i.length;if(r(o.tree,o.overlay[0].from+s),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ee(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function de(O){let e=O.field(zt.state,!1);return e?e.tree:Qe.empty}class Fb{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let ur=null;class On{constructor(e,t,i=[],r,n,s,o,a){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=n,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new On(e,t,[],Qe.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Fb(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Qe.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(PO.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=ur;ur=this;try{return e()}finally{ur=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Vu(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:n,viewport:s,skipped:o}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((l,c,h,f)=>a.push({fromA:l,toA:c,fromB:h,toB:f})),i=PO.applyChanges(i,a),r=Qe.empty,n=0,s={from:e.mapPos(s.from,-1),to:e.mapPos(s.to,1)},this.skipped.length){o=[];for(let l of this.skipped){let c=e.mapPos(l.from,1),h=e.mapPos(l.to,-1);ce.from&&(this.fragments=Vu(this.fragments,r,n),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Oh{createParse(t,i,r){let n=r[0].from,s=r[r.length-1].to;return{parsedPos:n,advance(){let a=ur;if(a){for(let l of r)a.tempSkipped.push(l);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=s,new Qe(je.none,[],[],s-n)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return ur}}function Vu(O,e,t){return PO.applyChanges(O,[{fromA:e,toA:t,fromB:e,toB:t}])}class Bi{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Bi(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=On.create(e.facet(ei).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Bi(i)}}zt.state=Ie.define({create:Bi.init,update(O,e){for(let t of e.effects)if(t.is(zt.setState))return t.value;return e.startState.facet(ei)!=e.state.facet(ei)?Bi.init(e.state):O.apply(e)}});let om=O=>{let e=setTimeout(()=>O(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(om=O=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(O,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const ha=typeof navigator<"u"&&(!((ca=navigator.scheduling)===null||ca===void 0)&&ca.isInputPending)?()=>navigator.scheduling.isInputPending():null,Hb=qe.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(zt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(zt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=om(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=n.context.work(()=>ha&&ha()||Date.now()>s,r+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(n.context.takeTree(),this.view.dispatch({effects:zt.setState.of(new Bi(n.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(n.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Tt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ei=G.define({combine(O){return O.length?O[0]:null},enables:O=>[zt.state,Hb,U.contentAttributes.compute([O],e=>{let t=e.facet(O);return t&&t.name?{"data-language":t.name}:{}})]});class tt{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class As{constructor(e,t,i,r,n,s=void 0){this.name=e,this.alias=t,this.extensions=i,this.filename=r,this.loadFunc=n,this.support=s,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new As(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let i=/\.([^.]+)$/.exec(t);if(i){for(let r of e)if(r.extensions.indexOf(i[1])>-1)return r}return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(n=>n==t))return r;if(i)for(let r of e)for(let n of r.alias){let s=t.indexOf(n);if(s>-1&&(n.length>2||!/\w/.test(t[s-1])&&!/\w/.test(t[s+n.length])))return r}return null}}const Kb=G.define(),ir=G.define({combine:O=>{if(!O.length)return" ";let e=O[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(O[0]));return e}});function Is(O){let e=O.facet(ir);return e.charCodeAt(0)==9?O.tabSize*e.length:e.length}function rn(O,e){let t="",i=O.tabSize,r=O.facet(ir)[0];if(r==" "){for(;e>=i;)t+=" ",e-=i;r=" "}for(let n=0;n=e?Jb(O,t,e):null}class wo{constructor(e,t={}){this.state=e,this.options=t,this.unit=Is(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:n}=this.options;return r!=null&&r>=i.from&&r<=i.to?n&&r==e?{text:"",from:e}:(t<0?r-1&&(n+=s-this.countColumn(i,i.search(/\S|$/))),n}countColumn(e,t=e.length){return Mt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),n=this.options.overrideIndentation;if(n){let s=n(r);if(s>-1)return s}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const gt=new M;function Jb(O,e,t){let i=e.resolveStack(t),r=i.node.enterUnfinishedNodesBefore(t);if(r!=i.node){let n=[];for(let s=r;s!=i.node;s=s.parent)n.push(s);for(let s=n.length-1;s>=0;s--)i={node:n[s],next:i}}return am(i,O,t)}function am(O,e,t){for(let i=O;i;i=i.next){let r=tw(i.node);if(r)return r(sh.create(e,t,i))}return 0}function ew(O){return O.pos==O.options.simulateBreak&&O.options.simulateDoubleBreak}function tw(O){let e=O.type.prop(gt);if(e)return e;let t=O.firstChild,i;if(t&&(i=t.type.prop(M.closedBy))){let r=O.lastChild,n=r&&i.indexOf(r.name)>-1;return s=>lm(s,!0,1,void 0,n&&!ew(s)?r.from:void 0)}return O.parent==null?Ow:null}function Ow(){return 0}class sh extends wo{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new sh(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(iw(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return am(this.context.next,this.base,this.pos)}}function iw(O,e){for(let t=e;t;t=t.parent)if(O==t)return!0;return!1}function rw(O){let e=O.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let r=O.options.simulateBreak,n=O.state.doc.lineAt(t.from),s=r==null||r<=n.from?n.to:Math.min(n.to,r);for(let o=t.to;;){let a=e.childAfter(o);if(!a||a==i)return null;if(!a.type.isSkipped)return a.fromlm(i,e,t,O)}function lm(O,e,t,i,r){let n=O.textAfter,s=n.match(/^\s*/)[0].length,o=i&&n.slice(s,s+i.length)==i||r==O.pos+s,a=e?rw(O):null;return a?o?O.column(a.from):O.column(a.to):O.baseIndent+(o?0:O.unit*t)}const oh=O=>O.baseIndent;function Ce({except:O,units:e=1}={}){return t=>{let i=O&&O.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const nw=200;function sw(){return re.transactionFilter.of(O=>{if(!O.docChanged||!O.isUserEvent("input.type")&&!O.isUserEvent("input.complete"))return O;let e=O.startState.languageDataAt("indentOnInput",O.startState.selection.main.head);if(!e.length)return O;let t=O.newDoc,{head:i}=O.newSelection.main,r=t.lineAt(i);if(i>r.from+nw)return O;let n=t.sliceString(r.from,i);if(!e.some(l=>l.test(n)))return O;let{state:s}=O,o=-1,a=[];for(let{head:l}of s.selection.ranges){let c=s.doc.lineAt(l);if(c.from==o)continue;o=c.from;let h=nh(s,c.from);if(h==null)continue;let f=/^\s*/.exec(c.text)[0],Q=rn(s,h);f!=Q&&a.push({from:c.from,to:c.from+f.length,insert:Q})}return a.length?[O,{changes:a,sequential:!0}]:O})}const cm=G.define(),ot=new M;function $O(O){let e=O.firstChild,t=O.lastChild;return e&&e.tot)continue;if(n&&o.from=e&&l.to>t&&(n=l)}}return n}function aw(O){let e=O.lastChild;return e&&e.to==O.to&&e.type.isError}function Ds(O,e,t){for(let i of O.facet(cm)){let r=i(O,e,t);if(r)return r}return ow(O,e,t)}function hm(O,e){let t=e.mapPos(O.from,1),i=e.mapPos(O.to,-1);return t>=i?void 0:{from:t,to:i}}const To=H.define({map:hm}),Xn=H.define({map:hm});function fm(O){let e=[];for(let{head:t}of O.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(O.lineBlockAt(t));return e}const Pi=Ie.define({create(){return E.none},update(O,e){O=O.map(e.changes);for(let t of e.effects)if(t.is(To)&&!lw(O,t.value.from,t.value.to)){let{preparePlaceholder:i}=e.state.facet(ah),r=i?E.replace({widget:new $w(i(e.state,t.value))}):Uu;O=O.update({add:[r.range(t.value.from,t.value.to)]})}else t.is(Xn)&&(O=O.update({filter:(i,r)=>t.value.from!=i||t.value.to!=r,filterFrom:t.value.from,filterTo:t.value.to}));if(e.selection){let t=!1,{head:i}=e.selection.main;O.between(i,i,(r,n)=>{ri&&(t=!0)}),t&&(O=O.update({filterFrom:i,filterTo:i,filter:(r,n)=>n<=i||r>=i}))}return O},provide:O=>U.decorations.from(O),toJSON(O,e){let t=[];return O.between(0,e.doc.length,(i,r)=>{t.push(i,r)}),t},fromJSON(O){if(!Array.isArray(O)||O.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{(!r||r.from>n)&&(r={from:n,to:s})}),r}function lw(O,e,t){let i=!1;return O.between(e,e,(r,n)=>{r==e&&n==t&&(i=!0)}),i}function um(O,e){return O.field(Pi,!1)?e:e.concat(H.appendConfig.of(dm()))}const cw=O=>{for(let e of fm(O)){let t=Ds(O.state,e.from,e.to);if(t)return O.dispatch({effects:um(O.state,[To.of(t),Qm(O,t)])}),!0}return!1},hw=O=>{if(!O.state.field(Pi,!1))return!1;let e=[];for(let t of fm(O)){let i=Ls(O.state,t.from,t.to);i&&e.push(Xn.of(i),Qm(O,i,!1))}return e.length&&O.dispatch({effects:e}),e.length>0};function Qm(O,e,t=!0){let i=O.state.doc.lineAt(e.from).number,r=O.state.doc.lineAt(e.to).number;return U.announce.of(`${O.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${O.state.phrase("to")} ${r}.`)}const fw=O=>{let{state:e}=O,t=[];for(let i=0;i{let e=O.state.field(Pi,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,O.state.doc.length,(i,r)=>{t.push(Xn.of({from:i,to:r}))}),O.dispatch({effects:t}),!0},Qw=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:cw},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:hw},{key:"Ctrl-Alt-[",run:fw},{key:"Ctrl-Alt-]",run:uw}],dw={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},ah=G.define({combine(O){return QO(O,dw)}});function dm(O){let e=[Pi,gw];return O&&e.push(ah.of(O)),e}function $m(O,e){let{state:t}=O,i=t.facet(ah),r=s=>{let o=O.lineBlockAt(O.posAtDOM(s.target)),a=Ls(O.state,o.from,o.to);a&&O.dispatch({effects:Xn.of(a)}),s.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(O,r,e);let n=document.createElement("span");return n.textContent=i.placeholderText,n.setAttribute("aria-label",t.phrase("folded code")),n.title=t.phrase("unfold"),n.className="cm-foldPlaceholder",n.onclick=r,n}const Uu=E.replace({widget:new class extends dO{toDOM(O){return $m(O,null)}}});class $w extends dO{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return $m(e,this.value)}}const pw={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class fa extends bO{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function mw(O={}){let e=Object.assign(Object.assign({},pw),O),t=new fa(e,!0),i=new fa(e,!1),r=qe.fromClass(class{constructor(s){this.from=s.viewport.from,this.markers=this.buildMarkers(s)}update(s){(s.docChanged||s.viewportChanged||s.startState.facet(ei)!=s.state.facet(ei)||s.startState.field(Pi,!1)!=s.state.field(Pi,!1)||de(s.startState)!=de(s.state)||e.foldingChanged(s))&&(this.markers=this.buildMarkers(s.view))}buildMarkers(s){let o=new BO;for(let a of s.viewportLineBlocks){let l=Ls(s.state,a.from,a.to)?i:Ds(s.state,a.from,a.to)?t:null;l&&o.add(a.from,a.from,l)}return o.finish()}}),{domEventHandlers:n}=e;return[r,gb({class:"cm-foldGutter",markers(s){var o;return((o=s.plugin(r))===null||o===void 0?void 0:o.markers)||le.empty},initialSpacer(){return new fa(e,!1)},domEventHandlers:Object.assign(Object.assign({},n),{click:(s,o,a)=>{if(n.click&&n.click(s,o,a))return!0;let l=Ls(s.state,o.from,o.to);if(l)return s.dispatch({effects:Xn.of(l)}),!0;let c=Ds(s.state,o.from,o.to);return c?(s.dispatch({effects:To.of(c)}),!0):!1}})}),dm()]}const gw=U.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class yn{constructor(e,t){this.specs=e;let i;function r(o){let a=FO.newName();return(i||(i=Object.create(null)))["."+a]=o,a}const n=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,s=t.scope;this.scope=s instanceof zt?o=>o.prop(ui)==s.data:s?o=>o==s:void 0,this.style=sm(e.map(o=>({tag:o.tag,class:o.class||r(Object.assign({},o,{tag:null}))})),{all:n}).style,this.module=i?new FO(i):null,this.themeType=t.themeType}static define(e,t){return new yn(e,t||{})}}const Cl=G.define(),pm=G.define({combine(O){return O.length?[O[0]]:null}});function ua(O){let e=O.facet(Cl);return e.length?e:O.facet(pm)}function mm(O,e){let t=[Pw],i;return O instanceof yn&&(O.module&&t.push(U.styleModule.of(O.module)),i=O.themeType),e!=null&&e.fallback?t.push(pm.of(O)):i?t.push(Cl.computeN([U.darkTheme],r=>r.facet(U.darkTheme)==(i=="dark")?[O]:[])):t.push(Cl.of(O)),t}class Sw{constructor(e){this.markCache=Object.create(null),this.tree=de(e.state),this.decorations=this.buildDeco(e,ua(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=de(e.state),i=ua(e.state),r=i!=ua(e.startState),{viewport:n}=e.view,s=e.changes.mapPos(this.decoratedTo,1);t.length=n.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=s):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=n.to)}buildDeco(e,t){if(!t||!this.tree.length)return E.none;let i=new BO;for(let{from:r,to:n}of e.visibleRanges)Mb(this.tree,t,(s,o,a)=>{i.add(s,o,this.markCache[a]||(this.markCache[a]=E.mark({class:a})))},r,n);return i.finish()}}const Pw=TO.high(qe.fromClass(Sw,{decorations:O=>O.decorations})),Xw=yn.define([{tag:u.meta,color:"#404740"},{tag:u.link,textDecoration:"underline"},{tag:u.heading,textDecoration:"underline",fontWeight:"bold"},{tag:u.emphasis,fontStyle:"italic"},{tag:u.strong,fontWeight:"bold"},{tag:u.strikethrough,textDecoration:"line-through"},{tag:u.keyword,color:"#708"},{tag:[u.atom,u.bool,u.url,u.contentSeparator,u.labelName],color:"#219"},{tag:[u.literal,u.inserted],color:"#164"},{tag:[u.string,u.deleted],color:"#a11"},{tag:[u.regexp,u.escape,u.special(u.string)],color:"#e40"},{tag:u.definition(u.variableName),color:"#00f"},{tag:u.local(u.variableName),color:"#30a"},{tag:[u.typeName,u.namespace],color:"#085"},{tag:u.className,color:"#167"},{tag:[u.special(u.variableName),u.macroName],color:"#256"},{tag:u.definition(u.propertyName),color:"#00c"},{tag:u.comment,color:"#940"},{tag:u.invalid,color:"#f00"}]),yw=U.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),gm=1e4,Sm="()[]{}",Pm=G.define({combine(O){return QO(O,{afterCursor:!0,brackets:Sm,maxScanDistance:gm,renderMatch:ww})}}),xw=E.mark({class:"cm-matchingBracket"}),bw=E.mark({class:"cm-nonmatchingBracket"});function ww(O){let e=[],t=O.matched?xw:bw;return e.push(t.range(O.start.from,O.start.to)),O.end&&e.push(t.range(O.end.from,O.end.to)),e}const Tw=Ie.define({create(){return E.none},update(O,e){if(!e.docChanged&&!e.selection)return O;let t=[],i=e.state.facet(Pm);for(let r of e.state.selection.ranges){if(!r.empty)continue;let n=cO(e.state,r.head,-1,i)||r.head>0&&cO(e.state,r.head-1,1,i)||i.afterCursor&&(cO(e.state,r.head,1,i)||r.headU.decorations.from(O)}),Zw=[Tw,yw];function vw(O={}){return[Pm.of(O),Zw]}const lh=new M;function El(O,e,t){let i=O.prop(e<0?M.openedBy:M.closedBy);if(i)return i;if(O.name.length==1){let r=t.indexOf(O.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function Al(O){let e=O.type.prop(lh);return e?e(O.node):O}function cO(O,e,t,i={}){let r=i.maxScanDistance||gm,n=i.brackets||Sm,s=de(O),o=s.resolveInner(e,t);for(let a=o;a;a=a.parent){let l=El(a.type,t,n);if(l&&a.from0?e>=c.from&&ec.from&&e<=c.to))return Ww(O,e,t,a,c,l,n)}}return kw(O,e,t,s,o.type,r,n)}function Ww(O,e,t,i,r,n,s){let o=i.parent,a={from:r.from,to:r.to},l=0,c=o==null?void 0:o.cursor();if(c&&(t<0?c.childBefore(i.from):c.childAfter(i.to)))do if(t<0?c.to<=i.from:c.from>=i.to){if(l==0&&n.indexOf(c.type.name)>-1&&c.from0)return null;let l={from:t<0?e-1:e,to:t>0?e+1:e},c=O.doc.iterRange(e,t>0?O.doc.length:0),h=0;for(let f=0;!c.next().done&&f<=n;){let Q=c.value;t<0&&(f+=Q.length);let d=e+f*t;for(let $=t>0?0:Q.length-1,p=t>0?Q.length:-1;$!=p;$+=t){let g=s.indexOf(Q[$]);if(!(g<0||i.resolveInner(d+$,1).type!=r))if(g%2==0==t>0)h++;else{if(h==1)return{start:l,end:{from:d+$,to:d+$+1},matched:g>>1==a>>1};h--}}t>0&&(f+=Q.length)}return c.done?{start:l,matched:!1}:null}const Yw=Object.create(null),_u=[je.none],ju=[],Gu=Object.create(null),qw=Object.create(null);for(let[O,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])qw[O]=zw(Yw,e);function Qa(O,e){ju.indexOf(O)>-1||(ju.push(O),console.warn(e))}function zw(O,e){let t=[];for(let o of e.split(" ")){let a=[];for(let l of o.split(".")){let c=O[l]||u[l];c?typeof c=="function"?a.length?a=a.map(c):Qa(l,`Modifier ${l} used at start of tag`):a.length?Qa(l,`Tag ${l} used as modifier`):a=Array.isArray(c)?c:[c]:Qa(l,`Unknown highlighting tag ${l}`)}for(let l of a)t.push(l)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),r=i+" "+t.map(o=>o.id),n=Gu[r];if(n)return n.id;let s=Gu[r]=je.define({id:_u.length,name:i,props:[De({[i]:t})]});return _u.push(s),s.id}xe.RTL,xe.LTR;const Rw=O=>{let{state:e}=O,t=e.doc.lineAt(e.selection.main.from),i=hh(O.state,t.from);return i.line?Vw(O):i.block?_w(O):!1};function ch(O,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=O(e,t);return r?(i(t.update(r)),!0):!1}}const Vw=ch(Cw,0),Uw=ch(Xm,0),_w=ch((O,e)=>Xm(O,e,Gw(e)),0);function hh(O,e){let t=O.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const Qr=50;function jw(O,{open:e,close:t},i,r){let n=O.sliceDoc(i-Qr,i),s=O.sliceDoc(r,r+Qr),o=/\s*$/.exec(n)[0].length,a=/^\s*/.exec(s)[0].length,l=n.length-o;if(n.slice(l-e.length,l)==e&&s.slice(a,a+t.length)==t)return{open:{pos:i-o,margin:o&&1},close:{pos:r+a,margin:a&&1}};let c,h;r-i<=2*Qr?c=h=O.sliceDoc(i,r):(c=O.sliceDoc(i,i+Qr),h=O.sliceDoc(r-Qr,r));let f=/^\s*/.exec(c)[0].length,Q=/\s*$/.exec(h)[0].length,d=h.length-Q-t.length;return c.slice(f,f+e.length)==e&&h.slice(d,d+t.length)==t?{open:{pos:i+f+e.length,margin:/\s/.test(c.charAt(f+e.length))?1:0},close:{pos:r-Q-t.length,margin:/\s/.test(h.charAt(d-1))?1:0}}:null}function Gw(O){let e=[];for(let t of O.selection.ranges){let i=O.doc.lineAt(t.from),r=t.to<=i.to?i:O.doc.lineAt(t.to),n=e.length-1;n>=0&&e[n].to>i.from?e[n].to=r.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:r.to})}return e}function Xm(O,e,t=e.selection.ranges){let i=t.map(n=>hh(e,n.from).block);if(!i.every(n=>n))return null;let r=t.map((n,s)=>jw(e,i[s],n.from,n.to));if(O!=2&&!r.every(n=>n))return{changes:e.changes(t.map((n,s)=>r[s]?[]:[{from:n.from,insert:i[s].open+" "},{from:n.to,insert:" "+i[s].close}]))};if(O!=1&&r.some(n=>n)){let n=[];for(let s=0,o;sr&&(n==s||s>h.from)){r=h.from;let f=/^\s*/.exec(h.text)[0].length,Q=f==h.length,d=h.text.slice(f,f+l.length)==l?f:-1;fn.comment<0&&(!n.empty||n.single))){let n=[];for(let{line:o,token:a,indent:l,empty:c,single:h}of i)(h||!c)&&n.push({from:o.from+l,insert:a+" "});let s=e.changes(n);return{changes:s,selection:e.selection.map(s,1)}}else if(O!=1&&i.some(n=>n.comment>=0)){let n=[];for(let{line:s,comment:o,token:a}of i)if(o>=0){let l=s.from+o,c=l+a.length;s.text[c-s.from]==" "&&c++,n.push({from:l,to:c})}return{changes:n}}return null}const Il=ZO.define(),Ew=ZO.define(),Aw=G.define(),ym=G.define({combine(O){return QO(O,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,r)=>e(i,r)||t(i,r)})}}),xm=Ie.define({create(){return hO.empty},update(O,e){let t=e.state.facet(ym),i=e.annotation(Il);if(i){let a=$t.fromTransaction(e,i.selection),l=i.side,c=l==0?O.undone:O.done;return a?c=Ms(c,c.length,t.minDepth,a):c=Tm(c,e.startState.selection),new hO(l==0?i.rest:c,l==0?c:i.rest)}let r=e.annotation(Ew);if((r=="full"||r=="before")&&(O=O.isolate()),e.annotation(Ve.addToHistory)===!1)return e.changes.empty?O:O.addMapping(e.changes.desc);let n=$t.fromTransaction(e),s=e.annotation(Ve.time),o=e.annotation(Ve.userEvent);return n?O=O.addChanges(n,s,o,t,e):e.selection&&(O=O.addSelection(e.startState.selection,s,o,t.newGroupDelay)),(r=="full"||r=="after")&&(O=O.isolate()),O},toJSON(O){return{done:O.done.map(e=>e.toJSON()),undone:O.undone.map(e=>e.toJSON())}},fromJSON(O){return new hO(O.done.map($t.fromJSON),O.undone.map($t.fromJSON))}});function Iw(O={}){return[xm,ym.of(O),U.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?bm:e.inputType=="historyRedo"?Dl:null;return i?(e.preventDefault(),i(t)):!1}})]}function Zo(O,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let r=t.field(xm,!1);if(!r)return!1;let n=r.pop(O,t,e);return n?(i(n),!0):!1}}const bm=Zo(0,!1),Dl=Zo(1,!1),Dw=Zo(0,!0),Lw=Zo(1,!0);class $t{constructor(e,t,i,r,n){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=n}setSelAfter(e){return new $t(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new $t(e.changes&&_e.fromJSON(e.changes),[],e.mapped&&fO.fromJSON(e.mapped),e.startSelection&&X.fromJSON(e.startSelection),e.selectionsAfter.map(X.fromJSON))}static fromTransaction(e,t){let i=Rt;for(let r of e.startState.facet(Aw)){let n=r(e);n.length&&(i=i.concat(n))}return!i.length&&e.changes.empty?null:new $t(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Rt)}static selection(e){return new $t(void 0,Rt,void 0,void 0,e)}}function Ms(O,e,t,i){let r=e+1>t+20?e-t-1:0,n=O.slice(r,e);return n.push(i),n}function Mw(O,e){let t=[],i=!1;return O.iterChangedRanges((r,n)=>t.push(r,n)),e.iterChangedRanges((r,n,s,o)=>{for(let a=0;a=l&&s<=c&&(i=!0)}}),i}function Nw(O,e){return O.ranges.length==e.ranges.length&&O.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function wm(O,e){return O.length?e.length?O.concat(e):O:e}const Rt=[],Bw=200;function Tm(O,e){if(O.length){let t=O[O.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Bw));return i.length&&i[i.length-1].eq(e)?O:(i.push(e),Ms(O,O.length-1,1e9,t.setSelAfter(i)))}else return[$t.selection([e])]}function Fw(O){let e=O[O.length-1],t=O.slice();return t[O.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function da(O,e){if(!O.length)return O;let t=O.length,i=Rt;for(;t;){let r=Hw(O[t-1],e,i);if(r.changes&&!r.changes.empty||r.effects.length){let n=O.slice(0,t);return n[t-1]=r,n}else e=r.mapped,t--,i=r.selectionsAfter}return i.length?[$t.selection(i)]:Rt}function Hw(O,e,t){let i=wm(O.selectionsAfter.length?O.selectionsAfter.map(o=>o.map(e)):Rt,t);if(!O.changes)return $t.selection(i);let r=O.changes.map(e),n=e.mapDesc(O.changes,!0),s=O.mapped?O.mapped.composeDesc(n):n;return new $t(r,H.mapEffects(O.effects,e),s,O.startSelection.map(n),i)}const Kw=/^(input\.type|delete)($|\.)/;class hO{constructor(e,t,i=0,r=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new hO(this.done,this.undone):this}addChanges(e,t,i,r,n){let s=this.done,o=s[s.length-1];return o&&o.changes&&!o.changes.empty&&e.changes&&(!i||Kw.test(i))&&(!o.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?O.moveByChar(t,e):vo(t,e))}function at(O){return O.textDirectionAt(O.state.selection.main.head)==xe.LTR}const vm=O=>Zm(O,!at(O)),Wm=O=>Zm(O,at(O));function km(O,e){return Ft(O,t=>t.empty?O.moveByGroup(t,e):vo(t,e))}const e0=O=>km(O,!at(O)),t0=O=>km(O,at(O));function O0(O,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(O.sliceDoc(e.from,e.to)))||e.firstChild}function Wo(O,e,t){let i=de(O).resolveInner(e.head),r=t?M.closedBy:M.openedBy;for(let a=e.head;;){let l=t?i.childAfter(a):i.childBefore(a);if(!l)break;O0(O,l,r)?i=l:a=t?l.to:l.from}let n=i.type.prop(r),s,o;return n&&(s=t?cO(O,i.from,1):cO(O,i.to,-1))&&s.matched?o=t?s.end.to:s.end.from:o=t?i.to:i.from,X.cursor(o,t?-1:1)}const i0=O=>Ft(O,e=>Wo(O.state,e,!at(O))),r0=O=>Ft(O,e=>Wo(O.state,e,at(O)));function Ym(O,e){return Ft(O,t=>{if(!t.empty)return vo(t,e);let i=O.moveVertically(t,e);return i.head!=t.head?i:O.moveToLineBoundary(t,e)})}const qm=O=>Ym(O,!1),zm=O=>Ym(O,!0);function Rm(O){let e=O.scrollDOM.clientHeights.empty?O.moveVertically(s,e,t.height):vo(s,e));if(r.eq(i.selection))return!1;let n;if(t.selfScroll){let s=O.coordsAtPos(i.selection.main.head),o=O.scrollDOM.getBoundingClientRect(),a=o.top+t.marginTop,l=o.bottom-t.marginBottom;s&&s.top>a&&s.bottomVm(O,!1),Ll=O=>Vm(O,!0);function ti(O,e,t){let i=O.lineBlockAt(e.head),r=O.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?i.to:i.from)&&(r=O.moveToLineBoundary(e,t,!1)),!t&&r.head==i.from&&i.length){let n=/^\s*/.exec(O.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&e.head!=i.from+n&&(r=X.cursor(i.from+n))}return r}const n0=O=>Ft(O,e=>ti(O,e,!0)),s0=O=>Ft(O,e=>ti(O,e,!1)),o0=O=>Ft(O,e=>ti(O,e,!at(O))),a0=O=>Ft(O,e=>ti(O,e,at(O))),l0=O=>Ft(O,e=>X.cursor(O.lineBlockAt(e.head).from,1)),c0=O=>Ft(O,e=>X.cursor(O.lineBlockAt(e.head).to,-1));function h0(O,e,t){let i=!1,r=rr(O.selection,n=>{let s=cO(O,n.head,-1)||cO(O,n.head,1)||n.head>0&&cO(O,n.head-1,1)||n.headh0(O,e,!1);function Ut(O,e){let t=rr(O.state.selection,i=>{let r=e(i);return X.range(i.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(O.state.selection)?!1:(O.dispatch(pO(O.state,t)),!0)}function Um(O,e){return Ut(O,t=>O.moveByChar(t,e))}const _m=O=>Um(O,!at(O)),jm=O=>Um(O,at(O));function Gm(O,e){return Ut(O,t=>O.moveByGroup(t,e))}const u0=O=>Gm(O,!at(O)),Q0=O=>Gm(O,at(O)),d0=O=>Ut(O,e=>Wo(O.state,e,!at(O))),$0=O=>Ut(O,e=>Wo(O.state,e,at(O)));function Cm(O,e){return Ut(O,t=>O.moveVertically(t,e))}const Em=O=>Cm(O,!1),Am=O=>Cm(O,!0);function Im(O,e){return Ut(O,t=>O.moveVertically(t,e,Rm(O).height))}const Eu=O=>Im(O,!1),Au=O=>Im(O,!0),p0=O=>Ut(O,e=>ti(O,e,!0)),m0=O=>Ut(O,e=>ti(O,e,!1)),g0=O=>Ut(O,e=>ti(O,e,!at(O))),S0=O=>Ut(O,e=>ti(O,e,at(O))),P0=O=>Ut(O,e=>X.cursor(O.lineBlockAt(e.head).from)),X0=O=>Ut(O,e=>X.cursor(O.lineBlockAt(e.head).to)),Iu=({state:O,dispatch:e})=>(e(pO(O,{anchor:0})),!0),Du=({state:O,dispatch:e})=>(e(pO(O,{anchor:O.doc.length})),!0),Lu=({state:O,dispatch:e})=>(e(pO(O,{anchor:O.selection.main.anchor,head:0})),!0),Mu=({state:O,dispatch:e})=>(e(pO(O,{anchor:O.selection.main.anchor,head:O.doc.length})),!0),y0=({state:O,dispatch:e})=>(e(O.update({selection:{anchor:0,head:O.doc.length},userEvent:"select"})),!0),x0=({state:O,dispatch:e})=>{let t=ko(O).map(({from:i,to:r})=>X.range(i,Math.min(r+1,O.doc.length)));return e(O.update({selection:X.create(t),userEvent:"select"})),!0},b0=({state:O,dispatch:e})=>{let t=rr(O.selection,i=>{var r;let n=de(O).resolveStack(i.from,1);for(let s=n;s;s=s.next){let{node:o}=s;if((o.from=i.to||o.to>i.to&&o.from<=i.from)&&(!((r=o.parent)===null||r===void 0)&&r.parent))return X.range(o.to,o.from)}return i});return e(pO(O,t)),!0},w0=({state:O,dispatch:e})=>{let t=O.selection,i=null;return t.ranges.length>1?i=X.create([t.main]):t.main.empty||(i=X.create([X.cursor(t.main.head)])),i?(e(pO(O,i)),!0):!1};function xn(O,e){if(O.state.readOnly)return!1;let t="delete.selection",{state:i}=O,r=i.changeByRange(n=>{let{from:s,to:o}=n;if(s==o){let a=e(n);as&&(t="delete.forward",a=Kn(O,a,!0)),s=Math.min(s,a),o=Math.max(o,a)}else s=Kn(O,s,!1),o=Kn(O,o,!0);return s==o?{range:n}:{changes:{from:s,to:o},range:X.cursor(s,sr(O)))i.between(e,e,(r,n)=>{re&&(e=t?n:r)});return e}const Dm=(O,e)=>xn(O,t=>{let i=t.from,{state:r}=O,n=r.doc.lineAt(i),s,o;if(!e&&i>n.from&&iDm(O,!1),Lm=O=>Dm(O,!0),Mm=(O,e)=>xn(O,t=>{let i=t.head,{state:r}=O,n=r.doc.lineAt(i),s=r.charCategorizer(i);for(let o=null;;){if(i==(e?n.to:n.from)){i==t.head&&n.number!=(e?r.doc.lines:1)&&(i+=e?1:-1);break}let a=Ke(n.text,i-n.from,e)+n.from,l=n.text.slice(Math.min(i,a)-n.from,Math.max(i,a)-n.from),c=s(l);if(o!=null&&c!=o)break;(l!=" "||i!=t.head)&&(o=c),i=a}return i}),Nm=O=>Mm(O,!1),T0=O=>Mm(O,!0),Z0=O=>xn(O,e=>{let t=O.lineBlockAt(e.head).to;return e.headxn(O,e=>{let t=O.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),W0=O=>xn(O,e=>{let t=O.moveToLineBoundary(e,!0).head;return e.head{if(O.readOnly)return!1;let t=O.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:ue.of(["",""])},range:X.cursor(i.from)}));return e(O.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Y0=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=O.changeByRange(i=>{if(!i.empty||i.from==0||i.from==O.doc.length)return{range:i};let r=i.from,n=O.doc.lineAt(r),s=r==n.from?r-1:Ke(n.text,r-n.from,!1)+n.from,o=r==n.to?r+1:Ke(n.text,r-n.from,!0)+n.from;return{changes:{from:s,to:o,insert:O.doc.slice(r,o).append(O.doc.slice(s,r))},range:X.cursor(o)}});return t.changes.empty?!1:(e(O.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ko(O){let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.from),n=O.doc.lineAt(i.to);if(!i.empty&&i.to==n.from&&(n=O.doc.lineAt(i.to-1)),t>=r.number){let s=e[e.length-1];s.to=n.to,s.ranges.push(i)}else e.push({from:r.from,to:n.to,ranges:[i]});t=n.number+1}return e}function Bm(O,e,t){if(O.readOnly)return!1;let i=[],r=[];for(let n of ko(O)){if(t?n.to==O.doc.length:n.from==0)continue;let s=O.doc.lineAt(t?n.to+1:n.from-1),o=s.length+1;if(t){i.push({from:n.to,to:s.to},{from:n.from,insert:s.text+O.lineBreak});for(let a of n.ranges)r.push(X.range(Math.min(O.doc.length,a.anchor+o),Math.min(O.doc.length,a.head+o)))}else{i.push({from:s.from,to:n.from},{from:n.to,insert:O.lineBreak+s.text});for(let a of n.ranges)r.push(X.range(a.anchor-o,a.head-o))}}return i.length?(e(O.update({changes:i,scrollIntoView:!0,selection:X.create(r,O.selection.mainIndex),userEvent:"move.line"})),!0):!1}const q0=({state:O,dispatch:e})=>Bm(O,e,!1),z0=({state:O,dispatch:e})=>Bm(O,e,!0);function Fm(O,e,t){if(O.readOnly)return!1;let i=[];for(let r of ko(O))t?i.push({from:r.from,insert:O.doc.slice(r.from,r.to)+O.lineBreak}):i.push({from:r.to,insert:O.lineBreak+O.doc.slice(r.from,r.to)});return e(O.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const R0=({state:O,dispatch:e})=>Fm(O,e,!1),V0=({state:O,dispatch:e})=>Fm(O,e,!0),U0=O=>{if(O.state.readOnly)return!1;let{state:e}=O,t=e.changes(ko(e).map(({from:r,to:n})=>(r>0?r--:nO.moveVertically(r,!0)).map(t);return O.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function _0(O,e){if(/\(\)|\[\]|\{\}/.test(O.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=de(O).resolveInner(e),i=t.childBefore(e),r=t.childAfter(e),n;return i&&r&&i.to<=e&&r.from>=e&&(n=i.type.prop(M.closedBy))&&n.indexOf(r.name)>-1&&O.doc.lineAt(i.to).from==O.doc.lineAt(r.from).from&&!/\S/.test(O.sliceDoc(i.to,r.from))?{from:i.to,to:r.from}:null}const j0=Hm(!1),G0=Hm(!0);function Hm(O){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(r=>{let{from:n,to:s}=r,o=e.doc.lineAt(n),a=!O&&n==s&&_0(e,n);O&&(n=s=(s<=o.to?o:e.doc.lineAt(s)).to);let l=new wo(e,{simulateBreak:n,simulateDoubleBreak:!!a}),c=nh(l,n);for(c==null&&(c=Mt(/^\s*/.exec(e.doc.lineAt(n).text)[0],e.tabSize));so.from&&n{let r=[];for(let s=i.from;s<=i.to;){let o=O.doc.lineAt(s);o.number>t&&(i.empty||i.to>o.from)&&(e(o,r,i),t=o.number),s=o.to+1}let n=O.changes(r);return{changes:r,range:X.range(n.mapPos(i.anchor,1),n.mapPos(i.head,1))}})}const C0=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=Object.create(null),i=new wo(O,{overrideIndentation:n=>{let s=t[n];return s??-1}}),r=fh(O,(n,s,o)=>{let a=nh(i,n.from);if(a==null)return;/\S/.test(n.text)||(a=0);let l=/^\s*/.exec(n.text)[0],c=rn(O,a);(l!=c||o.fromO.readOnly?!1:(e(O.update(fh(O,(t,i)=>{i.push({from:t.from,insert:O.facet(ir)})}),{userEvent:"input.indent"})),!0),Jm=({state:O,dispatch:e})=>O.readOnly?!1:(e(O.update(fh(O,(t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let n=Mt(r,O.tabSize),s=0,o=rn(O,Math.max(0,n-Is(O)));for(;s({mac:O.key,run:O.run,shift:O.shift}))),I0=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:i0,shift:d0},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:r0,shift:$0},{key:"Alt-ArrowUp",run:q0},{key:"Shift-Alt-ArrowUp",run:R0},{key:"Alt-ArrowDown",run:z0},{key:"Shift-Alt-ArrowDown",run:V0},{key:"Escape",run:w0},{key:"Mod-Enter",run:G0},{key:"Alt-l",mac:"Ctrl-l",run:x0},{key:"Mod-i",run:b0,preventDefault:!0},{key:"Mod-[",run:Jm},{key:"Mod-]",run:Km},{key:"Mod-Alt-\\",run:C0},{key:"Shift-Mod-k",run:U0},{key:"Shift-Mod-\\",run:f0},{key:"Mod-/",run:Rw},{key:"Alt-A",run:Uw}].concat(A0),D0={key:"Tab",run:Km,shift:Jm};function Pe(){var O=arguments[0];typeof O=="string"&&(O=document.createElement(O));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];typeof r=="string"?O.setAttribute(i,r):r!=null&&(O[i]=r)}e++}for(;eO.normalize("NFKD"):O=>O;class Fi{constructor(e,t,i=0,r=e.length,n,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=n?o=>n(Nu(o)):Nu,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Ne(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Gc(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=kt(e);let r=this.normalize(t);for(let n=0,s=i;;n++){let o=r.charCodeAt(n),a=this.match(o,s,this.bufferPos+this.bufferStart);if(n==r.length-1){if(a)return this.value=a,this;break}s==i&&nthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=Ns(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||r.to<=t){let o=new Ci(t,e.sliceString(t,i));return $a.set(e,o),o}if(r.from==t&&r.to==i)return r;let{text:n,from:s}=r;return s>t&&(n=e.sliceString(t,s)+n,s=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,r=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this.matchPos=Ns(this.text,r+(i==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ci.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Og.prototype[Symbol.iterator]=ig.prototype[Symbol.iterator]=function(){return this});function L0(O){try{return new RegExp(O,uh),!0}catch{return!1}}function Ns(O,e){if(e>=O.length)return e;let t=O.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function Nl(O){let e=String(O.state.doc.lineAt(O.state.selection.main.head).number),t=Pe("input",{class:"cm-textfield",name:"line",value:e}),i=Pe("form",{class:"cm-gotoLine",onkeydown:n=>{n.keyCode==27?(n.preventDefault(),O.dispatch({effects:Bs.of(!1)}),O.focus()):n.keyCode==13&&(n.preventDefault(),r())},onsubmit:n=>{n.preventDefault(),r()}},Pe("label",O.state.phrase("Go to line"),": ",t)," ",Pe("button",{class:"cm-button",type:"submit"},O.state.phrase("go")));function r(){let n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!n)return;let{state:s}=O,o=s.doc.lineAt(s.selection.main.head),[,a,l,c,h]=n,f=c?+c.slice(1):0,Q=l?+l:o.number;if(l&&h){let p=Q/100;a&&(p=p*(a=="-"?-1:1)+o.number/s.doc.lines),Q=Math.round(s.doc.lines*p)}else l&&a&&(Q=Q*(a=="-"?-1:1)+o.number);let d=s.doc.line(Math.max(1,Math.min(s.doc.lines,Q))),$=X.cursor(d.from+Math.max(0,Math.min(f,d.length)));O.dispatch({effects:[Bs.of(!1),U.scrollIntoView($.from,{y:"center"})],selection:$}),O.focus()}return{dom:i}}const Bs=H.define(),Bu=Ie.define({create(){return!0},update(O,e){for(let t of e.effects)t.is(Bs)&&(O=t.value);return O},provide:O=>Jr.from(O,e=>e?Nl:null)}),M0=O=>{let e=Kr(O,Nl);if(!e){let t=[Bs.of(!0)];O.state.field(Bu,!1)==null&&t.push(H.appendConfig.of([Bu,N0])),O.dispatch({effects:t}),e=Kr(O,Nl)}return e&&e.dom.querySelector("input").select(),!0},N0=U.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),B0={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},rg=G.define({combine(O){return QO(O,B0,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function F0(O){let e=[tT,eT];return O&&e.push(rg.of(O)),e}const H0=E.mark({class:"cm-selectionMatch"}),K0=E.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Fu(O,e,t,i){return(t==0||O(e.sliceDoc(t-1,t))!=Ze.Word)&&(i==e.doc.length||O(e.sliceDoc(i,i+1))!=Ze.Word)}function J0(O,e,t,i){return O(e.sliceDoc(t,t+1))==Ze.Word&&O(e.sliceDoc(i-1,i))==Ze.Word}const eT=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.selectionSet||O.docChanged||O.viewportChanged)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=O.state.facet(rg),{state:t}=O,i=t.selection;if(i.ranges.length>1)return E.none;let r=i.main,n,s=null;if(r.empty){if(!e.highlightWordAroundCursor)return E.none;let a=t.wordAt(r.head);if(!a)return E.none;s=t.charCategorizer(r.head),n=t.sliceDoc(a.from,a.to)}else{let a=r.to-r.from;if(a200)return E.none;if(e.wholeWords){if(n=t.sliceDoc(r.from,r.to),s=t.charCategorizer(r.head),!(Fu(s,t,r.from,r.to)&&J0(s,t,r.from,r.to)))return E.none}else if(n=t.sliceDoc(r.from,r.to),!n)return E.none}let o=[];for(let a of O.visibleRanges){let l=new Fi(t.doc,n,a.from,a.to);for(;!l.next().done;){let{from:c,to:h}=l.value;if((!s||Fu(s,t,c,h))&&(r.empty&&c<=r.from&&h>=r.to?o.push(K0.range(c,h)):(c>=r.to||h<=r.from)&&o.push(H0.range(c,h)),o.length>e.maxMatches))return E.none}}return E.set(o)}},{decorations:O=>O.decorations}),tT=U.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),OT=({state:O,dispatch:e})=>{let{selection:t}=O,i=X.create(t.ranges.map(r=>O.wordAt(r.head)||X.cursor(r.head)),t.mainIndex);return i.eq(t)?!1:(e(O.update({selection:i})),!0)};function iT(O,e){let{main:t,ranges:i}=O.selection,r=O.wordAt(t.head),n=r&&r.from==t.from&&r.to==t.to;for(let s=!1,o=new Fi(O.doc,e,i[i.length-1].to);;)if(o.next(),o.done){if(s)return null;o=new Fi(O.doc,e,0,Math.max(0,i[i.length-1].from-1)),s=!0}else{if(s&&i.some(a=>a.from==o.value.from))continue;if(n){let a=O.wordAt(o.value.from);if(!a||a.from!=o.value.from||a.to!=o.value.to)continue}return o.value}}const rT=({state:O,dispatch:e})=>{let{ranges:t}=O.selection;if(t.some(n=>n.from===n.to))return OT({state:O,dispatch:e});let i=O.sliceDoc(t[0].from,t[0].to);if(O.selection.ranges.some(n=>O.sliceDoc(n.from,n.to)!=i))return!1;let r=iT(O,i);return r?(e(O.update({selection:O.selection.addRange(X.range(r.from,r.to),!1),effects:U.scrollIntoView(r.to)})),!0):!1},nr=G.define({combine(O){return QO(O,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new $T(e),scrollToMatch:e=>U.scrollIntoView(e)})}});class ng{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||L0(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new aT(this):new sT(this)}getCursor(e,t=0,i){let r=e.doc?e:re.create({doc:e});return i==null&&(i=r.doc.length),this.regexp?vi(this,r,t,i):Zi(this,r,t,i)}}class sg{constructor(e){this.spec=e}}function Zi(O,e,t,i){return new Fi(e.doc,O.unquoted,t,i,O.caseSensitive?void 0:r=>r.toLowerCase(),O.wholeWord?nT(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function nT(O,e){return(t,i,r,n)=>((n>t||n+r.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Zi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}function vi(O,e,t,i){return new Og(e.doc,O.search,{ignoreCase:!O.caseSensitive,test:O.wholeWord?oT(e.charCategorizer(e.selection.main.head)):void 0},t,i)}function Fs(O,e){return O.slice(Ke(O,e,!1),e)}function Hs(O,e){return O.slice(e,Ke(O,e))}function oT(O){return(e,t,i)=>!i[0].length||(O(Fs(i.input,i.index))!=Ze.Word||O(Hs(i.input,i.index))!=Ze.Word)&&(O(Hs(i.input,i.index+i[0].length))!=Ze.Word||O(Fs(i.input,i.index+i[0].length))!=Ze.Word)}class aT extends sg{nextMatch(e,t,i){let r=vi(this.spec,e,i,e.doc.length).next();return r.done&&(r=vi(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-r*1e4),s=vi(this.spec,e,n,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(n==t||o.from>n+10))return o;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=vi(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}const nn=H.define(),Qh=H.define(),LO=Ie.define({create(O){return new pa(Bl(O).create(),null)},update(O,e){for(let t of e.effects)t.is(nn)?O=new pa(t.value.create(),O.panel):t.is(Qh)&&(O=new pa(O.query,t.value?dh:null));return O},provide:O=>Jr.from(O,e=>e.panel)});class pa{constructor(e,t){this.query=e,this.panel=t}}const lT=E.mark({class:"cm-searchMatch"}),cT=E.mark({class:"cm-searchMatch cm-searchMatch-selected"}),hT=qe.fromClass(class{constructor(O){this.view=O,this.decorations=this.highlight(O.state.field(LO))}update(O){let e=O.state.field(LO);(e!=O.startState.field(LO)||O.docChanged||O.selectionSet||O.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:O,panel:e}){if(!e||!O.spec.valid)return E.none;let{view:t}=this,i=new BO;for(let r=0,n=t.visibleRanges,s=n.length;rn[r+1].from-2*250;)a=n[++r].to;O.highlight(t.state,o,a,(l,c)=>{let h=t.state.selection.ranges.some(f=>f.from==l&&f.to==c);i.add(l,c,h?cT:lT)})}return i.finish()}},{decorations:O=>O.decorations});function bn(O){return e=>{let t=e.state.field(LO,!1);return t&&t.query.spec.valid?O(e,t):lg(e)}}const Ks=bn((O,{query:e})=>{let{to:t}=O.state.selection.main,i=e.nextMatch(O.state,t,t);if(!i)return!1;let r=X.single(i.from,i.to),n=O.state.facet(nr);return O.dispatch({selection:r,effects:[$h(O,i),n.scrollToMatch(r.main,O)],userEvent:"select.search"}),ag(O),!0}),Js=bn((O,{query:e})=>{let{state:t}=O,{from:i}=t.selection.main,r=e.prevMatch(t,i,i);if(!r)return!1;let n=X.single(r.from,r.to),s=O.state.facet(nr);return O.dispatch({selection:n,effects:[$h(O,r),s.scrollToMatch(n.main,O)],userEvent:"select.search"}),ag(O),!0}),fT=bn((O,{query:e})=>{let t=e.matchAll(O.state,1e3);return!t||!t.length?!1:(O.dispatch({selection:X.create(t.map(i=>X.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),uT=({state:O,dispatch:e})=>{let t=O.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:r}=t.main,n=[],s=0;for(let o=new Fi(O.doc,O.sliceDoc(i,r));!o.next().done;){if(n.length>1e3)return!1;o.value.from==i&&(s=n.length),n.push(X.range(o.value.from,o.value.to))}return e(O.update({selection:X.create(n,s),userEvent:"select.search.matches"})),!0},Hu=bn((O,{query:e})=>{let{state:t}=O,{from:i,to:r}=t.selection.main;if(t.readOnly)return!1;let n=e.nextMatch(t,i,i);if(!n)return!1;let s=[],o,a,l=[];if(n.from==i&&n.to==r&&(a=t.toText(e.getReplacement(n)),s.push({from:n.from,to:n.to,insert:a}),n=e.nextMatch(t,n.from,n.to),l.push(U.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),n){let c=s.length==0||s[0].from>=n.to?0:n.to-n.from-a.length;o=X.single(n.from-c,n.to-c),l.push($h(O,n)),l.push(t.facet(nr).scrollToMatch(o.main,O))}return O.dispatch({changes:s,selection:o,effects:l,userEvent:"input.replace"}),!0}),QT=bn((O,{query:e})=>{if(O.state.readOnly)return!1;let t=e.matchAll(O.state,1e9).map(r=>{let{from:n,to:s}=r;return{from:n,to:s,insert:e.getReplacement(r)}});if(!t.length)return!1;let i=O.state.phrase("replaced $ matches",t.length)+".";return O.dispatch({changes:t,effects:U.announce.of(i),userEvent:"input.replace.all"}),!0});function dh(O){return O.state.facet(nr).createPanel(O)}function Bl(O,e){var t,i,r,n,s;let o=O.selection.main,a=o.empty||o.to>o.from+100?"":O.sliceDoc(o.from,o.to);if(e&&!a)return e;let l=O.facet(nr);return new ng({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:l.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:l.caseSensitive,literal:(r=e==null?void 0:e.literal)!==null&&r!==void 0?r:l.literal,regexp:(n=e==null?void 0:e.regexp)!==null&&n!==void 0?n:l.regexp,wholeWord:(s=e==null?void 0:e.wholeWord)!==null&&s!==void 0?s:l.wholeWord})}function og(O){let e=Kr(O,dh);return e&&e.dom.querySelector("[main-field]")}function ag(O){let e=og(O);e&&e==O.root.activeElement&&e.select()}const lg=O=>{let e=O.state.field(LO,!1);if(e&&e.panel){let t=og(O);if(t&&t!=O.root.activeElement){let i=Bl(O.state,e.query.spec);i.valid&&O.dispatch({effects:nn.of(i)}),t.focus(),t.select()}}else O.dispatch({effects:[Qh.of(!0),e?nn.of(Bl(O.state,e.query.spec)):H.appendConfig.of(mT)]});return!0},cg=O=>{let e=O.state.field(LO,!1);if(!e||!e.panel)return!1;let t=Kr(O,dh);return t&&t.dom.contains(O.root.activeElement)&&O.focus(),O.dispatch({effects:Qh.of(!1)}),!0},dT=[{key:"Mod-f",run:lg,scope:"editor search-panel"},{key:"F3",run:Ks,shift:Js,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Ks,shift:Js,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:cg,scope:"editor search-panel"},{key:"Mod-Shift-l",run:uT},{key:"Mod-Alt-g",run:M0},{key:"Mod-d",run:rT,preventDefault:!0}];class $T{constructor(e){this.view=e;let t=this.query=e.state.field(LO).query.spec;this.commit=this.commit.bind(this),this.searchField=Pe("input",{value:t.search,placeholder:Pt(e,"Find"),"aria-label":Pt(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Pe("input",{value:t.replace,placeholder:Pt(e,"Replace"),"aria-label":Pt(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Pe("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Pe("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Pe("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(r,n,s){return Pe("button",{class:"cm-button",name:r,onclick:n,type:"button"},s)}this.dom=Pe("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,i("next",()=>Ks(e),[Pt(e,"next")]),i("prev",()=>Js(e),[Pt(e,"previous")]),i("select",()=>fT(e),[Pt(e,"all")]),Pe("label",null,[this.caseField,Pt(e,"match case")]),Pe("label",null,[this.reField,Pt(e,"regexp")]),Pe("label",null,[this.wordField,Pt(e,"by word")]),...e.state.readOnly?[]:[Pe("br"),this.replaceField,i("replace",()=>Hu(e),[Pt(e,"replace")]),i("replaceAll",()=>QT(e),[Pt(e,"replace all")])],Pe("button",{name:"close",onclick:()=>cg(e),"aria-label":Pt(e,"close"),type:"button"},["×"])])}commit(){let e=new ng({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:nn.of(e)}))}keydown(e){Zx(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Js:Ks)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Hu(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(nn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(nr).top}}function Pt(O,e){return O.state.phrase(e)}const Jn=30,es=/[\s\.,:;?!]/;function $h(O,{from:e,to:t}){let i=O.state.doc.lineAt(e),r=O.state.doc.lineAt(t).to,n=Math.max(i.from,e-Jn),s=Math.min(r,t+Jn),o=O.state.sliceDoc(n,s);if(n!=i.from){for(let a=0;ao.length-Jn;a--)if(!es.test(o[a-1])&&es.test(o[a])){o=o.slice(0,a);break}}return U.announce.of(`${O.state.phrase("current match")}. ${o} ${O.state.phrase("on line")} ${i.number}.`)}const pT=U.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),mT=[LO,TO.low(hT),pT];class ph{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=de(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),n=r.search(hg(e,!1));return n<0?null:{from:i+n,to:this.pos,text:r.slice(n)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}}function Ku(O){let e=Object.keys(O).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function gT(O){let e=Object.create(null),t=Object.create(null);for(let{label:r}of O){e[r[0]]=!0;for(let n=1;ntypeof r=="string"?{label:r}:r),[t,i]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:gT(e);return r=>{let n=r.matchBefore(i);return n||r.explicit?{from:n?n.from:r.pos,options:e,validFor:t}:null}}function mh(O,e){return t=>{for(let i=de(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(O.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}class Ju{constructor(e,t,i,r){this.completion=e,this.source=t,this.match=i,this.score=r}}function MO(O){return O.selection.main.from}function hg(O,e){var t;let{source:i}=O,r=e&&i[0]!="^",n=i[i.length-1]!="$";return!r&&!n?O:new RegExp(`${r?"^":""}(?:${i})${n?"$":""}`,(t=O.flags)!==null&&t!==void 0?t:O.ignoreCase?"i":"")}const fg=ZO.define();function ST(O,e,t,i){let{main:r}=O.selection,n=t-r.from,s=i-r.from;return Object.assign(Object.assign({},O.changeByRange(o=>o!=r&&t!=i&&O.sliceDoc(o.from+n,o.from+s)!=O.sliceDoc(t,i)?{range:o}:{changes:{from:o.from+n,to:i==r.from?o.to:o.from+s,insert:e},range:X.cursor(o.from+n+e.length)})),{scrollIntoView:!0,userEvent:"input.complete"})}const eQ=new WeakMap;function PT(O){if(!Array.isArray(O))return O;let e=eQ.get(O);return e||eQ.set(O,e=Yo(O)),e}const eo=H.define(),sn=H.define();class XT{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&b<=57||b>=97&&b<=122?2:b>=65&&b<=90?1:0:(T=Gc(b))!=T.toLowerCase()?1:T!=T.toUpperCase()?2:0;(!P||Y==1&&p||w==0&&Y!=0)&&(t[h]==b||i[h]==b&&(f=!0)?s[h++]=P:s.length&&(g=!1)),w=Y,P+=kt(b)}return h==a&&s[0]==0&&g?this.result(-100+(f?-200:0),s,e):Q==a&&d==0?this.ret(-200-e.length+($==e.length?0:-100),[0,$]):o>-1?this.ret(-700-e.length,[o,o+this.pattern.length]):Q==a?this.ret(-200+-700-e.length,[d,$]):h==a?this.result(-100+(f?-200:0)+-700+(g?0:-1100),s,e):t.length==2?!1:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,i){let r=[],n=0;for(let s of t){let o=s+(this.astral?kt(Ne(i,s)):1);n&&r[n-1]==s?r[n-1]=o:(r[n++]=s,r[n++]=o)}return this.ret(e-i.length,r)}}const He=G.define({combine(O){return QO(O,{activateOnTyping:!0,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:yT,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>tQ(e(i),t(i)),optionClass:(e,t)=>i=>tQ(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})}});function tQ(O,e){return O?e?O+" "+e:O:e}function yT(O,e,t,i,r,n){let s=O.textDirection==xe.RTL,o=s,a=!1,l="top",c,h,f=e.left-r.left,Q=r.right-e.right,d=i.right-i.left,$=i.bottom-i.top;if(o&&f=$||P>e.top?c=t.bottom-e.top:(l="bottom",c=e.bottom-t.top)}let p=(e.bottom-e.top)/n.offsetHeight,g=(e.right-e.left)/n.offsetWidth;return{style:`${l}: ${c/p}px; max-width: ${h/g}px`,class:"cm-completionInfo-"+(a?s?"left-narrow":"right-narrow":o?"left":"right")}}function xT(O){let e=O.addToOptions.slice();return O.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,r,n){let s=document.createElement("span");s.className="cm-completionLabel";let o=t.displayLabel||t.label,a=0;for(let l=0;la&&s.appendChild(document.createTextNode(o.slice(a,c)));let f=s.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(o.slice(c,h))),f.className="cm-completionMatchedText",a=h}return at.position-i.position).map(t=>t.render)}function ma(O,e,t){if(O<=t)return{from:0,to:O};if(e<0&&(e=0),e<=O>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let i=Math.floor((O-e)/t);return{from:O-(i+1)*t,to:O-i*t}}class bT{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:n,selected:s}=r.open,o=e.state.facet(He);this.optionContent=xT(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=ma(n.length,s,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:l}=e.state.field(t).open;for(let c=a.target,h;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(h=/-(\d+)$/.exec(c.id))&&+h[1]{let l=e.state.field(this.stateField,!1);l&&l.tooltip&&e.state.facet(He).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:sn.of(null)})}),this.showOptions(n,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=r){let{options:n,selected:s,disabled:o}=i.open;(!r.open||r.open.options!=n)&&(this.range=ma(n.length,s,e.state.facet(He).maxRenderedOptions),this.showOptions(n,i.id)),this.updateSel(),o!=((t=r.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!o)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=ma(t.options.length,t.selected,this.view.state.facet(He).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:r}=i;if(!r)return;let n=typeof r=="string"?document.createTextNode(r):r(i);if(!n)return;"then"in n?n.then(s=>{s&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(s,i)}).catch(s=>Tt(this.view.state,s,"completion info")):this.addInfoPane(n,i)}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:r,destroy:n}=e;i.appendChild(r),this.infoDestroy=n||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)i.nodeName!="LI"||!i.id?r--:r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&TT(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),n=this.space;if(!n){let s=this.dom.ownerDocument.defaultView||window;n={left:0,top:0,right:s.innerWidth,bottom:s.innerHeight}}return r.top>Math.min(n.bottom,t.bottom)-10||r.bottomi.from||i.from==0))if(n=f,typeof l!="string"&&l.header)r.appendChild(l.header(l));else{let Q=r.appendChild(document.createElement("completion-section"));Q.textContent=f}}const c=r.appendChild(document.createElement("li"));c.id=t+"-"+s,c.setAttribute("role","option");let h=this.optionClass(o);h&&(c.className=h);for(let f of this.optionContent){let Q=f(o,this.view.state,this.view,a);Q&&c.appendChild(Q)}}return i.from&&r.classList.add("cm-completionListIncompleteTop"),i.tonew bT(t,O,e)}function TT(O,e){let t=O.getBoundingClientRect(),i=e.getBoundingClientRect(),r=t.height/O.offsetHeight;i.topt.bottom&&(O.scrollTop+=(i.bottom-t.bottom)/r)}function OQ(O){return(O.boost||0)*100+(O.apply?10:0)+(O.info?5:0)+(O.type?1:0)}function ZT(O,e){let t=[],i=null,r=a=>{t.push(a);let{section:l}=a.completion;if(l){i||(i=[]);let c=typeof l=="string"?l:l.name;i.some(h=>h.name==c)||i.push(typeof l=="string"?{name:c}:l)}};for(let a of O)if(a.hasResult()){let l=a.result.getMatch;if(a.result.filter===!1)for(let c of a.result.options)r(new Ju(c,a.source,l?l(c):[],1e9-t.length));else{let c=new XT(e.sliceDoc(a.from,a.to));for(let h of a.result.options)if(c.match(h.label)){let f=h.displayLabel?l?l(h,c.matched):[]:c.matched;r(new Ju(h,a.source,f,c.score+(h.boost||0)))}}}if(i){let a=Object.create(null),l=0,c=(h,f)=>{var Q,d;return((Q=h.rank)!==null&&Q!==void 0?Q:1e9)-((d=f.rank)!==null&&d!==void 0?d:1e9)||(h.namec.score-l.score||o(l.completion,c.completion))){let l=a.completion;!s||s.label!=l.label||s.detail!=l.detail||s.type!=null&&l.type!=null&&s.type!=l.type||s.apply!=l.apply||s.boost!=l.boost?n.push(a):OQ(a.completion)>OQ(s)&&(n[n.length-1]=a),s=a.completion}return n}class qi{constructor(e,t,i,r,n,s){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=r,this.selected=n,this.disabled=s}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new qi(this.options,iQ(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,n){let s=ZT(e,t);if(!s.length)return r&&e.some(a=>a.state==1)?new qi(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let o=t.facet(He).selectOnOpen?0:-1;if(r&&r.selected!=o&&r.selected!=-1){let a=r.options[r.selected].completion;for(let l=0;ll.hasResult()?Math.min(a,l.from):a,1e8),create:qT,above:n.aboveCursor},r?r.timestamp:Date.now(),o,!1)}map(e){return new qi(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class to{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new to(kT,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(He),n=(i.override||t.languageDataAt("autocomplete",MO(t)).map(PT)).map(o=>(this.active.find(l=>l.source==o)||new Qt(o,this.active.some(l=>l.state!=0)?1:0)).update(e,i));n.length==this.active.length&&n.every((o,a)=>o==this.active[a])&&(n=this.active);let s=this.open;s&&e.docChanged&&(s=s.map(e.changes)),e.selection||n.some(o=>o.hasResult()&&e.changes.touchesRange(o.from,o.to))||!vT(n,this.active)?s=qi.build(n,t,this.id,s,i):s&&s.disabled&&!n.some(o=>o.state==1)&&(s=null),!s&&n.every(o=>o.state!=1)&&n.some(o=>o.hasResult())&&(n=n.map(o=>o.hasResult()?new Qt(o.source,0):o));for(let o of e.effects)o.is(Qg)&&(s=s&&s.setSelected(o.value,this.id));return n==this.active&&s==this.open?this:new to(n,this.id,s)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:WT}}function vT(O,e){if(O==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=O+"-"+e),t}const kT=[];function Fl(O){return O.isUserEvent("input.type")?"input":O.isUserEvent("delete.backward")?"delete":null}class Qt{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=Fl(e),r=this;i?r=r.handleUserEvent(e,i,t):e.docChanged?r=r.handleChange(e):e.selection&&r.state!=0&&(r=new Qt(r.source,0));for(let n of e.effects)if(n.is(eo))r=new Qt(r.source,1,n.value?MO(e.state):-1);else if(n.is(sn))r=new Qt(r.source,0);else if(n.is(ug))for(let s of n.value)s.source==r.source&&(r=s);return r}handleUserEvent(e,t,i){return t=="delete"||!i.activateOnTyping?this.map(e.changes):new Qt(this.source,1)}handleChange(e){return e.changes.touchesRange(MO(e.startState))?new Qt(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new Qt(this.source,this.state,e.mapPos(this.explicitPos))}}class Ei extends Qt{constructor(e,t,i,r,n){super(e,2,t),this.result=i,this.from=r,this.to=n}hasResult(){return!0}handleUserEvent(e,t,i){var r;let n=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1),o=MO(e.state);if((this.explicitPos<0?o<=n:os||t=="delete"&&MO(e.startState)==this.from)return new Qt(this.source,t=="input"&&i.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),l;return YT(this.result.validFor,e.state,n,s)?new Ei(this.source,a,this.result,n,s):this.result.update&&(l=this.result.update(this.result,n,s,new ph(e.state,o,a>=0)))?new Ei(this.source,a,l,l.from,(r=l.to)!==null&&r!==void 0?r:MO(e.state)):new Qt(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new Qt(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new Ei(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function YT(O,e,t,i){if(!O)return!1;let r=e.sliceDoc(t,i);return typeof O=="function"?O(r,t,i,e):hg(O,!0).test(r)}const ug=H.define({map(O,e){return O.map(t=>t.map(e))}}),Qg=H.define(),dt=Ie.define({create(){return to.start()},update(O,e){return O.update(e)},provide:O=>[Hc.from(O,e=>e.tooltip),U.contentAttributes.from(O,e=>e.attrs)]});function gh(O,e){const t=e.completion.apply||e.completion.label;let i=O.state.field(dt).active.find(r=>r.source==e.source);return i instanceof Ei?(typeof t=="string"?O.dispatch(Object.assign(Object.assign({},ST(O.state,t,i.from,i.to)),{annotations:fg.of(e.completion)})):t(O,e.completion,i.from,i.to),!0):!1}const qT=wT(dt,gh);function ts(O,e="option"){return t=>{let i=t.state.field(dt,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+r*(O?1:-1):O?0:s-1;return o<0?o=e=="page"?0:s-1:o>=s&&(o=e=="page"?s-1:0),t.dispatch({effects:Qg.of(o)}),!0}}const zT=O=>{let e=O.state.field(dt,!1);return O.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampO.state.field(dt,!1)?(O.dispatch({effects:eo.of(!0)}),!0):!1,VT=O=>{let e=O.state.field(dt,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(O.dispatch({effects:sn.of(null)}),!0)};class UT{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const _T=50,jT=1e3,GT=qe.fromClass(class{constructor(O){this.view=O,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of O.state.field(dt).active)e.state==1&&this.startQuery(e)}update(O){let e=O.state.field(dt);if(!O.selectionSet&&!O.docChanged&&O.startState.field(dt)==e)return;let t=O.transactions.some(r=>(r.selection||r.docChanged)&&!Fl(r));for(let r=0;r_T&&Date.now()-n.time>jT){for(let s of n.context.abortListeners)try{s()}catch(o){Tt(this.view.state,o)}n.context.abortListeners=null,this.running.splice(r--,1)}else n.updates.push(...O.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),O.transactions.some(r=>r.effects.some(n=>n.is(eo)))&&(this.pendingStart=!0);let i=this.pendingStart?50:O.state.facet(He).activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.state==1&&!this.running.some(n=>n.active.source==r.source))?setTimeout(()=>this.startUpdate(),i):-1,this.composing!=0)for(let r of O.transactions)Fl(r)=="input"?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:O}=this.view,e=O.field(dt);for(let t of e.active)t.state==1&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t)}startQuery(O){let{state:e}=this.view,t=MO(e),i=new ph(e,t,O.explicitPos==t),r=new UT(O,i);this.running.push(r),Promise.resolve(O.source(i)).then(n=>{r.context.aborted||(r.done=n||null,this.scheduleAccept())},n=>{this.view.dispatch({effects:sn.of(null)}),Tt(this.view.state,n)})}scheduleAccept(){this.running.every(O=>O.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(He).updateSyncTime))}accept(){var O;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(He);for(let i=0;is.source==r.active.source);if(n&&n.state==1)if(r.done==null){let s=new Qt(r.active.source,0);for(let o of r.updates)s=s.update(o,t);s.state!=1&&e.push(s)}else this.startQuery(n)}e.length&&this.view.dispatch({effects:ug.of(e)})}},{eventHandlers:{blur(O){let e=this.view.state.field(dt,!1);if(e&&e.tooltip&&this.view.state.facet(He).closeOnBlur){let t=e.open&&Hp(this.view,e.open.tooltip);(!t||!t.dom.contains(O.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:sn.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:eo.of(!1)}),20),this.composing=0}}}),CT=typeof navigator=="object"&&/Win/.test(navigator.platform),ET=TO.highest(U.domEventHandlers({keydown(O,e){let t=e.state.field(dt,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||O.key.length>1||O.ctrlKey&&!(CT&&O.altKey)||O.metaKey)return!1;let i=t.open.options[t.open.selected],r=t.active.find(s=>s.source==i.source),n=i.completion.commitCharacters||r.result.commitCharacters;return n&&n.indexOf(O.key)>-1&&gh(e,i),!1}})),dg=U.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class AT{constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}}class Sh{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,Fe.TrackDel),i=e.mapPos(this.to,1,Fe.TrackDel);return t==null||i==null?null:new Sh(this.field,t,i)}}class Ph{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],n=e.doc.lineAt(t),s=/^\s*/.exec(n.text)[0];for(let a of this.lines){if(i.length){let l=s,c=/^\t*/.exec(a)[0].length;for(let h=0;hnew Sh(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:i,ranges:o}}static parse(e){let t=[],i=[],r=[],n;for(let s of e.split(/\r\n?|\n/)){for(;n=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let o=n[1]?+n[1]:null,a=n[2]||n[3]||"",l=-1;for(let c=0;c=l&&h.field++}r.push(new AT(l,i.length,n.index,n.index+a.length)),s=s.slice(0,n.index)+a+s.slice(n.index+n[0].length)}for(let o;o=/\\([{}])/.exec(s);){s=s.slice(0,o.index)+o[1]+s.slice(o.index+o[0].length);for(let a of r)a.line==i.length&&a.from>o.index&&(a.from--,a.to--)}i.push(s)}return new Ph(i,r)}}let IT=E.widget({widget:new class extends dO{toDOM(){let O=document.createElement("span");return O.className="cm-snippetFieldPosition",O}ignoreEvent(){return!1}}}),DT=E.mark({class:"cm-snippetField"});class sr{constructor(e,t){this.ranges=e,this.active=t,this.deco=E.set(e.map(i=>(i.from==i.to?IT:DT).range(i.from,i.to)))}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new sr(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}}const wn=H.define({map(O,e){return O&&O.map(e)}}),LT=H.define(),on=Ie.define({create(){return null},update(O,e){for(let t of e.effects){if(t.is(wn))return t.value;if(t.is(LT)&&O)return new sr(O.ranges,t.value)}return O&&e.docChanged&&(O=O.map(e.changes)),O&&e.selection&&!O.selectionInsideField(e.selection)&&(O=null),O},provide:O=>U.decorations.from(O,e=>e?e.deco:E.none)});function Xh(O,e){return X.create(O.filter(t=>t.field==e).map(t=>X.range(t.from,t.to)))}function MT(O){let e=Ph.parse(O);return(t,i,r,n)=>{let{text:s,ranges:o}=e.instantiate(t.state,r),a={changes:{from:r,to:n,insert:ue.of(s)},scrollIntoView:!0,annotations:i?[fg.of(i),Ve.userEvent.of("input.complete")]:void 0};if(o.length&&(a.selection=Xh(o,0)),o.some(l=>l.field>0)){let l=new sr(o,0),c=a.effects=[wn.of(l)];t.state.field(on,!1)===void 0&&c.push(H.appendConfig.of([on,KT,JT,dg]))}t.dispatch(t.state.update(a))}}function $g(O){return({state:e,dispatch:t})=>{let i=e.field(on,!1);if(!i||O<0&&i.active==0)return!1;let r=i.active+O,n=O>0&&!i.ranges.some(s=>s.field==r+O);return t(e.update({selection:Xh(i.ranges,r),effects:wn.of(n?null:new sr(i.ranges,r)),scrollIntoView:!0})),!0}}const NT=({state:O,dispatch:e})=>O.field(on,!1)?(e(O.update({effects:wn.of(null)})),!0):!1,BT=$g(1),FT=$g(-1),HT=[{key:"Tab",run:BT,shift:FT},{key:"Escape",run:NT}],rQ=G.define({combine(O){return O.length?O[0]:HT}}),KT=TO.highest(Or.compute([rQ],O=>O.facet(rQ)));function ve(O,e){return Object.assign(Object.assign({},e),{apply:MT(O)})}const JT=U.domEventHandlers({mousedown(O,e){let t=e.state.field(on,!1),i;if(!t||(i=e.posAtCoords({x:O.clientX,y:O.clientY}))==null)return!1;let r=t.ranges.find(n=>n.from<=i&&n.to>=i);return!r||r.field==t.active?!1:(e.dispatch({selection:Xh(t.ranges,r.field),effects:wn.of(t.ranges.some(n=>n.field>r.field)?new sr(t.ranges,r.field):null),scrollIntoView:!0}),!0)}}),an={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Qi=H.define({map(O,e){let t=e.mapPos(O,-1,Fe.TrackAfter);return t??void 0}}),yh=new class extends pi{};yh.startSide=1;yh.endSide=-1;const pg=Ie.define({create(){return le.empty},update(O,e){if(O=O.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);O=O.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(Qi)&&(O=O.update({add:[yh.range(t.value,t.value+1)]}));return O}});function eZ(){return[OZ,pg]}const ga="()[]{}<>";function mg(O){for(let e=0;e{if((tZ?O.composing:O.compositionStarted)||O.state.readOnly)return!1;let r=O.state.selection.main;if(i.length>2||i.length==2&&kt(Ne(i,0))==1||e!=r.from||t!=r.to)return!1;let n=nZ(O.state,i);return n?(O.dispatch(n),!0):!1}),iZ=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let i=gg(O,O.selection.main.head).brackets||an.brackets,r=null,n=O.changeByRange(s=>{if(s.empty){let o=sZ(O.doc,s.head);for(let a of i)if(a==o&&qo(O.doc,s.head)==mg(Ne(a,0)))return{changes:{from:s.head-a.length,to:s.head+a.length},range:X.cursor(s.head-a.length)}}return{range:r=s}});return r||e(O.update(n,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},rZ=[{key:"Backspace",run:iZ}];function nZ(O,e){let t=gg(O,O.selection.main.head),i=t.brackets||an.brackets;for(let r of i){let n=mg(Ne(r,0));if(e==r)return n==r?lZ(O,r,i.indexOf(r+r+r)>-1,t):oZ(O,r,n,t.before||an.before);if(e==n&&Sg(O,O.selection.main.from))return aZ(O,r,n)}return null}function Sg(O,e){let t=!1;return O.field(pg).between(0,O.doc.length,i=>{i==e&&(t=!0)}),t}function qo(O,e){let t=O.sliceString(e,e+2);return t.slice(0,kt(Ne(t,0)))}function sZ(O,e){let t=O.sliceString(e-2,e);return kt(Ne(t,0))==t.length?t:t.slice(1)}function oZ(O,e,t,i){let r=null,n=O.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:t,from:s.to}],effects:Qi.of(s.to+e.length),range:X.range(s.anchor+e.length,s.head+e.length)};let o=qo(O.doc,s.head);return!o||/\s/.test(o)||i.indexOf(o)>-1?{changes:{insert:e+t,from:s.head},effects:Qi.of(s.head+e.length),range:X.cursor(s.head+e.length)}:{range:r=s}});return r?null:O.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function aZ(O,e,t){let i=null,r=O.changeByRange(n=>n.empty&&qo(O.doc,n.head)==t?{changes:{from:n.head,to:n.head+t.length,insert:t},range:X.cursor(n.head+t.length)}:i={range:n});return i?null:O.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function lZ(O,e,t,i){let r=i.stringPrefixes||an.stringPrefixes,n=null,s=O.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:e,from:o.to}],effects:Qi.of(o.to+e.length),range:X.range(o.anchor+e.length,o.head+e.length)};let a=o.head,l=qo(O.doc,a),c;if(l==e){if(nQ(O,a))return{changes:{insert:e+e,from:a},effects:Qi.of(a+e.length),range:X.cursor(a+e.length)};if(Sg(O,a)){let f=t&&O.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+f.length,insert:f},range:X.cursor(a+f.length)}}}else{if(t&&O.sliceDoc(a-2*e.length,a)==e+e&&(c=sQ(O,a-2*e.length,r))>-1&&nQ(O,c))return{changes:{insert:e+e+e+e,from:a},effects:Qi.of(a+e.length),range:X.cursor(a+e.length)};if(O.charCategorizer(a)(l)!=Ze.Word&&sQ(O,a,r)>-1&&!cZ(O,a,e,r))return{changes:{insert:e+e,from:a},effects:Qi.of(a+e.length),range:X.cursor(a+e.length)}}return{range:n=o}});return n?null:O.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function nQ(O,e){let t=de(O).resolveInner(e+1);return t.parent&&t.from==e}function cZ(O,e,t,i){let r=de(O).resolveInner(e,-1),n=i.reduce((s,o)=>Math.max(s,o.length),0);for(let s=0;s<5;s++){let o=O.sliceDoc(r.from,Math.min(r.to,r.from+t.length+n)),a=o.indexOf(t);if(!a||a>-1&&i.indexOf(o.slice(0,a))>-1){let c=r.firstChild;for(;c&&c.from==r.from&&c.to-c.from>t.length+a;){if(O.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let l=r.to==e&&r.parent;if(!l)break;r=l}return!1}function sQ(O,e,t){let i=O.charCategorizer(e);if(i(O.sliceDoc(e-1,e))!=Ze.Word)return e;for(let r of t){let n=e-r.length;if(O.sliceDoc(n,e)==r&&i(O.sliceDoc(n-1,n))!=Ze.Word)return n}return-1}function hZ(O={}){return[ET,dt,He.of(O),GT,fZ,dg]}const Pg=[{key:"Ctrl-Space",run:RT},{key:"Escape",run:VT},{key:"ArrowDown",run:ts(!0)},{key:"ArrowUp",run:ts(!1)},{key:"PageDown",run:ts(!0,"page")},{key:"PageUp",run:ts(!1,"page")},{key:"Enter",run:zT}],fZ=TO.highest(Or.computeN([He],O=>O.facet(He).defaultKeymap?[Pg]:[]));class uZ{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class ci{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=e,n=i.facet(xg).markerFilter;n&&(r=n(r,i));let s=E.set(r.map(o=>o.from==o.to||o.from==o.to-1&&i.doc.lineAt(o.from).to==o.from?E.widget({widget:new XZ(o),diagnostic:o}).range(o.from):E.mark({attributes:{class:"cm-lintRange cm-lintRange-"+o.severity+(o.markClass?" "+o.markClass:"")},diagnostic:o,inclusive:!0}).range(o.from,o.to)),!0);return new ci(s,t,Hi(s))}}function Hi(O,e=null,t=0){let i=null;return O.between(t,1e9,(r,n,{spec:s})=>{if(!(e&&s.diagnostic!=e))return i=new uZ(r,n,s.diagnostic),!1}),i}function QZ(O,e){let t=O.startState.doc.lineAt(e.pos);return!!(O.effects.some(i=>i.is(Xg))||O.changes.touchesRange(t.from,t.to))}function dZ(O,e){return O.field(Zt,!1)?e:e.concat(H.appendConfig.of(bZ))}const Xg=H.define(),xh=H.define(),yg=H.define(),Zt=Ie.define({create(){return new ci(E.none,null,null)},update(O,e){if(e.docChanged){let t=O.diagnostics.map(e.changes),i=null;if(O.selected){let r=e.changes.mapPos(O.selected.from,1);i=Hi(t,O.selected.diagnostic,r)||Hi(t,null,r)}O=new ci(t,O.panel,i)}for(let t of e.effects)t.is(Xg)?O=ci.init(t.value,O.panel,e.state):t.is(xh)?O=new ci(O.diagnostics,t.value?zo.open:null,O.selected):t.is(yg)&&(O=new ci(O.diagnostics,O.panel,t.value));return O},provide:O=>[Jr.from(O,e=>e.panel),U.decorations.from(O,e=>e.diagnostics)]}),$Z=E.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function pZ(O,e,t){let{diagnostics:i}=O.state.field(Zt),r=[],n=2e8,s=0;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,l,{spec:c})=>{e>=a&&e<=l&&(a==l||(e>a||t>0)&&(ewg(O,t,!1)))}const gZ=O=>{let e=O.state.field(Zt,!1);(!e||!e.panel)&&O.dispatch({effects:dZ(O.state,[xh.of(!0)])});let t=Kr(O,zo.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},oQ=O=>{let e=O.state.field(Zt,!1);return!e||!e.panel?!1:(O.dispatch({effects:xh.of(!1)}),!0)},SZ=O=>{let e=O.state.field(Zt,!1);if(!e)return!1;let t=O.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(O.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},PZ=[{key:"Mod-Shift-m",run:gZ,preventDefault:!0},{key:"F8",run:SZ}],xg=G.define({combine(O){return Object.assign({sources:O.map(e=>e.source).filter(e=>e!=null)},QO(O.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t}))}});function bg(O){let e=[];if(O)e:for(let{name:t}of O){for(let i=0;in.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function wg(O,e,t){var i;let r=t?bg(e.actions):[];return Pe("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Pe("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(i=e.actions)===null||i===void 0?void 0:i.map((n,s)=>{let o=!1,a=f=>{if(f.preventDefault(),o)return;o=!0;let Q=Hi(O.state.field(Zt).diagnostics,e);Q&&n.apply(O,Q.from,Q.to)},{name:l}=n,c=r[s]?l.indexOf(r[s]):-1,h=c<0?l:[l.slice(0,c),Pe("u",l.slice(c,c+1)),l.slice(c+1)];return Pe("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${l}${c<0?"":` (access key "${r[s]})"`}.`},h)}),e.source&&Pe("div",{class:"cm-diagnosticSource"},e.source))}class XZ extends dO{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return Pe("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class aQ{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=wg(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class zo{constructor(e){this.view=e,this.items=[];let t=r=>{if(r.keyCode==27)oQ(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],s=bg(n.actions);for(let o=0;o{for(let n=0;noQ(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Zt).selected;if(!e)return-1;for(let t=0;t{let l=-1,c;for(let h=i;hi&&(this.items.splice(i,l-i),r=!0)),t&&c.diagnostic==t.diagnostic?c.dom.hasAttribute("aria-selected")||(c.dom.setAttribute("aria-selected","true"),n=c):c.dom.hasAttribute("aria-selected")&&c.dom.removeAttribute("aria-selected"),i++});i({sel:n.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:o})=>{let a=o.height/this.list.offsetHeight;s.topo.bottom&&(this.list.scrollTop+=(s.bottom-o.bottom)/a)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Zt),i=Hi(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:yg.of(i)})}static open(e){return new zo(e)}}function yZ(O,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(O)}')`}function Os(O){return yZ(``,'width="6" height="3"')}const xZ=U.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Os("#d11")},".cm-lintRange-warning":{backgroundImage:Os("orange")},".cm-lintRange-info":{backgroundImage:Os("#999")},".cm-lintRange-hint":{backgroundImage:Os("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),bZ=[Zt,U.decorations.compute([Zt],O=>{let{selected:e,panel:t}=O.field(Zt);return!e||!t||e.from==e.to?E.none:E.set([$Z.range(e.from,e.to)])}),$b(pZ,{hideOn:QZ}),xZ],wZ=(()=>[bb(),Zb(),Dx(),Iw(),mw(),zx(),jx(),re.allowMultipleSelections.of(!0),sw(),mm(Xw,{fallback:!0}),vw(),eZ(),hZ(),nb(),ab(),Hx(),F0(),Or.of([...rZ,...I0,...dT,...Jw,...Qw,...Pg,...PZ])])();/*! +* VueCodemirror v6.1.1 +* Copyright (c) Surmon. All rights reserved. +* Released under the MIT License. +* Surmon +*/var TZ=Object.freeze({autofocus:!1,disabled:!1,indentWithTab:!0,tabSize:2,placeholder:"",autoDestroy:!0,extensions:[wZ]}),ZZ=Symbol("vue-codemirror-global-config"),ct,vZ=function(O){var e=O.onUpdate,t=O.onChange,i=O.onFocus,r=O.onBlur,n=function(s,o){var a={};for(var l in s)Object.prototype.hasOwnProperty.call(s,l)&&o.indexOf(l)<0&&(a[l]=s[l]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var c=0;for(l=Object.getOwnPropertySymbols(s);ct%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new Oo(e,[],t,i,i,0,[],0,r?new cQ(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=e&65535,{parser:n}=this.p,s=n.dynamicPrecedence(r);if(s&&(this.score+=s),i==0){this.pushState(n.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,i,r=4,n=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&s.buffer[o-4]==0&&s.buffer[o-1]>-1){if(t==i)return;if(s.buffer[o-2]>=t){s.buffer[o-2]=i;return}}}if(!n||this.pos==i)this.buffer.push(e,t,i,r);else{let s=this.buffer.length;if(s>0&&this.buffer[s-4]!=0)for(;s>0&&this.buffer[s-2]>i;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,r>4&&(r-=4);this.buffer[s]=e,this.buffer[s+1]=t,this.buffer[s+2]=i,this.buffer[s+3]=r}}shift(e,t,i,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4);else{let n=e,{parser:s}=this.p;(r>this.pos||t<=s.maxNode)&&(this.pos=r,s.stateFlag(n,1)||(this.reducePos=r)),this.pushState(n,i),this.shiftContext(t,i),t<=s.maxNode&&this.buffer.push(t,i,r,4)}}apply(e,t,i,r){e&65536?this.reduce(e):this.shift(e,t,i,r)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Oo(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new VZ(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if(!(i&65536))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let n=0,s;na&1&&o==s)||r.push(t[n],s)}t=r}let i=[];for(let r=0;r>19,r=t&65535,n=this.stack.length-i*3;if(n<0||e.getGoto(this.stack[n],r,!1)<0){let s=this.findForcedReduction();if(s==null)return!1;t=s}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(r,n)=>{if(!t.includes(r))return t.push(r),e.allActions(r,s=>{if(!(s&393216))if(s&65536){let o=(s>>19)-n;if(o>1){let a=s&65535,l=this.stack.length-o*3;if(l>=0&&e.getGoto(this.stack[l],a,!1)>=0)return o<<19|65536|a}}else{let o=i(s,n+1);if(o!=null)return o}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class cQ{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class VZ{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class io{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new io(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new io(this.stack,this.pos,this.index)}}function wr(O,e=Uint16Array){if(typeof O!="string")return O;let t=null;for(let i=0,r=0;i=92&&s--,s>=34&&s--;let a=s-32;if(a>=46&&(a-=46,o=!0),n+=a,o)break;n*=46}t?t[r++]=n:t=new e(n)}return t}class xs{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const hQ=new xs;class UZ{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=hQ,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,n=this.pos+e;for(;ni.to:n>=i.to;){if(r==this.ranges.length-1)return null;let s=this.ranges[++r];n+=s.from-i.to,i=s}return n}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,r;if(t>=0&&t=this.chunk2Pos&&io.to&&(this.chunk2=this.chunk2.slice(0,o.to-i)),r=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),r}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=hQ,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}}class Ai{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Zg(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}Ai.prototype.contextual=Ai.prototype.fallback=Ai.prototype.extend=!1;class nO{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data=typeof e=="string"?wr(e):e}token(e,t){let i=e.pos,r=0;for(;;){let n=e.next<0,s=e.resolveOffset(1,1);if(Zg(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(n||r++,s==null)break;e.reset(s,e.token)}r&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r))}}nO.prototype.contextual=Ai.prototype.fallback=Ai.prototype.extend=!1;class $e{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Zg(O,e,t,i,r,n){let s=0,o=1<0){let d=O[Q];if(a.allows(d)&&(e.token.value==-1||e.token.value==d||_Z(d,e.token.value,r,n))){e.acceptToken(d);break}}let c=e.next,h=0,f=O[s+2];if(e.next<0&&f>h&&O[l+f*3-3]==65535){s=O[l+f*3-1];continue e}for(;h>1,d=l+Q+(Q<<1),$=O[d],p=O[d+1]||65536;if(c<$)f=Q;else if(c>=p)h=Q+1;else{s=O[d+2],e.advance();continue e}}break}}function fQ(O,e,t){for(let i=e,r;(r=O[i])!=65535;i++)if(r==t)return i-e;return-1}function _Z(O,e,t,i){let r=fQ(t,i,e);return r<0||fQ(t,i,O)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(O.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:O.length}}let jZ=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?uQ(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?uQ(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=s,null;if(n instanceof Qe){if(s==e){if(s=Math.max(this.safeFrom,e)&&(this.trees.push(n),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+n.length}}};class GZ{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new xs)}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:n}=r,s=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,a=0;for(let l=0;lh.end+25&&(a=Math.max(h.lookAhead,a)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!c.extend&&(i=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new xs,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new xs,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:n}=i.p;for(let s=0;s=0&&i.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let n=0;ne.bufferLength*4?new jZ(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],r,n;if(this.bigReductionCount>300&&e.length==1){let[s]=e;for(;s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;st)i.push(o);else{if(this.advanceStack(o,i,e))continue;{r||(r=[],n=[]),r.push(o);let a=this.tokens.getMainToken(o);n.push(a.value,a.end)}}break}}if(!i.length){let s=r&&AZ(r);if(s)return Xt&&console.log("Finish with "+this.stackID(s)),this.stackToTree(s);if(this.parser.strict)throw Xt&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let s=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,n,i);if(s)return Xt&&console.log("Force-finish "+this.stackID(s)),this.stackToTree(s.forceAll())}if(this.recovering){let s=this.recovering==1?1:this.recovering*3;if(i.length>s)for(i.sort((o,a)=>a.score-o.score);i.length>s;)i.pop();i.some(o=>o.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let s=0;s500&&l.buffer.length>500)if((o.score-l.score||o.buffer.length-l.buffer.length)>0)i.splice(a--,1);else{i.splice(s--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let s=1;s ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,c=l?e.curContext.hash:0;for(let h=this.fragments.nodeAt(r);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?n.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!l||(h.prop(M.contextHash)||0)==c))return e.useNode(h,f),Xt&&console.log(s+this.stackID(e)+` (via reuse of ${n.getName(h.type.id)})`),!0;if(!(h instanceof Qe)||h.children.length==0||h.positions[0]>0)break;let Q=h.children[0];if(Q instanceof Qe&&h.positions[0]==0)h=Q;else break}}let o=n.stateSlot(e.state,4);if(o>0)return e.reduce(o),Xt&&console.log(s+this.stackID(e)+` (via always-reduce ${n.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let l=0;lr?t.push(d):i.push(d)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return QQ(e,t),!0}}runRecovery(e,t,i){let r=null,n=!1;for(let s=0;s ":"";if(o.deadEnd&&(n||(n=!0,o.restart(),Xt&&console.log(c+this.stackID(o)+" (restarted)"),this.advanceFully(o,i))))continue;let h=o.split(),f=c;for(let Q=0;h.forceReduce()&&Q<10&&(Xt&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));Q++)Xt&&(f=this.stackID(h)+" -> ");for(let Q of o.recoverByInsert(a))Xt&&console.log(c+this.stackID(Q)+" (via recover-insert)"),this.advanceFully(Q,i);this.stream.end>o.pos?(l==o.pos&&(l++,a=0),o.recoverByDelete(a,l),Xt&&console.log(c+this.stackID(o)+` (via recover-delete ${this.parser.getName(a)})`),QQ(o,i)):(!r||r.scoreO;class Ro{constructor(e){this.start=e.start,this.shift=e.shift||Pa,this.reduce=e.reduce||Pa,this.reuse=e.reuse||Pa,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Ae extends Oh{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let o=0;oe.topRules[o][1]),r=[];for(let o=0;o=0)n(c,a,o[l++]);else{let h=o[l+-c];for(let f=-c;f>0;f--)n(o[l++],a,h);l++}}}this.nodeSet=new Pn(t.map((o,a)=>je.define({name:a>=this.minRepeatTerm?void 0:o,id:a,props:r[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=tm;let s=wr(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new Ai(s,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new CZ(this,e,t,i);for(let n of this.wrappers)r=n(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let n=r[t+1];;){let s=r[n++],o=s&1,a=r[n++];if(o&&i)return a;for(let l=n+(s>>1);n0}validAction(e,t){return!!this.allActions(e,i=>i==t?!0:null)}allActions(e,t){let i=this.stateSlot(e,4),r=i?t(i):void 0;for(let n=this.stateSlot(e,1);r==null;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=gO(this.data,n+2);else break;r=t(gO(this.data,n+1))}return r}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=gO(this.data,i+2);else break;if(!(this.data[i+2]&1)){let r=this.data[i+1];t.some((n,s)=>s&1&&n==r)||t.push(this.data[i],r)}}return t}configure(e){let t=Object.assign(Object.create(Ae.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let r=e.tokenizers.find(n=>n.from==i);return r?r.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,r)=>{let n=e.specializers.find(o=>o.from==i.external);if(!n)return i;let s=Object.assign(Object.assign({},i),{external:n.to});return t.specializers[r]=dQ(s),s})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let n of e.split(" ")){let s=t.indexOf(n);s>=0&&(i[s]=!0)}let r=null;for(let n=0;ni)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoreO.external(t,i)<<1|e}return O.get}const IZ=309,$Q=1,DZ=2,LZ=3,MZ=310,NZ=312,BZ=313,FZ=4,HZ=5,KZ=0,Hl=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],vg=125,JZ=59,Kl=47,ev=42,tv=43,Ov=45,iv=60,rv=44,nv=new Ro({start:!1,shift(O,e){return e==FZ||e==HZ||e==NZ?O:e==BZ},strict:!1}),sv=new $e((O,e)=>{let{next:t}=O;(t==vg||t==-1||e.context)&&O.acceptToken(MZ)},{contextual:!0,fallback:!0}),ov=new $e((O,e)=>{let{next:t}=O,i;Hl.indexOf(t)>-1||t==Kl&&((i=O.peek(1))==Kl||i==ev)||t!=vg&&t!=JZ&&t!=-1&&!e.context&&O.acceptToken(IZ)},{contextual:!0}),av=new $e((O,e)=>{let{next:t}=O;if((t==tv||t==Ov)&&(O.advance(),t==O.next)){O.advance();let i=!e.context&&e.canShift($Q);O.acceptToken(i?$Q:DZ)}},{contextual:!0});function Xa(O,e){return O>=65&&O<=90||O>=97&&O<=122||O==95||O>=192||!e&&O>=48&&O<=57}const lv=new $e((O,e)=>{if(O.next!=iv||!e.dialectEnabled(KZ)||(O.advance(),O.next==Kl))return;let t=0;for(;Hl.indexOf(O.next)>-1;)O.advance(),t++;if(Xa(O.next,!0)){for(O.advance(),t++;Xa(O.next,!1);)O.advance(),t++;for(;Hl.indexOf(O.next)>-1;)O.advance(),t++;if(O.next==rv)return;for(let i=0;;i++){if(i==7){if(!Xa(O.next,!0))return;break}if(O.next!="extends".charCodeAt(i))break;O.advance(),t++}}O.acceptToken(LZ,-t)}),cv=De({"get set async static":u.modifier,"for while do if else switch try catch finally return throw break continue default case":u.controlKeyword,"in of await yield void typeof delete instanceof":u.operatorKeyword,"let var const using function class extends":u.definitionKeyword,"import export from":u.moduleKeyword,"with debugger as new":u.keyword,TemplateString:u.special(u.string),super:u.atom,BooleanLiteral:u.bool,this:u.self,null:u.null,Star:u.modifier,VariableName:u.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":u.function(u.variableName),VariableDefinition:u.definition(u.variableName),Label:u.labelName,PropertyName:u.propertyName,PrivatePropertyName:u.special(u.propertyName),"CallExpression/MemberExpression/PropertyName":u.function(u.propertyName),"FunctionDeclaration/VariableDefinition":u.function(u.definition(u.variableName)),"ClassDeclaration/VariableDefinition":u.definition(u.className),PropertyDefinition:u.definition(u.propertyName),PrivatePropertyDefinition:u.definition(u.special(u.propertyName)),UpdateOp:u.updateOperator,"LineComment Hashbang":u.lineComment,BlockComment:u.blockComment,Number:u.number,String:u.string,Escape:u.escape,ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,RegExp:u.regexp,Equals:u.definitionOperator,Arrow:u.function(u.punctuation),": Spread":u.punctuation,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,"InterpolationStart InterpolationEnd":u.special(u.brace),".":u.derefOperator,", ;":u.separator,"@":u.meta,TypeName:u.typeName,TypeDefinition:u.definition(u.typeName),"type enum interface implements namespace module declare":u.definitionKeyword,"abstract global Privacy readonly override":u.modifier,"is keyof unique infer":u.operatorKeyword,JSXAttributeValue:u.attributeValue,JSXText:u.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":u.angleBracket,"JSXIdentifier JSXNameSpacedName":u.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":u.attributeName,"JSXBuiltin/JSXIdentifier":u.standard(u.tagName)}),hv={__proto__:null,export:18,as:23,from:31,default:34,async:39,function:40,extends:52,this:56,true:64,false:64,null:76,void:80,typeof:84,super:102,new:136,delete:152,yield:161,await:165,class:170,public:227,private:227,protected:227,readonly:229,instanceof:248,satisfies:251,in:252,const:254,import:286,keyof:339,unique:343,infer:349,is:385,abstract:405,implements:407,type:409,let:412,var:414,using:417,interface:423,enum:427,namespace:433,module:435,declare:439,global:443,for:462,of:471,while:474,with:478,do:482,if:486,else:488,switch:492,case:498,try:504,catch:508,finally:512,return:516,throw:520,break:524,continue:528,debugger:532},fv={__proto__:null,async:123,get:125,set:127,declare:187,public:189,private:189,protected:189,static:191,abstract:193,override:195,readonly:201,accessor:203,new:389},uv={__proto__:null,"<":143},Qv=Ae.deserialize({version:14,states:"$RQWO'#CdO>cQWO'#H[O>kQWO'#HbO>kQWO'#HdO`Q^O'#HfO>kQWO'#HhO>kQWO'#HkO>pQWO'#HqO>uQ07iO'#HwO%[Q^O'#HyO?QQ07iO'#H{O?]Q07iO'#H}O9kQ07hO'#IPO?hQ08SO'#ChO@jQ`O'#DiQOQWOOO%[Q^O'#EPOAQQWO'#ESO:RQ7[O'#EjOA]QWO'#EjOAhQpO'#FbOOQU'#Cf'#CfOOQ07`'#Dn'#DnOOQ07`'#Jm'#JmO%[Q^O'#JmOOQO'#Jq'#JqOOQO'#Ib'#IbOBhQ`O'#EcOOQ07`'#Eb'#EbOCdQ07pO'#EcOCnQ`O'#EVOOQO'#Jp'#JpODSQ`O'#JqOEaQ`O'#EVOCnQ`O'#EcPEnO!0LbO'#CaPOOO)CDu)CDuOOOO'#IX'#IXOEyO!bO,59TOOQ07b,59T,59TOOOO'#IY'#IYOFXO#tO,59TO%[Q^O'#D`OOOO'#I['#I[OFgO?MpO,59xOOQ07b,59x,59xOFuQ^O'#I]OGYQWO'#JkOI[QrO'#JkO+}Q^O'#JkOIcQWO,5:OOIyQWO'#ElOJWQWO'#JyOJcQWO'#JxOJcQWO'#JxOJkQWO,5;YOJpQWO'#JwOOQ07f,5:Z,5:ZOJwQ^O,5:ZOLxQ08SO,5:eOMiQWO,5:mONSQ07hO'#JvONZQWO'#JuO9ZQWO'#JuONoQWO'#JuONwQWO,5;XON|QWO'#JuO!#UQrO'#JjOOQ07b'#Ch'#ChO%[Q^O'#ERO!#tQpO,5:rOOQO'#Jr'#JrOOQO-EmOOQU'#J`'#J`OOQU,5>n,5>nOOQU-EpQWO'#HQO9aQWO'#HSO!CgQWO'#HSO:RQ7[O'#HUO!ClQWO'#HUOOQU,5=j,5=jO!CqQWO'#HVO!DSQWO'#CnO!DXQWO,59OO!DcQWO,59OO!FhQ^O,59OOOQU,59O,59OO!FxQ07hO,59OO%[Q^O,59OO!ITQ^O'#H^OOQU'#H_'#H_OOQU'#H`'#H`O`Q^O,5=vO!IkQWO,5=vO`Q^O,5=|O`Q^O,5>OO!IpQWO,5>QO`Q^O,5>SO!IuQWO,5>VO!IzQ^O,5>]OOQU,5>c,5>cO%[Q^O,5>cO9kQ07hO,5>eOOQU,5>g,5>gO!NUQWO,5>gOOQU,5>i,5>iO!NUQWO,5>iOOQU,5>k,5>kO!NZQ`O'#D[O%[Q^O'#JmO!NxQ`O'#JmO# gQ`O'#DjO# xQ`O'#DjO#$ZQ^O'#DjO#$bQWO'#JlO#$jQWO,5:TO#$oQWO'#EpO#$}QWO'#JzO#%VQWO,5;ZO#%[Q`O'#DjO#%iQ`O'#EUOOQ07b,5:n,5:nO%[Q^O,5:nO#%pQWO,5:nO>pQWO,5;UO!@}Q`O,5;UO!AVQ7[O,5;UO:RQ7[O,5;UO#%xQWO,5@XO#%}Q$ISO,5:rOOQO-E<`-E<`O#'TQ07pO,5:}OCnQ`O,5:qO#'_Q`O,5:qOCnQ`O,5:}O!@rQ07hO,5:qOOQ07`'#Ef'#EfOOQO,5:},5:}O%[Q^O,5:}O#'lQ07hO,5:}O#'wQ07hO,5:}O!@}Q`O,5:qOOQO,5;T,5;TO#(VQ07hO,5:}POOO'#IV'#IVP#(kO!0LbO,58{POOO,58{,58{OOOO-EwO+}Q^O,5>wOOQO,5>},5>}O#)VQ^O'#I]OOQO-EjQ08SO1G0{O#>wQ08SO1G0{O#@uQ08SO1G0{O#CuQ(CYO'#ChO#EsQ(CYO1G1^O#EzQ(CYO'#JjO!,lQWO1G1dO#F[Q08SO,5?TOOQ07`-EkQWO1G3lO$2dQ^O1G3nO$6hQ^O'#HmOOQU1G3q1G3qO$6uQWO'#HsO>pQWO'#HuOOQU1G3w1G3wO$6}Q^O1G3wO9kQ07hO1G3}OOQU1G4P1G4POOQ07`'#GY'#GYO9kQ07hO1G4RO9kQ07hO1G4TO$;UQWO,5@XO!*fQ^O,5;[O9ZQWO,5;[O>pQWO,5:UO!*fQ^O,5:UO!@}Q`O,5:UO$;ZQ(CYO,5:UOOQO,5;[,5;[O$;eQ`O'#I^O$;{QWO,5@WOOQ07b1G/o1G/oO$pQWO1G0pO!@}Q`O1G0pO!AVQ7[O1G0pOOQ07`1G5s1G5sO!@rQ07hO1G0]OOQO1G0i1G0iO%[Q^O1G0iO$PQrO1G4cOOQO1G4i1G4iO%[Q^O,5>wO$>ZQWO1G5qO$>cQWO1G6OO$>kQrO1G6PO9ZQWO,5>}O$>uQ08SO1G5|O%[Q^O1G5|O$?VQ07hO1G5|O$?hQWO1G5{O$?hQWO1G5{O9ZQWO1G5{O$?pQWO,5?QO9ZQWO,5?QOOQO,5?Q,5?QO$@UQWO,5?QO$'ZQWO,5?QOOQO-EXOOQU,5>X,5>XO%[Q^O'#HnO%7dQWO'#HpOOQU,5>_,5>_O9ZQWO,5>_OOQU,5>a,5>aOOQU7+)c7+)cOOQU7+)i7+)iOOQU7+)m7+)mOOQU7+)o7+)oO%7iQ`O1G5sO%7}Q(CYO1G0vO%8XQWO1G0vOOQO1G/p1G/pO%8dQ(CYO1G/pO>pQWO1G/pO!*fQ^O'#DjOOQO,5>x,5>xOOQO-E<[-E<[OOQO,5?O,5?OOOQO-EpQWO7+&[O!@}Q`O7+&[OOQO7+%w7+%wO$=mQ08SO7+&TOOQO7+&T7+&TO%[Q^O7+&TO%8nQ07hO7+&TO!@rQ07hO7+%wO!@}Q`O7+%wO%8yQ07hO7+&TO%9XQ08SO7++hO%[Q^O7++hO%9iQWO7++gO%9iQWO7++gOOQO1G4l1G4lO9ZQWO1G4lO%9qQWO1G4lOOQO7+%|7+%|O#%sQWO<zQ08SO1G2ZO%A]Q08SO1G2mO%ChQ08SO1G2oO%EsQ7[O,5>yOOQO-E<]-E<]O%E}QrO,5>zO%[Q^O,5>zOOQO-E<^-E<^O%FXQWO1G5uOOQ07b<YOOQU,5>[,5>[O&5oQWO1G3yO9ZQWO7+&bO!*fQ^O7+&bOOQO7+%[7+%[O&5tQ(CYO1G6PO>pQWO7+%[OOQ07b<pQWO<pQWO7+)eO'&sQWO<}AN>}O%[Q^OAN?ZOOQO<qQ(CYOG26}O!*fQ^O'#DyO1PQWO'#EWO'@gQrO'#JiO!*fQ^O'#DqO'@nQ^O'#D}O'@uQrO'#ChO'C]QrO'#ChO!*fQ^O'#EPO'CmQ^O,5;VO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O,5;aO!*fQ^O'#IiO'EpQWO,5a#@O#@^#@d#Ax#BW#Cr#DQ#DW#D^#Dd#Dn#Dt#Dz#EU#Eh#EnPPPPPPPPPP#EtPPPPPPP#Fi#Ip#KP#KW#K`PPPP$!d$%Z$+r$+u$+x$,q$,t$,w$-O$-WPP$-^$-b$.Y$/X$/]$/qPP$/u$/{$0PP$0S$0W$0Z$1P$1h$2P$2T$2W$2Z$2a$2d$2h$2lR!{RoqOXst!Z#c%j&m&o&p&r,h,m1w1zY!uQ'Z-Y1[5]Q%pvQ%xyQ&P|Q&e!VS'R!e-QQ'a!iS'g!r!xS*c$|*hQ+f%yQ+s&RQ,X&_Q-W'YQ-b'bQ-j'hQ/|*jQ1f,YR;Y:g%OdOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$a$e%j%p%}&f&i&m&o&p&r&v'O']'m'}(P(V(^(r(v(z)y+O+S,e,h,m-^-f-t-z.l.s0[0a0q1_1o1p1r1t1w1z1|2m2s3Z5Y5d5t5u5x6]7w7|8]8gS#p]:d!r)[$[$m'S)n,y,|.{2]3p5W6S9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]Q*u%ZQ+k%{Q,Z&bQ,b&jQ.c;QQ0h+^Q0l+`Q0w+lQ1n,`Q2{.[Q4v0rQ5k1gQ6i3PQ6u;RQ7h4wR8m6j&|kOPWXYZstuvw!Z!`!g!o#R#V#Y#c#n#t#x#{$O$P$Q$R$S$T$U$V$W$X$Y$[$a$e$m%j%p%}&f&i&j&m&o&p&r&v'O'S']'m'}(P(V(^(r(v(z)n)y+O+S+^,e,h,m,y,|-^-f-t-z.[.l.s.{0[0a0q1_1o1p1r1t1w1z1|2]2m2s3P3Z3p5W5Y5d5t5u5x6S6]6j7w7|8]8g9W9i:c:f:g:j:k:l:m:n:o:p:q:r:s:t:u:v:w:{;Y;Z;[;^;e;f;o;p<]t!nQ!r!u!x!y'R'Y'Z'g'h'i-Q-W-Y-j1[5]5_$v$si#u#w$c$d$x${%O%Q%[%]%a)u){)}*P*R*Y*`*p*q+]+`+w+z.Z.i/Z/j/k/m0Q0S0^1R1U1^3O3x4S4[4f4n4p5c6g7T7^7y8j8w9[9n:O:W:y:z:|:};O;P;S;T;U;V;W;X;_;`;a;b;c;d;g;h;i;j;k;l;m;n;q;r < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:371,context:nv,nodeProps:[["isolate",-8,4,5,13,33,35,48,50,52,""],["group",-26,8,16,18,65,201,205,209,210,212,215,218,228,230,236,238,240,242,245,251,257,259,261,263,265,267,268,"Statement",-32,12,13,28,31,32,38,48,51,52,54,59,67,75,79,81,83,84,106,107,116,117,134,137,139,140,141,142,144,145,164,165,167,"Expression",-23,27,29,33,37,39,41,168,170,172,173,175,176,177,179,180,181,183,184,185,195,197,199,200,"Type",-3,87,99,105,"ClassItem"],["openedBy",22,"<",34,"InterpolationStart",53,"[",57,"{",72,"(",157,"JSXStartCloseTag"],["closedBy",23,">",36,"InterpolationEnd",47,"]",58,"}",73,")",162,"JSXEndTag"]],propSources:[cv],skippedNodes:[0,4,5,271],repeatNodeCount:37,tokenData:"$Fj(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#8g!R![#:v![!]#Gv!]!^#IS!^!_#J^!_!`#Ns!`!a$#_!a!b$(l!b!c$,k!c!}Er!}#O$-u#O#P$/P#P#Q$4h#Q#R$5r#R#SEr#S#T$7P#T#o$8Z#o#p$q#r#s$?}#s$f%Z$f$g+g$g#BYEr#BY#BZ$AX#BZ$ISEr$IS$I_$AX$I_$I|Er$I|$I}$Dd$I}$JO$Dd$JO$JTEr$JT$JU$AX$JU$KVEr$KV$KW$AX$KW&FUEr&FU&FV$AX&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$AX?HUOEr(n%d_$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$f&j(OpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(OpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Op(R!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$f&j(Op(R!b't(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST(P#S$f&j'u(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$f&j(Op(R!b'u(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$f&j!o$Ip(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#t$Id$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/|3l_'}$(n$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$f&j(R!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$f&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$a`$f&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$a``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$a`$f&j(R!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(R!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$a`(R!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k#%|:hh$f&j(Op(R!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXVS$f&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSVSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWVS(R!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]VS$f&j(OpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWVS(OpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYVS(Op(R!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%lQ^$f&j!USOY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@Y!_!}!=y!}#O!Bw#O#P!Dj#P#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!?Ta$f&j!USO!^&c!_#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&cS!@_X!USOY!@YZ!P!@Y!P!Q!@z!Q!}!@Y!}#O!Ac#O#P!Bb#P;'S!@Y;'S;=`!Bq<%lO!@YS!APU!US#Z#[!@z#]#^!@z#a#b!@z#g#h!@z#i#j!@z#m#n!@zS!AfVOY!AcZ#O!Ac#O#P!A{#P#Q!@Y#Q;'S!Ac;'S;=`!B[<%lO!AcS!BOSOY!AcZ;'S!Ac;'S;=`!B[<%lO!AcS!B_P;=`<%l!AcS!BeSOY!@YZ;'S!@Y;'S;=`!Bq<%lO!@YS!BtP;=`<%l!@Y&n!B|[$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#O!Bw#O#P!Cr#P#Q!=y#Q#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!CwX$f&jOY!BwYZ&cZ!^!Bw!^!_!Ac!_#o!Bw#o#p!Ac#p;'S!Bw;'S;=`!Dd<%lO!Bw&n!DgP;=`<%l!Bw&n!DoX$f&jOY!=yYZ&cZ!^!=y!^!_!@Y!_#o!=y#o#p!@Y#p;'S!=y;'S;=`!E[<%lO!=y&n!E_P;=`<%l!=y(Q!Eki$f&j(R!b!USOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!Eb#[#]&}#]#^!Eb#^#a&}#a#b!Eb#b#g&}#g#h!Eb#h#i&}#i#j!Eb#j#m&}#m#n!Eb#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!GaZ(R!b!USOY!GYZw!GYwx!@Yx!P!GY!P!Q!HS!Q!}!GY!}#O!Ic#O#P!Bb#P;'S!GY;'S;=`!JZ<%lO!GY!f!HZb(R!b!USOY'}Zw'}x#O'}#P#Z'}#Z#[!HS#[#]'}#]#^!HS#^#a'}#a#b!HS#b#g'}#g#h!HS#h#i'}#i#j!HS#j#m'}#m#n!HS#n;'S'};'S;=`(f<%lO'}!f!IhX(R!bOY!IcZw!Icwx!Acx#O!Ic#O#P!A{#P#Q!GY#Q;'S!Ic;'S;=`!JT<%lO!Ic!f!JWP;=`<%l!Ic!f!J^P;=`<%l!GY(Q!Jh^$f&j(R!bOY!JaYZ&cZw!Jawx!Bwx!^!Ja!^!_!Ic!_#O!Ja#O#P!Cr#P#Q!Q#V#X%Z#X#Y!4|#Y#b%Z#b#c#Zd$f&j(Op(R!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#?tf$f&j(Op(R!bo$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#?i!R!S#?i!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#?i#S#b%Z#b#c#hv[O]||-1},{term:334,get:O=>fv[O]||-1},{term:70,get:O=>uv[O]||-1}],tokenPrec:14638}),Wg=[ve("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),ve("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),ve("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),ve("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),ve("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),ve(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),ve("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),ve(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),ve(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),ve('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),ve('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],dv=Wg.concat([ve("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),ve("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),ve("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),pQ=new th,kg=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function dr(O){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,O),!0}}const $v=["FunctionDeclaration"],pv={FunctionDeclaration:dr("function"),ClassDeclaration:dr("class"),ClassExpression:()=>!0,EnumDeclaration:dr("constant"),TypeAliasDeclaration:dr("type"),NamespaceDeclaration:dr("namespace"),VariableDefinition(O,e){O.matchContext($v)||e(O,"variable")},TypeDefinition(O,e){e(O,"type")},__proto__:null};function Yg(O,e){let t=pQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(ge.IncludeAnonymous).iterate(s=>{if(r)r=!1;else if(s.name){let o=pv[s.name];if(o&&o(s,n)||kg.has(s.name))return!1}else if(s.to-s.from>8192){for(let o of Yg(O,s.node))i.push(o);return!1}}),pQ.set(e,i),i}const mQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,qg=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function mv(O){let e=de(O.state).resolveInner(O.pos,-1);if(qg.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&mQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)kg.has(r.name)&&(i=i.concat(Yg(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:mQ}}const vt=Ee.define({name:"javascript",parser:Qv.configure({props:[gt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:oh,SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:DO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ce({except:/^{/}),JSXElement(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},JSXEscape(O){let e=/\s*\}/.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"JSXOpenTag JSXSelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ot.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":$O,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),zg={test:O=>/^JSX/.test(O.name),facet:ih({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Rg=vt.configure({dialect:"ts"},"typescript"),Vg=vt.configure({dialect:"jsx",props:[rh.add(O=>O.isTop?[zg]:void 0)]}),Ug=vt.configure({dialect:"jsx ts",props:[rh.add(O=>O.isTop?[zg]:void 0)]},"typescript");let _g=O=>({label:O,type:"keyword"});const jg="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(_g),gv=jg.concat(["declare","implements","private","protected","public"].map(_g));function Gg(O={}){let e=O.jsx?O.typescript?Ug:Vg:O.typescript?Rg:vt,t=O.typescript?dv.concat(gv):Wg.concat(jg);return new tt(e,[vt.data.of({autocomplete:mh(qg,Yo(t))}),vt.data.of({autocomplete:mv}),O.jsx?Xv:[]])}function Sv(O){for(;;){if(O.name=="JSXOpenTag"||O.name=="JSXSelfClosingTag"||O.name=="JSXFragmentTag")return O;if(O.name=="JSXEscape"||!O.parent)return null;O=O.parent}}function gQ(O,e,t=O.length){for(let i=e==null?void 0:e.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return O.sliceString(i.from,Math.min(i.to,t));return""}const Pv=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Xv=U.inputHandler.of((O,e,t,i,r)=>{if((Pv?O.composing:O.compositionStarted)||O.state.readOnly||e!=t||i!=">"&&i!="/"||!vt.isActiveAt(O.state,e,-1))return!1;let n=r(),{state:s}=n,o=s.changeByRange(a=>{var l;let{head:c}=a,h=de(s).resolveInner(c-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(s.doc.sliceString(c-1,c)!=i||h.name=="JSXAttributeValue"&&h.to>c)){if(i==">"&&h.name=="JSXFragmentTag")return{range:a,changes:{from:c,insert:""}};if(i=="/"&&h.name=="JSXStartCloseTag"){let Q=h.parent,d=Q.parent;if(d&&Q.from==c-2&&((f=gQ(s.doc,d.firstChild,c))||((l=d.firstChild)===null||l===void 0?void 0:l.name)=="JSXFragmentTag")){let $=`${f}>`;return{range:X.cursor(c+$.length,-1),changes:{from:c,insert:$}}}}else if(i==">"){let Q=Sv(h);if(Q&&Q.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(s.doc.sliceString(c,c+2))&&(f=gQ(s.doc,Q,c)))return{range:a,changes:{from:c,insert:``}}}}return{range:a}});return o.changes.empty?!1:(O.dispatch([n,s.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),yv=De({null:u.null,instanceof:u.operatorKeyword,this:u.self,"new super assert open to with void":u.keyword,"class interface extends implements enum var":u.definitionKeyword,"module package import":u.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":u.controlKeyword,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws":u.modifier,IntegerLiteral:u.integer,FloatingPointLiteral:u.float,"StringLiteral TextBlock":u.string,CharacterLiteral:u.character,LineComment:u.lineComment,BlockComment:u.blockComment,BooleanLiteral:u.bool,PrimitiveType:u.standard(u.typeName),TypeName:u.typeName,Identifier:u.variableName,"MethodName/Identifier":u.function(u.variableName),Definition:u.definition(u.variableName),ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,AssignOp:u.definitionOperator,UpdateOp:u.updateOperator,Asterisk:u.punctuation,Label:u.labelName,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,".":u.derefOperator,", ;":u.separator}),xv={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:236,open:265,module:267,requires:272,transitive:274,exports:276,to:278,opens:280,uses:282,provides:284,with:286,package:290,import:294,if:306,else:308,while:312,for:316,var:323,assert:330,switch:334,case:340,do:344,break:348,continue:352,return:356,throw:362,try:366,catch:370,finally:378},bv=Ae.deserialize({version:14,states:"#!tQ]QPOOQ$wQPOOO(_QQO'#H]O*cQQO'#CbOOQO'#Cb'#CbO*jQPO'#CaO*rOSO'#CpOOQO'#Hb'#HbOOQO'#Cu'#CuO,_QPO'#D_O,xQQO'#HlOOQO'#Hl'#HlO/^QQO'#HgO/eQQO'#HgOOQO'#Hg'#HgOOQO'#Hf'#HfO1iQPO'#DUO1vQPO'#GmO4nQPO'#D_O4uQPO'#DzO*jQPO'#E[O5hQPO'#E[OOQO'#DV'#DVO6vQQO'#H`O8}QQO'#EeO9UQPO'#EdO9ZQPO'#EfOOQO'#Ha'#HaO7^QQO'#HaO:^QQO'#FgO:eQPO'#EwO:jQPO'#E|O:jQPO'#FOOOQO'#H`'#H`OOQO'#HX'#HXOOQO'#Gg'#GgOOQO'#HW'#HWO;zQPO'#FhOOQO'#HV'#HVOOQO'#Gf'#GfQ]QPOOOOQO'#Hr'#HrOQQPO'#GYO>nQQO'#HhO?ZQQO'#CuO?bQPO'#HwO?pQPO'#D_O@`QPO'#DpO?eQPO'#DqO@jQPO'#HwO@{QPO'#DpOATQPO'#IQOAYQPO'#E`OOQO'#Hq'#HqOOQO'#Gl'#GlQ$wQPOOOAbQPO'#HrOOQO'#H]'#H]OCaQQO,58{OOQO'#HZ'#HZOOOO'#Gh'#GhOESOSO,59[OOQO,59[,59[OOQO'#Hh'#HhOEsQPO,59eOFuQPO,59yOOQO-E:e-E:eO*jQPO,58zOGiQPO,58zO*jQPO,5;|OGnQPO'#DQOGsQPO'#DQOOQO'#Gj'#GjOHsQQO,59jOOQO'#Dm'#DmOJ[QPO'#HtOJfQPO'#DlOJtQPO'#HsOJ|QPO,5<^OKRQPO,59^OKlQPO'#CxOOQO,59c,59cOKsQPO,59bOLOQQO'#H]OM}QQO'#CbO! |QPO'#D_O!#RQQO'#HlO!#cQQO,59pO!#jQPO'#DvO!#xQPO'#H{O!$QQPO,5:`O!$VQPO,5:`O!$mQPO,5;mO!$xQPO'#ISO!%TQPO,5;dO!%YQPO,5=XOOQO-E:k-E:kOOQO,5:f,5:fO!&pQPO,5:fO!&wQPO,5:vO?bQPO,5<^O*jQPO,5:vO^,5>^O!*TQPO,5:gO!*cQPO,5:qO!*kQPO,5:lO!*vQPO,5>ZO!#jQPO,5>ZO!&|QPO,59UO!+RQQO,58zO!+ZQQO,5;|O!+cQQO,5TQPO,5TQPO,5<|O!1}QPO,59jO!2[QPO'#HtO!2cQPO,59xO!2hQPO,5>cO?bQPO,59xO!2sQPO,5:[OAYQPO,5:zO!2{QPO'#DrO?eQPO'#DrO!3WQPO'#HxO!3`QPO,5:]O?bQPO,5>cO!'{QPO,5>cOATQPO,5>lOOQO,5:[,5:[O!$VQPO'#DtOOQO,5>l,5>lO!3eQPO'#EaOOQO,5:z,5:zO!6fQPO,5:zO!'{QPO'#DxOOQO-E:j-E:jOOQO,5:y,5:yO*jQPO,58}O!6kQPO'#ChOOQO1G.k1G.kOOOO-E:f-E:fOOQO1G.v1G.vO!+RQQO1G.fO*jQPO1G.fO!6uQQO1G1hOOQO,59l,59lO!6}QPO,59lOOQO-E:h-E:hO!7SQPO,5>`O!7kQPO,5:WO_OOQO1G1x1G1xOOQO1G.x1G.xO!8]QPO'#CyO!8{QPO'#HlO!9VQPO'#CzO!9eQPO'#HkO!9mQPO,59dOOQO1G.|1G.|OKsQPO1G.|O!:TQPO,59eO!:bQQO'#H]O!:sQQO'#CbOOQO,5:b,5:bOgOOQO1G/z1G/zO!nOOQO1G1O1G1OOOQO1G0Q1G0QO!=PQPO'#E]OOQO1G0b1G0bO!=pQPO1G1xO!&wQPO1G0bO!*TQPO1G0RO!*cQPO1G0]O!*kQPO1G0WOOQO1G/]1G/]O!=uQQO1G.pO9UQPO1G0jO*jQPO1G0jO<^QPO'#HoO!?iQQO1G.pOOQO1G.p1G.pO!?nQQO1G0iOOQO1G0l1G0lO!?uQPO1G0lO!@QQQO1G.oO!@hQQO'#HpO!@uQPO,59sO!BUQQO1G0pO!CmQQO1G0pO!D{QQO1G0pO!EYQQO1G0pO!F_QQO1G0pO!FuQQO1G0pO!GPQQO1G1PO!GWQQO'#HlOOQO1G0{1G0{O!HZQQO1G0}OOQO1G0}1G0}OOQO1G1n1G1nO!HqQPO'#D[O!'{QPO'#D|O!'{QPO'#D}OOQO1G0R1G0RO!HxQPO1G0RO!H}QPO1G0RO!IVQPO1G0RO!IbQPO'#EXOOQO1G0]1G0]O!IuQPO1G0]O!IzQPO'#ETO!'{QPO'#ESOOQO1G0W1G0WO!JtQPO1G0WO!JyQPO1G0WO!KRQPO'#EhO!KYQPO'#EhOOQO'#Gw'#GwO!KbQQO1G0mO!MRQQO1G3uO9UQPO1G3uO# QQPO'#FWOOQO1G.f1G.fOOQO1G1h1G1hO# XQPO1G1jOOQO1G1j1G1jO# dQQO1G1jO# lQPO1G1pOOQO1G1s1G1sO*zQPO'#D_O,xQQO,5TQPO'#G`OOQO1G2`1G2`O#/{QPO1G2hO#3yQPO,5>fOOQO1G/d1G/dOOQO1G3}1G3}O#4[QPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO!6fQPO1G0fOOQO,5:^,5:^O!'{QPO'#DsO#4aQPO,5:^O?eQPO'#GqO#4lQPO,5>dOOQO1G/w1G/wOATQPO'#HzO#4tQPO1G3}O?bQPO1G3}OOQO1G4W1G4WO!!mQPO'#DvO! |QPO'#D_OOQO,5:{,5:{O#5PQPO,5:{O#5PQPO,5:{O#5WQQO'#H`O#6fQQO'#HaO#6pQQO'#EbO#6{QPO'#EbO#7TQPO'#H}OOQO,5:d,5:dOOQO1G.i1G.iO#7`QQO'#EeO#7pQQO'#H_O#8QQPO'#FSOOQO'#H_'#H_O#8[QPO'#H_O#8yQPO'#IVO#9RQPO,59SOOQO7+$Q7+$QO!+RQQO7+$QOOQO7+'S7+'SOOQO1G/W1G/WO#9WQPO'#DoO#9bQQO'#HuOOQO'#Hu'#HuOOQO1G/r1G/rOOQO,5=Z,5=ZOOQO-E:m-E:mO#9rQWO,58{O#9yQPO,59fOOQO,59f,59fO!'{QPO'#HnOKWQPO'#GiO#:XQPO,5>VOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#:aQQO1G/{OOQO1G/}1G/}O#:fQPO1G/{OOQO1G/|1G/|OZO#[OOQO1G/_1G/_O:jQPO7+&kO#XQPO'#IOO#>dQPO,5:sO?bQPO'#HwO!'{QPO'#HwO#>lQPO'#DpOOQO'#Gt'#GtO#>sQPO,5:oOOQO,5:o,5:oOOQO,5:n,5:nOOQO,5;S,5;SO#?mQQO,5;SO#?tQPO,5;SOOQO-E:u-E:uOOQO7+&X7+&XOOQO7+)a7+)aO#?{QQO7+)aOOQO'#G{'#G{O#AiQPO,5;rOOQO,5;r,5;rO#ApQPO'#FXO*jQPO'#FXO*jQPO'#FXO*jQPO'#FXO#BOQPO7+'UO#BTQPO7+'UOOQO7+'U7+'UO]QPO7+'[O#B`QPO1G1{O?bQPO1G1{O#BnQQO1G1wO!'tQPO1G1wO#BuQPO1G1wO#B|QQO7+'hOOQO'#HO'#HOO#CTQPO,5TQPO,5iO#JsQPO,59TO#JzQPO'#IUO#KSQPO,5;nO*jQPO'#GzO#KXQPO,5>qOOQO1G.n1G.nOOQO<Y,5>YOOQO,5=T,5=TOOQO-E:g-E:gO#KnQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<jO$!iQPO'#EZOOQO1G0_1G0_O$!pQPO1G0_O?bQPO,5:pOOQO-E:r-E:rOOQO1G0Z1G0ZOOQO1G0n1G0nO$!uQQO1G0nOOQO<pOOQO1G1Y1G1YO$(XQPO'#FTOOQO,5=f,5=fOOQO-E:x-E:xO$(^QPO'#GnO$(kQPO,5>bOOQO1G/u1G/uOOQO<sAN>sO!HxQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O9UQPOAN?[OOQO1G0`1G0`O$)SQPO1G0`OOQO,5=a,5=aOOQO-E:s-E:sO$)bQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1_1G1_O$)iQQO1G1_OOQO-E:z-E:zO$)qQQO'#IXO$)lQPO1G1_O$#[QPO1G1_O*jQPO1G1_OOQOAN@[AN@[O$)|QQO<sO$+fQPO7+&yO$+kQQO'#IYOOQOAN@mAN@mO$+vQQOAN@mOOQOAN@iAN@iO$+}QPOAN@iO$,SQQO<tOOQOG26XG26XOOQOG26TG26TOOQO<YOWiXuiX%|iX&OiX&QiX&^iX~OZ!aX~P>uOu#OO%|TO&O#SO&Q#SO~O%|TO~P3^Og^Oh^Ov#pO!u#rO!z#qO&^!hO&s#oO~O&O!cO&Q!dO~P?wOg^Oh^O%|TO&O!cO&Q!dO~O}cO!P%^O~OZ%_O~O}%aO!m%dO~O}cOg&fXh&fXv&fX!S&fX!T&fX!U&fX!V&fX!W&fX!X&fX!Y&fX!Z&fX!]&fX!^&fX!_&fX!u&fX!z&fX%|&fX&O&fX&Q&fX&^&fX&s&fX~OW%gOZ%hOgTahTa%|Ta&OTa&QTa~OvTa!STa!TTa!UTa!VTa!WTa!XTa!YTa!ZTa!]Ta!^Ta!_Ta!uTa!zTa#xTa#yTa$VTa$gTa&sTa&^TauTaYTaqTa|Ta!PTa~PBxO&V%kO&X!tO~Ou#OO%|TOqma&]maYma&mma!Pma~O&uma}ma!rma~PE[O!SyO!TyO!UyO!VyO!WyO!XyO!YyO!ZzO!]yO!^yO!_yO~Og!Rah!Rav!Ra!u!Ra!z!Ra$g!Ra&O!Ra&Q!Ra&s!Ra&^!Ra~PFQO#y%mO~Os%oO~Ou%pO%|TO~Ou#OO%|ra&Ora&Qra&uraYrawra&mra&pra!Pra&]raqra~OWra#_ra#ara#cra#dra#era#fra#gra#hra#jra#nra#qra&^ra#orasra|ra~PG{Ou#OO%|TOq&hX!P&hX!b&hX~OY&hX#o&hX~PIyO!b%sOq!`X!P!`XY!`X~Oq%tO!P&gX~O!P%vO~Ov%wO~Og^Oh^O%|0iO&O!wO&QWO&a%zO~O&]&_P~PKWO%|TO&O!wO&QWO~OW&PXYiXY!aXY&PXZ&PXq!aXu&PXwiX!b&PX#]&PX#_&PX#a&PX#c&PX#d&PX#e&PX#f&PX#g&PX#h&PX#j&PX#n&PX#q&PX&]&PX&^&PX&miX&m&PX&piX&uiX&u&PX&w!aX~P>uOWUXYUXY!aXY&[XZUXq!aXuUXw&[X!bUX#]UX#_UX#aUX#cUX#dUX#eUX#fUX#gUX#hUX#jUX#nUX#qUX&]UX&^UX&mUX&m&[X&p&[X&uUX&u&[X&w!aX~P>YOg^Oh^O%|TO&O!wO&QWOg!RXh!RX&O!RX&Q!RX~PFQOu#OOw&UO%|TO&O&RO&Q&QO&p&TO~OW#XOY&`X&m&`X&u&`X~P!!mOY&WO~P9`Og^Oh^O&O!wO&QWO~Oq&YOY&oX~OY&[O~Og^Oh^O%|TO&O!wO&QWOY&oP~PFQOY&aO&m&_O&u#vO~Oq&bO&w$WOY&vX~OY&dO~O%|TOg%aah%aav%aa!S%aa!T%aa!U%aa!V%aa!W%aa!X%aa!Y%aa!Z%aa!]%aa!^%aa!_%aa!u%aa!z%aa$g%aa&O%aa&Q%aa&s%aa&^%aa~O|&eO~P]O}&fO~Op&rOw&sO&OSO&Q!qO&^#YO~Oz&qO~P!&|Oz&uO&OSO&Q!qO&^#YO~OY&dP~P:jOg^Oh^O%|TO&O!wO&QWO~O}cO~P:jOW#XOu#OO%|TO&u&`X~O#q$TO!P#ra#_#ra#a#ra#c#ra#d#ra#e#ra#f#ra#g#ra#h#ra#j#ra#n#ra&]#ra&^#ra&m#raY#ra#o#ras#raq#ra|#ra~Oo'XO}'WO!r'YO&^!hO~O}'_O!r'YO~Oo'cO}'bO&^!hO~OZ#xOu'gO%|TO~OW%gO}'mO~OW%gO!P'oO~OW'pO!P'qO~O$g!WO&O0kO&Q0jO!P&dP~P/lO!P'|O#o'}O~P9`O}(OO~O$b(QO~O!P(RO~O!P(SO~O!P(TO~P9`O!P(VO~P9`OZ$iO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%|TO&O(XO&Q(WO&WUO~PFQO%P(bO%T(cOZ$|a_$|a`$|aa$|ab$|ac$|ae$|ag$|ah$|ap$|av$|aw$|az$|a}$|a!P$|a!S$|a!T$|a!U$|a!V$|a!W$|a!X$|a!Y$|a!Z$|a![$|a!]$|a!^$|a!_$|a!u$|a!z$|a#e$|a#q$|a#s$|a#t$|a#x$|a#y$|a$V$|a$X$|a$_$|a$b$|a$d$|a$g$|a$k$|a$m$|a$r$|a$t$|a$v$|a$x$|a${$|a$}$|a%v$|a%|$|a&O$|a&Q$|a&W$|a&s$|a|$|a$`$|a$p$|a~O}ra!rra&}ra~PG{OZ%_O~PIyO!P(gO~O!m%dO}&ka!P&ka~O}cO!P(jO~Oo(nOq!fX&]!fX~Oq(pO&]&lX~O&](rO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op)OOv{Ow(}Oz!OO|(yO}cO!PvO![!`O!u}O!z|O#epO#qoO#spO#tpO#x!RO#y!QO$V!SO$X!TO$_!UO$b!VO$d!XO$g!WO$k!YO$m!ZO$r![O$t!]O$v!^O$x!_O${!aO$}!bO%|TO&ORO&QQO&WUO&^#YO&sdO~PFQO}%aO~O})VOY&yP~P:jOW%gO!P)^O~Os)_O~Ou#OO%|TOq&ha!P&ha!b&haY&ha#o&ha~O})`O~P:jOq%tO!P&ga~Og^Oh^O%|0iO&O!wO&QWO~O&a)gO~P!7zOu#OO%|TOq&`X&]&`XY&`X&m&`X!P&`X~O}&`X!r&`X~P!8dOo)iOp)iOqnX&]nX~Oq)jO&]&_X~O&])lO~Ou#OOw)nO%|TO&OSO&Q!qO~OYma&mma&uma~P!9rOW&PXY!aXq!aXu!aX%|!aX~OWUXY!aXq!aXu!aX%|!aX~OW)qO~Ou#OO%|TO&O#SO&Q#SO&p)sO~Og^Oh^O%|TO&O!wO&QWO~PFQOq&YOY&oa~Ou#OO%|TO&O#SO&Q#SO&p&TO~OY)vO~OY)yO&m&_O~Oq&bOY&va~Og^Oh^Ov{O|*RO!u}O%|TO&O!wO&QWO&sdO~PFQO!P*SO~OW^iZ#XXu^i!P^i!b^i#]^i#_^i#a^i#c^i#d^i#e^i#f^i#g^i#h^i#j^i#n^i#q^i&]^i&^^i&m^i&u^iY^i#o^is^iq^i|^i~OW*cO~Os*dO~P9`Oz*eO&OSO&Q!qO~O!P]iY]i#o]is]iq]i|]i~P9`Oq*fOY&dX!P&dX~P9`OY*hO~O#q$TO!P#^i#_#^i#a#^i#c#^i#d#^i#e#^i#f#^i#j#^i#n#^i&]#^i&^#^i&m#^iY#^i#o#^is#^iq#^i|#^i~O#g$RO#h$RO~P!@zO#_#|O#f$QO#g$RO#h$RO#j$VO#q$TO&]#zO&^#zO!P#^i#a#^i#c#^i#d#^i#n#^i&m#^iY#^i#o#^is#^iq#^i|#^i~O#e$PO~P!B`O#_#|O#f$QO#g$RO#h$RO#j$VO#q$TO&]#zO&^#zO!P#^i#c#^i#d#^i#n#^iY#^i#o#^is#^iq#^i|#^i~O#a#}O#e$PO&m#{O~P!CtO#e#^i~P!B`O#q$TO!P#^i#a#^i#c#^i#d#^i#e#^i#f#^i#n#^i&m#^iY#^i#o#^is#^iq#^i|#^i~O#_#|O#g$RO#h$RO#j$VO&]#zO&^#zO~P!EaO#g#^i#h#^i~P!@zO#o*iO~P9`O#_&`X#a&`X#c&`X#d&`X#e&`X#f&`X#g&`X#h&`X#j&`X#n&`X#q&`X&^&`X#o&`Xs&`X|&`X~P!8dO!P#kiY#ki#o#kis#kiq#ki|#ki~P9`O|*lO~P$wO}'WO~O}'WO!r'YO~Oo'XO}'WO!r'YO~O%|TO&O#SO&Q#SO|&rP!P&rP~PFQO}'_O~Og^Oh^Ov{O|*yO!P*wO!u}O!z|O%|TO&O!wO&QWO&^!hO&sdO~PFQO}'bO~Oo'cO}'bO~Os*{O~P:jOu*}O%|TO~Ou'gO})`O%|TOW#Zi!P#Zi#_#Zi#a#Zi#c#Zi#d#Zi#e#Zi#f#Zi#g#Zi#h#Zi#j#Zi#n#Zi#q#Zi&]#Zi&^#Zi&m#Zi&u#ZiY#Zi#o#Zis#Ziq#Zi|#Zi~O}'WOW&ciu&ci!P&ci#_&ci#a&ci#c&ci#d&ci#e&ci#f&ci#g&ci#h&ci#j&ci#n&ci#q&ci&]&ci&^&ci&m&ci&u&ciY&ci#o&cis&ciq&ci|&ci~O#|+VO$O+WO$Q+WO$R+XO$S+YO~O|+UO~P!NoO$Y+ZO&OSO&Q!qO~OW+[O!P+]O~O$`+^OZ$^i_$^i`$^ia$^ib$^ic$^ie$^ig$^ih$^ip$^iv$^iw$^iz$^i}$^i!P$^i!S$^i!T$^i!U$^i!V$^i!W$^i!X$^i!Y$^i!Z$^i![$^i!]$^i!^$^i!_$^i!u$^i!z$^i#e$^i#q$^i#s$^i#t$^i#x$^i#y$^i$V$^i$X$^i$_$^i$b$^i$d$^i$g$^i$k$^i$m$^i$r$^i$t$^i$v$^i$x$^i${$^i$}$^i%v$^i%|$^i&O$^i&Q$^i&W$^i&s$^i|$^i$p$^i~Og^Oh^O$g#sO&O!wO&QWO~O!P+bO~P:jO!P+cO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op!POv{OwkOz!OO}cO!PvO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!Z+hO![!`O!]yO!^yO!_yO!u}O!z|O#epO#qoO#spO#tpO#x!RO#y!QO$V!SO$X!TO$_!UO$b!VO$d!XO$g!WO$k!YO$m!ZO$p+iO$r![O$t!]O$v!^O$x!_O${!aO$}!bO%|TO&ORO&QQO&WUO&sdO~O|+gO~P#&ROW&PXY&PXZ&PXu&PX!P&PX&uiX&u&PX~P>uOWUXYUXZUXuUX!PUX&uUX&u&[X~P>YOW#tOu#uO&u#vO~OW&TXY%WXu&TX!P%WX&u&TX~OZ#XX~P#+WOY+oO!P+mO~O%P(bO%T(cOZ$|i_$|i`$|ia$|ib$|ic$|ie$|ig$|ih$|ip$|iv$|iw$|iz$|i}$|i!P$|i!S$|i!T$|i!U$|i!V$|i!W$|i!X$|i!Y$|i!Z$|i![$|i!]$|i!^$|i!_$|i!u$|i!z$|i#e$|i#q$|i#s$|i#t$|i#x$|i#y$|i$V$|i$X$|i$_$|i$b$|i$d$|i$g$|i$k$|i$m$|i$r$|i$t$|i$v$|i$x$|i${$|i$}$|i%v$|i%|$|i&O$|i&Q$|i&W$|i&s$|i|$|i$`$|i$p$|i~OZ+rO~O%P(bO%T(cOZ%Ui_%Ui`%Uia%Uib%Uic%Uie%Uig%Uih%Uip%Uiv%Uiw%Uiz%Ui}%Ui!P%Ui!S%Ui!T%Ui!U%Ui!V%Ui!W%Ui!X%Ui!Y%Ui!Z%Ui![%Ui!]%Ui!^%Ui!_%Ui!u%Ui!z%Ui#e%Ui#q%Ui#s%Ui#t%Ui#x%Ui#y%Ui$V%Ui$X%Ui$_%Ui$b%Ui$d%Ui$g%Ui$k%Ui$m%Ui$r%Ui$t%Ui$v%Ui$x%Ui${%Ui$}%Ui%v%Ui%|%Ui&O%Ui&Q%Ui&W%Ui&s%Ui|%Ui$`%Ui$p%Ui~Ou#OO%|TO}&na!P&na!m&na~O!P+xO~Oo(nOq!fa&]!fa~Oq(pO&]&la~O!m%dO}&ki!P&ki~O|,RO~P]OW,TO~P5oOW&TXu&TX#_&TX#a&TX#c&TX#d&TX#e&TX#f&TX#g&TX#h&TX#j&TX#n&TX#q&TX&]&TX&^&TX&m&TX&u&TX~OZ#xO!P&TX~P#5_OW$dOZ#xO&u#vO~Op,VOw,VO~Oq,WO}&qX!P&qX~O!b,YO#]#wOY&TXZ#XX~P#5_OY&RXq&RX|&RX!P&RX~P9`O})VO|&xP~P:jOY&RXg%ZXh%ZX%|%ZX&O%ZX&Q%ZXq&RX|&RX!P&RX~Oq,]OY&yX~OY,_O~O})`O|&jP~P:jOq&iX!P&iX|&iXY&iX~P9`O&aTa~PBxOo)iOp)iOqna&]na~Oq)jO&]&_a~OW,gO~Ow,hO~Ou#OO%|TO&O,lO&Q,kO~Og^Oh^Ov#pO!u#rO&O!wO&QWO&s#oO~Og^Oh^Ov{O|,qO!u}O%|TO&O!wO&QWO&sdO~PFQOw,|O&OSO&Q!qO&^#YO~Oq*fOY&da!P&da~O#_ma#ama#cma#dma#ema#fma#gma#hma#jma#nma#qma&^ma#omasma|ma~PE[O|-QO~P$wOZ#xO}'WOq!|X|!|X!P!|X~Oq-UO|&rX!P&rX~O|-XO!P-WO~O&^!hO~P4|Og^Oh^Ov{O|-]O!P*wO!u}O!z|O%|TO&O!wO&QWO&^!hO&sdO~PFQOs-^O~P9`Os-^O~P:jO}'WOW&cqu&cq!P&cq#_&cq#a&cq#c&cq#d&cq#e&cq#f&cq#g&cq#h&cq#j&cq#n&cq#q&cq&]&cq&^&cq&m&cq&u&cqY&cq#o&cqs&cqq&cq|&cq~O|-bO~P!NoO!W-fO#}-fO&OSO&Q!qO~O!P-iO~O$Y-jO&OSO&Q!qO~O!b%sO#o-lOq!`X!P!`X~O!P-nO~P9`O!P-nO~P:jO!P-qO~P9`O|-sO~P#&RO![$^O#o-tO~O!P-vO~O!b-wO~OY-zOZ$iO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%|TO&O(XO&Q(WO&WUO~PFQOY-zO!P-{O~O%P(bO%T(cOZ%Uq_%Uq`%Uqa%Uqb%Uqc%Uqe%Uqg%Uqh%Uqp%Uqv%Uqw%Uqz%Uq}%Uq!P%Uq!S%Uq!T%Uq!U%Uq!V%Uq!W%Uq!X%Uq!Y%Uq!Z%Uq![%Uq!]%Uq!^%Uq!_%Uq!u%Uq!z%Uq#e%Uq#q%Uq#s%Uq#t%Uq#x%Uq#y%Uq$V%Uq$X%Uq$_%Uq$b%Uq$d%Uq$g%Uq$k%Uq$m%Uq$r%Uq$t%Uq$v%Uq$x%Uq${%Uq$}%Uq%v%Uq%|%Uq&O%Uq&Q%Uq&W%Uq&s%Uq|%Uq$`%Uq$p%Uq~Ou#OO%|TO}&ni!P&ni!m&ni~O&m&_Oq!ga&]!ga~O!m%dO}&kq!P&kq~O|.WO~P]Op.YOw&sOz&qO&OSO&Q!qO&^#YO~O!P.ZO~Oq,WO}&qa!P&qa~O})VO~P:jOq.aO|&xX~O|.cO~Oq,]OY&ya~Oq.gO|&jX~O|.iO~Ow.jO~Oq!aXu!aX!P!aX!b!aX%|!aX~OZ&PX~P#KsOZUX~P#KsO!P.kO~OZ.lO~OW^yZ#XXu^y!P^y!b^y#]^y#_^y#a^y#c^y#d^y#e^y#f^y#g^y#h^y#j^y#n^y#q^y&]^y&^^y&m^y&u^yY^y#o^ys^yq^y|^y~OY%_aq%_a!P%_a~P9`O!P#myY#my#o#mys#myq#my|#my~P9`O}'WOq!|a|!|a!P!|a~OZ#xO}'WOq!|a|!|a!P!|a~O%|TO&O#SO&Q#SOq%iX|%iX!P%iX~PFQOq-UO|&ra!P&ra~O|!}X~P$wO|.yO~Os.zO~P9`OW%gO!P.{O~OW%gO$P/QO&OSO&Q!qO!P&{P~OW%gO$T/RO~O!P/SO~O!b%sO#o/UOq!`X!P!`X~OY/WO~O!P/XO~P9`O#o/YO~P9`O!b/[O~OY/]OZ$iO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%|TO&O(XO&Q(WO&WUO~PFQOW#[Ou&ZX%|&ZX&O&ZX&Q&ZX&}&ZX~O&^#YO~P$%uOu#OO%|TO&}/_O&O%RX&Q%RX~O&m&_Oq!gi&]!gi~Op/cO&OSO&Q!qO~OW*cOZ#xO~O!P/eO~OY&RXq&RX~P9`O})VOq%mX|%mX~P:jOq.aO|&xa~O!b/hO~O})`Oq%bX|%bX~P:jOq.gO|&ja~OY/kO~O!P/lO~OZ/mO~O}'WOq!|i|!|i!P!|i~O|!}a~P$wOW%gO!P/qO~OW%gOq/rO!P&{X~OY/vO~P9`OY/xO~OY%Wq!P%Wq~P9`O&}/_O&O%Ra&Q%Ra~OY/}O~O!P0QO~Ou#OO!P0SO!Z0TO%|TO~OY0UO~Oq/rO!P&{a~O!P0XO~OW%gOq/rO!P&|X~OY0ZO~P9`OY0[O~OY%Wy!P%Wy~P9`Ou#OO%|TO&O%ta&Q%ta&}%ta~OY0]O~O!P0^O~Ou#OO!P0_O!Z0`O%|TO~OW%gOq%qa!P%qa~Oq/rO!P&|a~O!P0dO~Ou#OO!P0dO!Z0eO%|TO~O!P0fO~O!P0hO~O#o&PXY&PXs&PXq&PX|&PX~P&bO#oUXYUXsUXqUX|UX~P(fO`Q_P#f&Wc~",goto:"#)S&}PPPP'O'c*t-wP'cPP.].a/uPPPPP1aP2yPP4c7U9q<^kPPP>qPAXPPPBR2yPCzPPDuPElEtPPPPPPPPPPPPGPGhPJpJxKUKpKvK|MlMpMpMxPNX! a!!U!!`P!!u! aP!!{!#V! |!#fP!$V!$a!$g! a!$j!$pElEl!$t!%O!%R2y!&m2y2y!(fP.aP!(jP!)ZPPPPPP.aP.a!)w.aPP.aP.aPP.a!+]!+gPP!+m!+vPPPPPPPP'OP'OPP!+z!+z!,_!+zPP!+zP!+zP!,x!,{P!+z!-c!+zP!+zP!-f!-iP!+zP!+zP!+zP!+zP!+z!+zP!+zP!-mP!-s!-v!-|P!+z!.Y!.]P!.e!.w!2v!2|!3S!4Y!4`!4n!5t!5z!6Q!6[!6b!6h!6n!6t!6z!7Q!7W!7^!7d!7j!7p!7v!8Q!8W!8b!8hPPP!8n!+z!9cP!g!]!^!?w!^!_!@e!_!`!BO!`!a!Br!a!b!D`!b!c!EO!c!}!Kz!}#O!MW#O#P%Q#P#Q!Mt#Q#R!Nb#R#S4e#S#T%Q#T#o4e#o#p# U#p#q# r#q#r##[#r#s##x#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%QS%VV&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&XSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&XS%xZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&XS%xZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%xZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#sP&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&XSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&XSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&XSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&VSXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&WP_4la&OZ&XSOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o;'S%Q;'S;=`&s<%lO%QU5xX#gQ&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU6lV#]Q&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7YZ&mR&XSOY%QYZ%lZr%Qrs%qsv%Qvw7{w!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU8SV#aQ&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8nZ&XSOY9aYZ%lZr9ars:osw9awx%Qx#O9a#O#P;y#P;'S9a;'S;=`@z<%lO9aT9fX&XSOY%QYZ%lZr%Qrs%qsw%Qwx:Rx;'S%Q;'S;=`&s<%lO%QT:YVbP&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT:rXOY&ZYZ%lZr&Zrs&ysw&Zwx;_x;'S&Z;'S;=`'`<%lO&ZT;dVbPOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT_YZ%lZr>_rs?Zsw>_wx;_x#O>_#O#P&Z#P;'S>_;'S;=`@t<%lO>_T>bZOY_YZ%lZr>_rs@Psw>_wx;_x#O>_#O#P&Z#P;'S>_;'S;=`@t<%lO>_P@SVOY@PZw@Pwx@ix#O@P#P;'S@P;'S;=`@n<%lO@PP@nObPP@qP;=`<%l@PT@wP;=`<%l>_T@}P;=`<%l9a_AXVZZ&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVAuVYR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBeX$YP&XS#fQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVCXZ#eR&XSOY%QYZ%lZr%Qrs%qs{%Q{|Cz|!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVDRV#qR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDoVqR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVE][#eR&XSOY%QYZ%lZr%Qrs%qs}%Q}!OCz!O!_%Q!_!`6e!`!aFR!a;'S%Q;'S;=`&s<%lO%QVFYV&wR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_FvZWY&XSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGi!P!Q%Q!Q![Hw![;'S%Q;'S;=`&s<%lO%QVGnX&XSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHZ!P;'S%Q;'S;=`&s<%lO%QVHbV&pR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTIOc&XS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![!f%Q!f!gJZ!g!hJw!h!iJZ!i#R%Q#R#SNq#S#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QTJbV&XS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTJ|]&XSOY%QYZ%lZr%Qrs%qs{%Q{|Ku|}%Q}!OKu!O!Q%Q!Q![Lg![;'S%Q;'S;=`&s<%lO%QTKzX&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![;'S%Q;'S;=`&s<%lO%QTLnc&XS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![!f%Q!f!gJZ!g!h%Q!h!iJZ!i#R%Q#R#SMy#S#W%Q#W#XJZ#X#Y%Q#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QTNOZ&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![#R%Q#R#SMy#S;'S%Q;'S;=`&s<%lO%QTNvZ&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![#R%Q#R#SNq#S;'S%Q;'S;=`&s<%lO%Q_! p]&XS#fQOY%QYZ%lZr%Qrs%qsz%Qz{!!i{!P%Q!P!Q!)[!Q!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%Q_!!nX&XSOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{;'S!!i;'S;=`!'j<%lO!!i_!#`T&XSOz!#oz{!$R{;'S!#o;'S;=`!$p<%lO!#oZ!#rTOz!#oz{!$R{;'S!#o;'S;=`!$p<%lO!#oZ!$UVOz!#oz{!$R{!P!#o!P!Q!$k!Q;'S!#o;'S;=`!$p<%lO!#oZ!$pOQZZ!$sP;=`<%l!#o_!$yXOY!%fYZ!#ZZr!%frs!'psz!%fz{!(`{;'S!%f;'S;=`!)U<%lO!%f_!%iXOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{;'S!!i;'S;=`!'j<%lO!!i_!&ZZ&XSOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{!P!!i!P!Q!&|!Q;'S!!i;'S;=`!'j<%lO!!i_!'TV&XSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'mP;=`<%l!!i_!'sXOY!%fYZ!#ZZr!%frs!#osz!%fz{!(`{;'S!%f;'S;=`!)U<%lO!%f_!(cZOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{!P!!i!P!Q!&|!Q;'S!!i;'S;=`!'j<%lO!!i_!)XP;=`<%l!%f_!)cV&XSPZOY!)[YZ%lZr!)[rs!)xs;'S!)[;'S;=`!+O<%lO!)[_!)}VPZOY!*dYZ%lZr!*drs!+Us;'S!*d;'S;=`!,X<%lO!*d_!*iVPZOY!)[YZ%lZr!)[rs!)xs;'S!)[;'S;=`!+O<%lO!)[_!+RP;=`<%l!)[_!+ZVPZOY!*dYZ%lZr!*drs!+ps;'S!*d;'S;=`!,X<%lO!*dZ!+uSPZOY!+pZ;'S!+p;'S;=`!,R<%lO!+pZ!,UP;=`<%l!+p_!,[P;=`<%l!*dT!,fu&XS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.y!P!Q%Q!Q![!0V![!d%Q!d!e!3a!e!f%Q!f!gJZ!g!hJw!h!iJZ!i!n%Q!n!o!1{!o!q%Q!q!r!5_!r!z%Q!z!{!7V!{#R%Q#R#S!2i#S#U%Q#U#V!3a#V#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z#`%Q#`#a!1{#a#c%Q#c#d!5_#d#l%Q#l#m!7V#m;'S%Q;'S;=`&s<%lO%QT!/Qa&XS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![!f%Q!f!gJZ!g!hJw!h!iJZ!i#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QT!0^i&XS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.y!P!Q%Q!Q![!0V![!f%Q!f!gJZ!g!hJw!h!iJZ!i!n%Q!n!o!1{!o#R%Q#R#S!2i#S#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!2SV&XS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2nZ&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0V![#R%Q#R#S!2i#S;'S%Q;'S;=`&s<%lO%QT!3fY&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4U!R!S!4U!S;'S%Q;'S;=`&s<%lO%QT!4]`&XS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4U!R!S!4U!S!n%Q!n!o!1{!o#R%Q#R#S!3a#S#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!5dX&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6P!Y;'S%Q;'S;=`&s<%lO%QT!6W_&XS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6P!Y!n%Q!n!o!1{!o#R%Q#R#S!5_#S#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!7[_&XSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8Z!P!Q%Q!Q![!:i![!c%Q!c!i!:i!i#T%Q#T#Z!:i#Z;'S%Q;'S;=`&s<%lO%QT!8`]&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9X![!c%Q!c!i!9X!i#T%Q#T#Z!9X#Z;'S%Q;'S;=`&s<%lO%QT!9^c&XSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9X![!c%Q!c!i!9X!i!r%Q!r!sJw!s#R%Q#R#S!8Z#S#T%Q#T#Z!9X#Z#d%Q#d#eJw#e;'S%Q;'S;=`&s<%lO%QT!:pi&XS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!<_!P!Q%Q!Q![!:i![!c%Q!c!i!:i!i!n%Q!n!o!1{!o!r%Q!r!sJw!s#R%Q#R#S!=i#S#T%Q#T#Z!:i#Z#`%Q#`#a!1{#a#d%Q#d#eJw#e;'S%Q;'S;=`&s<%lO%QT!nX#oR&XSOY%QYZ%lZr%Qrs%qs![%Q![!]!?Z!];'S%Q;'S;=`&s<%lO%QV!?bV&uR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!@OV!PR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@lY&^Z&XSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!A[!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!AcX#hQ&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV!BVX!bR&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!ByY&]R&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Ci!a;'S%Q;'S;=`&s<%lO%QU!CpY#hQ&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`!a!A[!a;'S%Q;'S;=`&s<%lO%Q_!DiV&aX#nQ&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!EVX%|Z&XSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!Er#^;'S%Q;'S;=`&s<%lO%QV!EwX&XSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!Fd#c;'S%Q;'S;=`&s<%lO%QV!FiX&XSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!GU#i;'S%Q;'S;=`&s<%lO%QV!GZX&XSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Gv#Y;'S%Q;'S;=`&s<%lO%QV!G{X&XSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hh#g;'S%Q;'S;=`&s<%lO%QV!HmX&XSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!IY#Z;'S%Q;'S;=`&s<%lO%QV!I_X&XSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!Iz#U;'S%Q;'S;=`&s<%lO%QV!JPX&XSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Jl#W;'S%Q;'S;=`&s<%lO%QV!JqX&XSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!K^#Y;'S%Q;'S;=`&s<%lO%QV!KeV&sR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!LRa&QZ&XSOY%QYZ%lZr%Qrs%qst%Qtu!Kzu!Q%Q!Q![!Kz![!c%Q!c!}!Kz!}#R%Q#R#S!Kz#S#T%Q#T#o!Kz#o;'S%Q;'S;=`&s<%lO%Q_!M_VuZ&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!M{VsR&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!NiX#cQ&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV# ]V}R&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_# {Z&}X#cQ&XSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`#p%Q#p#q#!n#q;'S%Q;'S;=`&s<%lO%QU#!uV#dQ&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##cV|R&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT#$PV#tP&XSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q",tokenizers:[0,1,2,3],topRules:{Program:[0,3],ClassContent:[1,193]},dynamicPrecedences:{27:1,231:-1,242:-1},specialized:[{term:230,get:O=>xv[O]||-1}],tokenPrec:6995}),wv=Ee.define({name:"java",parser:bv.configure({props:[gt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch|finally)\b/}),LabeledStatement:oh,SwitchBlock:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:DO({closing:"}"}),BlockComment:()=>null,Statement:Ce({except:/^{/})}),ot.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":$O,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function Tv(){return new tt(wv)}const Zv=De({String:u.string,Number:u.number,"True False":u.bool,PropertyName:u.propertyName,Null:u.null,",":u.separator,"[ ]":u.squareBracket,"{ }":u.brace}),vv=Ae.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",stateData:"#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",goto:"!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",12,"["],["closedBy",8,"}",13,"]"]],propSources:[Zv],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oc~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Oe~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zOh~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yOg~~'OO]~~'TO[~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),Wv=Ee.define({name:"json",parser:vv.configure({props:[gt.add({Object:Ce({except:/^\s*\}/}),Array:Ce({except:/^\s*\]/})}),ot.add({"Object Array":$O})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function kv(){return new tt(Wv)}const SQ=1,Yv=2,qv=3,zv=82,Rv=76,Vv=117,Uv=85,_v=97,jv=122,Gv=65,Cv=90,Ev=95,Jl=48,PQ=34,Av=40,XQ=41,Iv=32,yQ=62,Dv=new $e(O=>{if(O.next==Rv||O.next==Uv?O.advance():O.next==Vv&&(O.advance(),O.next==Jl+8&&O.advance()),O.next!=zv||(O.advance(),O.next!=PQ))return;O.advance();let e="";for(;O.next!=Av;){if(O.next==Iv||O.next<=13||O.next==XQ)return;e+=String.fromCharCode(O.next),O.advance()}for(O.advance();;){if(O.next<0)return O.acceptToken(SQ);if(O.next==XQ){let t=!0;for(let i=0;t&&i{if(O.next==yQ)O.peek(1)==yQ&&O.acceptToken(Yv,1);else{let e=!1,t=0;for(;;t++){if(O.next>=Gv&&O.next<=Cv)e=!0;else{if(O.next>=_v&&O.next<=jv)return;if(O.next!=Ev&&!(O.next>=Jl&&O.next<=Jl+9))break}O.advance()}e&&t>1&&O.acceptToken(qv)}},{extend:!0}),Mv=De({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":u.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":u.modifier,"if else switch for while do case default return break continue goto throw try catch":u.controlKeyword,"co_return co_yield co_await":u.controlKeyword,"new sizeof delete static_assert":u.operatorKeyword,"NULL nullptr":u.null,this:u.self,"True False":u.bool,"TypeSize PrimitiveType":u.standard(u.typeName),TypeIdentifier:u.typeName,FieldIdentifier:u.propertyName,"CallExpression/FieldExpression/FieldIdentifier":u.function(u.propertyName),"ModuleName/Identifier":u.namespace,PartitionName:u.labelName,StatementIdentifier:u.labelName,"Identifier DestructorName":u.variableName,"CallExpression/Identifier":u.function(u.variableName),"CallExpression/ScopedIdentifier/Identifier":u.function(u.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":u.function(u.definition(u.variableName)),NamespaceIdentifier:u.namespace,OperatorName:u.operator,ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,AssignOp:u.definitionOperator,UpdateOp:u.updateOperator,LineComment:u.lineComment,BlockComment:u.blockComment,Number:u.number,String:u.string,"RawString SystemLibString":u.special(u.string),CharLiteral:u.character,EscapeSequence:u.escape,"UserDefinedLiteral/Identifier":u.literal,PreProcArg:u.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":u.processingInstruction,MacroName:u.special(u.name),"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,"< >":u.angleBracket,". ->":u.derefOperator,", ;":u.separator}),Nv={__proto__:null,bool:34,char:34,int:34,float:34,double:34,void:34,size_t:34,ssize_t:34,intptr_t:34,uintptr_t:34,charptr_t:34,int8_t:34,int16_t:34,int32_t:34,int64_t:34,uint8_t:34,uint16_t:34,uint32_t:34,uint64_t:34,char8_t:34,char16_t:34,char32_t:34,char64_t:34,const:68,volatile:70,restrict:72,_Atomic:74,mutable:76,constexpr:78,constinit:80,consteval:82,struct:86,__declspec:90,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:784,true:784,FALSE:786,false:786,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:282,import:286,case:296,default:298,if:308,else:314,switch:318,do:322,while:324,for:330,return:334,break:338,continue:342,goto:346,co_return:350,co_yield:354,using:362,typedef:366,namespace:380,new:398,delete:400,co_await:402,concept:406,enum:410,static_assert:414,friend:422,union:424,explicit:430,operator:444,module:456,signed:518,unsigned:518,long:518,short:518,decltype:528,auto:530,sizeof:566,NULL:572,nullptr:586,this:588},Bv={__proto__:null,"<":131},Fv={__proto__:null,">":135},Hv={__proto__:null,operator:388,new:576,delete:582},Kv=Ae.deserialize({version:14,states:"$:|Q!QQVOOP'gOUOOO(XOWO'#CdO,RQUO'#CgO,]QUO'#FjO-sQbO'#CwO.UQUO'#CwO0TQUO'#KZO0[QUO'#CvO0gOpO'#DvO0oQ!dO'#D]OOQR'#JO'#JOO5XQVO'#GUO5fQUO'#JVOOQQ'#JV'#JVO8zQUO'#KmO{QVO'#E^O?]QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?bQVO'#EfO@XQVO'#EiOBUQUO'#FPOBvQUO'#FhOOQR'#Fj'#FjOB{QUO'#FjOOQR'#LQ'#LQOOQR'#LP'#LPOETQVO'#KQOFxQUO'#LVOGVQUO'#KqOGkQUO'#LVOH]QUO'#LXOOQR'#HU'#HUOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#K|'#K|OOQR'#J_'#J_Q!QQVOOOHkQVO'#FOOIWQUO'#EhOI_QUOOOKZQVO'#HgOKkQUO'#HgONVQUO'#KqONaQUO'#KqOOQQ'#Kq'#KqO!!_QUO'#KqOOQQ'#Jq'#JqO!!lQUO'#HxOOQQ'#KZ'#KZO!&^QUO'#KZO!&zQUO'#KQO!(zQVO'#I]O!(zQVO'#I`OCQQUO'#KQOOQQ'#Ip'#IpOOQQ'#KQ'#KQO!,}QUO'#KZOOQR'#KY'#KYO!-UQUO'#DYO!/mQUO'#KnOOQQ'#Kn'#KnO!/tQUO'#KnO!/{QUO'#ETO!0QQUO'#EWO!0VQUO'#FRO8zQUO'#FPO!QQVO'#F^O!0[Q#vO'#F`O!0gQUO'#FkO!0oQUO'#FpO!0tQVO'#FrO!0oQUO'#FuO!3sQUO'#FvO!3xQVO'#FxO!4SQUO'#FzO!4XQUO'#F|O!4^QUO'#GOO!4cQVO'#GQO!(zQVO'#GSO!4jQUO'#GpO!4xQUO'#GYO!(zQVO'#FeO!6VQUO'#FeO!6[QVO'#G`O!6cQUO'#GaO!6nQUO'#GnO!6sQUO'#GrO!6xQUO'#GzO!7jQ&lO'#HiO!:mQUO'#GuO!:}QUO'#HXO!;YQUO'#HZO!;bQUO'#DWO!;bQUO'#HuO!;bQUO'#HvO!;yQUO'#HwO!<[QUO'#H|O!=PQUO'#H}O!>uQVO'#IbO!(zQVO'#IdO!?PQUO'#IgO!?WQVO'#IjP!@}{,UO'#CbP!6n{,UO'#CbP!AY{7[O'#CbP!6n{,UO'#CbP!A_{,UO'#CbP!AjOSO'#IzPOOO)CEn)CEnOOOO'#I|'#I|O!AtOWO,59OOOQR,59O,59OO!(zQVO,59UOOQQ,59W,59WO!(zQVO,5;ROOQR,5qOOQR'#IX'#IXOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[O!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!DOQVO,5>zOOQQ,5?W,5?WO!EqQVO'#ChO!IjQUO'#CyOOQQ,59c,59cOOQQ,59b,59bOOQQ,5<},5<}O!IwQ&lO,5=mO!?PQUO,5?RO!LkQVO,5?UO!LrQbO,59cO!L}QVO'#FYOOQQ,5?P,5?PO!M_QVO,59VO!MfO`O,5:bO!MkQbO'#D^O!M|QbO'#K^O!N[QbO,59wO!NdQbO'#CwO!NuQUO'#CwO!NzQUO'#KZO# UQUO'#CvOOQR-E<|-E<|O# aQUO,5AoO# hQVO'#EfO@XQVO'#EiOBUQUO,5;kOOQR,5l,5>lO#3gQUO'#CgO#4]QUO,5>pO#6OQUO'#IeOOQR'#I}'#I}O#6WQUO,5:xO#6tQUO,5:xO#7eQUO,5:xO#8YQUO'#CtO!0QQUO'#ClOOQQ'#JW'#JWO#6tQUO,5:xO#8bQUO,5;QO!4xQUO'#C}O#9kQUO,5;QO#9pQUO,5>QO#:|QUO'#C}O#;dQUO,5>{O#;iQUO'#KwO#}QUO'#L[O#?UQUO,5>UO#?ZQbO'#CwO#?fQUO'#GcO#?kQUO'#E^O#@[QUO,5;kO#@sQUO'#K}O#@{QUO,5;rOKkQUO'#HfOBUQUO'#HgO#AQQUO'#KqO!6nQUO'#HjO#AxQUO'#CtO!0tQVO,5PO$(WQUO'#E[O$(eQUO,5>ROOQQ,5>S,5>SO$,RQVO'#C{OOQQ-E=o-E=oOOQQ,5>d,5>dOOQQ,59`,59`O$,]QUO,5>wO$.]QUO,5>zO!6nQUO,59tO$.pQUO,5;qO$.}QUO,5<{O!0QQUO,5:oOOQQ,5:r,5:rO$/YQUO,5;mO$/_QUO'#KmOBUQUO,5;kOOQR,5;x,5;xO$0OQUO'#FbO$0^QUO'#FbO$0cQUO,5;zO$3|QVO'#FmO!0tQVO,5eQUO,5pQUO,5=[O$>uQUO,5=[O!4xQUO,5}QUO,5uQUO,5<{O$DQQUO,5<{O$D]QUO,5=YO!(zQVO,5=^O!(zQVO,5=fO#NeQUO,5=mOOQQ,5>T,5>TO$FbQUO,5>TO$FlQUO,5>TO$FqQUO,5>TO$FvQUO,5>TO!6nQUO,5>TO$HtQUO'#KZO$H{QUO,5=oO$IWQUO,5=aOKkQUO,5=oO$JQQUO,5=sOOQR,5=s,5=sO$JYQUO,5=sO$LeQVO'#H[OOQQ,5=u,5=uO!;]QUO,5=uO%#`QUO'#KjO%#gQUO'#K[O%#{QUO'#KjO%$VQUO'#DyO%$hQUO'#D|O%'eQUO'#K[OOQQ'#K['#K[O%)WQUO'#K[O%#gQUO'#K[O%)]QUO'#K[OOQQ,59r,59rOOQQ,5>a,5>aOOQQ,5>b,5>bO%)eQUO'#HzO%)mQUO,5>cOOQQ,5>c,5>cO%-XQUO,5>cO%-dQUO,5>hO%1OQVO,5>iO%1VQUO,5>|O# hQVO'#EfO%4]QUO,5>|OOQQ,5>|,5>|O%4|QUO,5?OO%7QQUO,5?RO!<[QUO,5?RO%8|QUO,5?UO%sQUO1G0mOOQQ1G0m1G0mO%@PQUO'#CoO%B`QbO'#CwO%BkQUO'#CrO%BpQUO'#CrO%BuQUO1G.tO#AxQUO'#CqOOQQ1G.t1G.tO%DxQUO1G4]O%FOQUO1G4^O%GqQUO1G4^O%IdQUO1G4^O%KVQUO1G4^O%LxQUO1G4^O%NkQUO1G4^O&!^QUO1G4^O&$PQUO1G4^O&%rQUO1G4^O&'eQUO1G4^O&)WQUO1G4^O&*yQUO'#KPO&,SQUO'#KPO&,[QUO,59SOOQQ,5=P,5=PO&.dQUO,5=PO&.nQUO,5=PO&.sQUO,5=PO&.xQUO,5=PO!6nQUO,5=PO#NeQUO1G3XO&/SQUO1G4mO!<[QUO1G4mO&1OQUO1G4pO&2qQVO1G4pOOQQ1G.}1G.}OOQQ1G.|1G.|OOQQ1G2i1G2iO!IwQ&lO1G3XO&2xQUO'#LOO@XQVO'#EiO&4RQUO'#F]OOQQ'#Ja'#JaO&4WQUO'#FZO&4cQUO'#LOO&4kQUO,5;tO&4pQUO1G.qOOQQ1G.q1G.qOOQR1G/|1G/|O&6cQ!dO'#JPO&6hQbO,59xO&8yQ!eO'#D`O&9QQ!dO'#JRO&9VQbO,5@xO&9VQbO,5@xOOQR1G/c1G/cO&9bQbO1G/cO&9gQ&lO'#GeO&:eQbO,59cOOQR1G7Z1G7ZO#@[QUO1G1VO&:pQUO1G1^OBUQUO1G1VO&=RQUO'#CyO#*wQbO,59cO&@tQUO1G6sOOQR-E<{-E<{O&BWQUO1G0dO#6WQUO1G0dOOQQ-E=U-E=UO#6tQUO1G0dOOQQ1G0l1G0lO&B{QUO,59iOOQQ1G3l1G3lO&CcQUO,59iO&CyQUO,59iO!M_QVO1G4gO!(zQVO'#JYO&DeQUO,5AcOOQQ1G0o1G0oO!(zQVO1G0oO!6nQUO'#JnO&DmQUO,5AvOOQQ1G3p1G3pOOQR1G1V1G1VO&HjQVO'#FOO!M_QVO,5;sOOQQ,5;s,5;sOBUQUO'#JcO&JfQUO,5AiO&JnQVO'#E[OOQR1G1^1G1^O&M]QUO'#L[OOQR1G1n1G1nOOQR-E=f-E=fOOQR1G7]1G7]O#DhQUO1G7]OGVQUO1G7]O#DhQUO1G7_OOQR1G7_1G7_O&MeQUO'#G}O&MmQUO'#LWOOQQ,5=h,5=hO&M{QUO,5=jO&NQQUO,5=kOOQR1G7`1G7`O#EfQVO1G7`O&NVQUO1G7`O' ]QVO,5=kOOQR1G1U1G1UO$.vQUO'#E]O'!RQUO'#E]OOQQ'#Ky'#KyO'!lQUO'#KxO'!wQUO,5;UO'#PQUO'#ElO'#dQUO'#ElO'#wQUO'#EtOOQQ'#J['#J[O'#|QUO,5;cO'$sQUO,5;cO'%nQUO,5;dO'&tQVO,5;dOOQQ,5;d,5;dO''OQVO,5;dO'&tQVO,5;dO''VQUO,5;bO'(SQUO,5;eO'(_QUO'#KpO'(gQUO,5:vO'(lQUO,5;fOOQQ1G0n1G0nOOQQ'#J]'#J]O''VQUO,5;bO!4xQUO'#E}OOQQ,5;b,5;bO')gQUO'#E`O'+aQUO'#E{OHrQUO1G0nO'+fQUO'#EbOOQQ'#JX'#JXO'-OQUO'#KrOOQQ'#Kr'#KrO'-xQUO1G0eO'.pQUO1G3kO'/vQVO1G3kOOQQ1G3k1G3kO'0QQVO1G3kO'0XQUO'#L_O'1eQUO'#KXO'1sQUO'#KWO'2OQUO,59gO'2WQUO1G/`O'2]QUO'#FPOOQR1G1]1G1]OOQR1G2g1G2gO$>uQUO1G2gO'2gQUO1G2gO'2rQUO1G0ZOOQR'#J`'#J`O'2wQVO1G1XO'8pQUO'#FTO'8uQUO1G1VO!6nQUO'#JdO'9TQUO,5;|O$0^QUO,5;|OOQQ'#Fc'#FcOOQQ,5;|,5;|O'9cQUO1G1fOOQR1G1f1G1fO'9kQUO,5}QUO1G2`OOQQ'#Cu'#CuO'CzQUO'#G[O'DuQUO'#G[O'DzQUO'#LRO'EYQUO'#G_OOQQ'#LS'#LSO'EhQUO1G2`O'EmQVO1G1kO'HOQVO'#GUOBUQUO'#FWOOQR'#Je'#JeO'EmQVO1G1kO'HYQUO'#FvOOQR1G2f1G2fO'H_QUO1G2gO'HdQUO'#JgO'2gQUO1G2gO!(zQVO1G2tO'HlQUO1G2xO'IuQUO1G3QO'J{QUO1G3XOOQQ1G3o1G3oO'KaQUO1G3oOOQR1G3Z1G3ZO'KfQUO'#KZO'2]QUO'#LTOGkQUO'#LVOOQR'#Gy'#GyO#DhQUO'#LXOOQR'#HQ'#HQO'KpQUO'#GvO'#wQUO'#GuOOQR1G2{1G2{O'LmQUO1G2{O'MdQUO1G3ZO'MoQUO1G3_O'MtQUO1G3_OOQR1G3_1G3_O'M|QUO'#H]OOQR'#H]'#H]O( VQUO'#H]O!(zQVO'#H`O!(zQVO'#H_OOQR'#LZ'#LZO( [QUO'#LZOOQR'#Jk'#JkO( aQVO,5=vOOQQ,5=v,5=vO( hQUO'#H^O( pQUO'#HZOOQQ1G3a1G3aO( zQUO,5@vOOQQ,5@v,5@vO%)WQUO,5@vO%)]QUO,5@vO%$VQUO,5:eO(%iQUO'#KkO(%wQUO'#KkOOQQ,5:e,5:eOOQQ'#JS'#JSO(&SQUO'#D}O(&^QUO'#KqOGkQUO'#LVO('YQUO'#D}OOQQ'#Hp'#HpOOQQ'#Hr'#HrOOQQ'#Hs'#HsOOQQ'#Kl'#KlOOQQ'#JU'#JUO('dQUO,5:hOOQQ,5:h,5:hO((aQUO'#LVO((nQUO'#HtO()UQUO,5@vO()]QUO'#H{O()hQUO'#L^O()pQUO,5>fO()uQUO'#L]OOQQ1G3}1G3}O(-lQUO1G3}O(-sQUO1G3}O(-zQUO1G4TO(/QQUO1G4TO(/VQUO,5A|O!6nQUO1G4hO!(zQVO'#IiOOQQ1G4m1G4mO(/[QUO1G4mO(1_QVO1G4pPOOO1G.h1G.hP!A_{,UO1G.hP(3_QUO'#LeP(3j{,UO1G.hP(3o{7[O1G.hPO{O-E=s-E=sPOOO,5A},5A}P(3w{,UO,5A}POOO1G5Q1G5QO!(zQVO7+$[O(3|QUO'#CyOOQQ,59^,59^O(4XQbO,59cO(4dQbO,59^OOQQ,59],59]OOQQ7+)w7+)wO!M_QVO'#JtO(4oQUO,5@kOOQQ1G.n1G.nOOQQ1G2k1G2kO(4wQUO1G2kO(4|QUO7+(sOOQQ7+*X7+*XO(7bQUO7+*XO(7iQUO7+*XO(1_QVO7+*[O#NeQUO7+(sO(7vQVO'#JbO(8ZQUO,5AjO(8cQUO,5;vOOQQ'#Co'#CoOOQQ,5;w,5;wO!(zQVO'#F[OOQQ-E=_-E=_O!M_QVO,5;uOOQQ1G1`1G1`OOQQ,5?k,5?kOOQQ-E<}-E<}OOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(9lQ!eO'#K_O(9sQMkO'#K_O(9zQ!eO'#K_OOQR'#K_'#K_OOQR'#JQ'#JQO(:RQ!eO,59zOOQQ,59z,59zO(:YQbO,5?mOOQQ-E=P-E=PO(:hQbO1G6dOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'8uQUO7+&qO(:sQUO7+&OO#6WQUO7+&OO(;hQUO1G/TO(]QUO,5?tOOQQ-E=W-E=WO(?fQUO7+&ZOOQQ,5@Y,5@YOOQQ-E=l-E=lO(?kQUO'#LOO@XQVO'#EiO(@wQUO1G1_OOQQ1G1_1G1_O(BQQUO,5?}OOQQ,5?},5?}OOQQ-E=a-E=aO(BfQUO'#KpOOQR7+,w7+,wO#DhQUO7+,wOOQR7+,y7+,yO(BsQUO,5=iO#DsQUO'#JjO(CUQUO,5ArOOQR1G3U1G3UOOQR1G3V1G3VO(CdQUO7+,zOOQR7+,z7+,zO(E[QUO,5:wO(FyQUO'#EwO!(zQVO,5;VO(GlQUO,5:wO(GvQUO'#EpO(HXQUO'#EzOOQQ,5;Z,5;ZO#K]QVO'#ExO(HoQUO,5:wO(HvQUO'#EyO#GgQUO'#JZO(J`QUO,5AdOOQQ1G0p1G0pO(JkQUO,5;WO!<[QUO,5;^O(KUQUO,5;_O(KdQUO,5;WO(MvQUO,5;`OOQQ-E=Y-E=YO(NOQUO1G0}OOQQ1G1O1G1OO(NyQUO1G1OO)!PQVO1G1OO)!WQVO1G1OO)!bQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)#_QUO'#JoO)#iQUO,5A[OOQQ1G0b1G0bOOQQ-E=Z-E=ZO)#qQUO,5;iO!<[QUO,5;iO)$nQVO,5:zO)$uQUO,5;gO$ mQUO7+&YOOQQ7+&Y7+&YO!(zQVO'#EfO)$|QUO,5:|OOQQ'#Ks'#KsOOQQ-E=V-E=VOOQQ,5A^,5A^OOQQ'#Jl'#JlO)(qQUO7+&PPOQQ7+&P7+&POOQQ7+)V7+)VO))iQUO7+)VO)*oQVO7+)VOOQQ,5>m,5>mO$)YQVO'#JsO)*vQUO,5@rOOQQ1G/R1G/ROOQQ7+$z7+$zO)+RQUO7+(RO)+WQUO7+(ROOQR7+(R7+(RO$>uQUO7+(ROOQQ7+%u7+%uOOQR-E=^-E=^O!0VQUO,5;oOOQQ,5@O,5@OOOQQ-E=b-E=bO$0^QUO1G1hOOQQ1G1h1G1hOOQR7+'Q7+'QOOQR1G1s1G1sOBUQUO,5;rO)+tQUO,5hQUO,5}QUO7+(dO)?SQVO7+(dOOQQ7+(l7+(lOOQQ7+)Z7+)ZO)?[QUO'#KjO)?fQUO'#KjOOQR,5=b,5=bO)?sQUO,5=bO!;bQUO,5=bO!;bQUO,5=bO!;bQUO,5=bOOQR7+(g7+(gOOQR7+(u7+(uOOQR7+(y7+(yOOQR,5=w,5=wO)?xQUO,5=zO)AOQUO,5=yOOQR,5Au,5AuOOQR-E=i-E=iOOQQ1G3b1G3bO)BUQUO,5=xO)BZQVO'#EfOOQQ1G6b1G6bO%)WQUO1G6bO%)]QUO1G6bOOQQ1G0P1G0POOQQ-E=Q-E=QO)DrQUO,5AVO(%iQUO'#JTO)D}QUO,5AVO)D}QUO,5AVO)EVQUO,5:iO8zQUO,5:iOOQQ,5>],5>]O)EaQUO,5AqO)EhQUO'#EVO)FrQUO'#EVO)G]QUO,5:iO)GgQUO'#HlO)GgQUO'#HmOOQQ'#Ko'#KoO)HUQUO'#KoO!(zQVO'#HnOOQQ,5:i,5:iO)HvQUO,5:iO!M_QVO,5:iOOQQ-E=S-E=SOOQQ1G0S1G0SOOQQ,5>`,5>`O)H{QUO1G6bO!(zQVO,5>gO)LjQUO'#JrO)LuQUO,5AxOOQQ1G4Q1G4QO)L}QUO,5AwOOQQ,5Aw,5AwOOQQ7+)i7+)iO*!lQUO7+)iOOQQ7+)o7+)oO*'kQVO1G7hO*)mQUO7+*SO*)rQUO,5?TO**xQUO7+*[POOO7+$S7+$SP*,kQUO'#LfP*,sQUO,5BPP*,x{,UO7+$SPOOO1G7i1G7iO*,}QUO<XQUO7+&jO*?_QVO7+&jOOQQ7+&h7+&hOOQQ,5@Z,5@ZOOQQ-E=m-E=mO*@ZQUO1G1TO*@eQUO1G1TO*AOQUO1G0fOOQQ1G0f1G0fO*BUQUO'#K{O*B^QUO1G1ROOQQ<uQUO<VO)GgQUO'#JpO*NQQUO1G0TO*NcQVO1G0TOOQQ1G3u1G3uO*NjQUO,5>WO*NuQUO,5>XO+ dQUO,5>YO+!jQUO1G0TO%)]QUO7++|O+#pQUO1G4ROOQQ,5@^,5@^OOQQ-E=p-E=pOOQQ<n,5>nO+/iQUOANAXOOQRANAXANAXO+/nQUO7+'`OOQRAN@cAN@cO+0zQVOAN@nO+1RQUOAN@nO!0tQVOAN@nO+2[QUOAN@nO+2aQUOAN@}O+2lQUOAN@}O+3rQUOAN@}OOQRAN@nAN@nO!M_QVOAN@}OOQRANAOANAOO+3wQUO7+'|O)7VQUO7+'|OOQQ7+(O7+(OO+4YQUO7+(OO+5`QVO7+(OO+5gQVO7+'hO+5nQUOANAjOOQR7+(h7+(hOOQR7+)P7+)PO+5sQUO7+)PO+5xQUO7+)POOQQ<= h<= hO+6QQUO7+,]O+6YQUO1G5ZOOQQ1G5Z1G5ZO+6eQUO7+%oOOQQ7+%o7+%oO+6vQUO7+%oO*NcQVO7+%oOOQQ7+)a7+)aO+6{QUO7+%oO+8RQUO7+%oO!M_QVO7+%oO+8]QUO1G0]O*LkQUO1G0]O)EhQUO1G0]OOQQ1G0a1G0aO+8zQUO1G3qO+:QQVO1G3qOOQQ1G3q1G3qO+:[QVO1G3qO+:cQUO,5@[OOQQ-E=n-E=nOOQQ1G3r1G3rO%)WQUO<= hOOQQ7+*Z7+*ZPOQQ,5@b,5@bPOQQ-E=t-E=tOOQQ1G/}1G/}OOQQ,5?x,5?xOOQQ-E=[-E=[OOQRG26sG26sO+:zQUOG26YO!0tQVOG26YO+QQUO<uAN>uO+BpQUOAN>uO+CvQUOAN>uO!M_QVOAN>uO+C{QUO<nQUO'#KZO,?OQUO'#CyO,?^QbO,59cO,6VQUO7+&OO,OP>i>{?aFXMX!&]!,sP!3m!4b!5VP!5qPPPPPPPP!6[P!7tPP!9V!:oP!:uPPPPPP!:xP!:xPP!:xPPPPPPPPP!;U!>lP!>oPP!?]!@QPPPPP!@UP>l!AgPP>l!Cn!Eo!E}!Gd!ITP!I`P!Io!Io!MP#!`##v#'S#*^!Eo#*hPP!Eo#*o#*u#*h#*h#*xP#*|#+k#+k#+k#+k!ITP#,U#,g#.|P#/bP#0}P#1R#1Z#2O#2Z#4i#4q#4q#1RP#1RP#4x#5OP#5YPP#5u#6d#7U#5uP#7v#8SP#5uP#5uPP#5u#5uP#5uP#5uP#5uP#5uP#5uP#5uP#8V#5Y#8sP#9YP#9o#9o#9o#9o#9|#1RP#:d#?`#?}PPPPPPPP#@uP#ATP#ATP#Aa#Dn#9OPP#@}#EQP#Ee#Ep#Ev#Ev#@}#FlP#1R#1R#1R#1R#1RP!Io#GW#G_#G_#G_#Gc!Ly#Gm!Ly#Gq!E}!E}!E}#Gt#L^!E}>l>l>l$#V!@Q!@Q!@Q!@Q!@Q!@Q!6[!6[!6[$#jP$%V$%e!6[$%kPP!6[$'y$'|#@l$(P:t7j$+V$-Q$.q$0a7jPP7j$2T7jP7j7jP7jP$5Z7jP7jPP7j$5gPPPPPPPPP*[P$8o$8u$;^$=d$=j$>Q$>[$>g$>v$>|$@[$AZ$Ab$Ai$Ao$Aw$BR$BX$Bd$Bj$Bs$B{$CW$C^$Ch$Cn$Cx$DP$D`$Df$DlP$Dr$Dz$ER$Ea$F}$GT$GZ$Gb$GkPPPPPPPP$Gq$GuPPPPP$Nw$'y$Nz%$S%&[P%&i%&lPPPPPPPPPP%&x%'{%(R%(V%)|%+Z%+|%,T%.d%.jPPP%.t%/P%/S%/Y%0a%0d%0n%0x%0|%2Q%2s%2y#@uP%3d%3t%3w%4X%4e%4i%4o%4u$'y$'|$'|%4x%4{P%5V%5YR#cP'`mO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'i'j'y(`(b(i)l)r*h*i*l*q*r*v+W+Y+h+j+k,P,R,n,q,w-]-^-a-g.P.Q.U.}/Q/[/c/l/n/s/u0h0{1Q1a1b1l1p1z1|2c2f2i2u2z2}3i4O4R4W4a5Y5e5q6_6c6f6h6j6t6v6{7b7j7m8e8g8m8s8t9R9V9]9_9l9o9p9{:O:U:W:]:b:fU%om%p7QQ&m!`Q(j#]d0P)}/|/}0O0R4}5O5P5S8QR7Q3Tb}Oaewx{!g&S*q&v$i[!W!X!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&W&b&f&x&y&|'O'P'b'i'j'y(`(b(i)l)r*h*i*l*r*v+W+Y+h+j+k,P,R,n,q,w-]-^-a-g.P.Q.U.}/Q/[/c/l/n/s/u0{1a1b1l1p1z1|2c2f2i2u2z2}3i4O4R4W4a5Y5e5q6_6c6f6h6j6t6v6{7b7j7m8e8g8m8s8t9R9V9]9_9l9o9p9{:O:U:W:]:b:fS%`f0h#d%jgnp|#O$g$|$}%S%d%h%i%w&s't'u(Q*Y*`*b*t+],l,v-_-p-w.f.m.o0]0y0z1O1S2_2j5a6g;W;X;Y;`;a;b;o;p;q;r;v;w;x;y MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ArgumentList ( ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec ) Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:425,nodeProps:[["group",-35,1,8,11,14,15,16,18,71,72,100,101,102,104,191,208,229,242,243,270,271,272,277,280,281,282,284,285,286,287,290,292,293,294,295,296,"Expression",-13,17,24,25,26,42,255,256,257,258,262,263,265,266,"Type",-19,126,129,147,150,152,153,158,160,163,164,166,168,170,172,174,176,178,179,188,"Statement"],["isolate",-4,4,5,8,10,""]],propSources:[Mv],skippedNodes:[0,3,4,5,6,7,10,297,298,299,300,301,302,303,304,305,306,347,348],repeatNodeCount:41,tokenData:"&*r7ZR!UOX$eXY({YZ.gZ]$e]^+P^p$epq({qr.}rs0}st2ktu$euv!7dvw!9bwx!;exy!O{|!?R|}!AV}!O!BQ!O!P!DX!P!Q#+y!Q!R#Az!R![$(x![!]$Ag!]!^$Cc!^!_$D^!_!`%1W!`!a%2X!a!b%5_!b!c$e!c!n%6Y!n!o%7q!o!w%6Y!w!x%7q!x!}%6Y!}#O%:n#O#P%u#Y#]4Y#]#^NZ#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e4eb)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#o4Y#o;'S$e;'S;=`(u<%lO$e4e5xd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#X4Y#X#Y7W#Y#o4Y#o;'S$e;'S;=`(u<%lO$e4e7cd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#Y4Y#Y#Z8q#Z#o4Y#o;'S$e;'S;=`(u<%lO$e4e8|d)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#]4Y#]#^:[#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e:gd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#b4Y#b#c;u#c#o4Y#o;'S$e;'S;=`(u<%lO$e4e][)S,g)ZW(pQ%Z!b'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!?`^)ZW(pQ%Z!b!Y,g'f&jOY$eZr$ers%^sw$ewx(Ox{$e{|!@[|!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!@gY)ZW!X-y(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!AbY!h,k)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!B__)ZW(pQ%Z!b!Y,g'f&jOY$eZr$ers%^sw$ewx(Ox}$e}!O!@[!O!_$e!_!`!8g!`!a!C^!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!CiY(x-y)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Dd^)ZW(pQ'f&j(w,gOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!E`!P!Q$e!Q![!GY![#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Ei[)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!F_!P#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!FjY)X,k)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]!Gen)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx!Icx!Q$e!Q![!GY![!g$e!g!h#$w!h!i#*Y!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#X$e#X#Y#$w#Y#Z#*Y#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2T!IjY(pQ'f&jOY(OZr(Ors%}s!Q(O!Q![!JY![#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O2T!Jcn(pQ!i,g'f&jOY(OZr(Ors%}sw(Owx!Icx!Q(O!Q![!JY![!g(O!g!h!La!h!i##`!i!n(O!n!o##`!o!r(O!r!s!La!s!w(O!w!x##`!x#O(O#O#P&f#P#X(O#X#Y!La#Y#Z##`#Z#`(O#`#a##`#a#d(O#d#e!La#e#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ljl(pQ!i,g'f&jOY(OZr(Ors%}s{(O{|!Nb|}(O}!O!Nb!O!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ni^(pQ'f&jOY(OZr(Ors%}s!Q(O!Q![# e![!c(O!c!i# e!i#O(O#O#P&f#P#T(O#T#Z# e#Z;'S(O;'S;=`(o<%lO(O2T# nj(pQ!i,g'f&jOY(OZr(Ors%}sw(Owx!Nbx!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T##id(pQ!i,g'f&jOY(OZr(Ors%}s!h(O!h!i##`!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#Y(O#Y#Z##`#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2]#%Sn)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx(Ox{$e{|#'Q|}$e}!O#'Q!O!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#'Z`)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![#(]![!c$e!c!i#(]!i#O$e#O#P&f#P#T$e#T#Z#(]#Z;'S$e;'S;=`(u<%lO$e2]#(hj)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx!Nbx!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#*ef)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx(Ox!h$e!h!i#*Y!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#Y$e#Y#Z#*Y#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e7Z#,W`)ZW(pQ%Z!b![,g'f&jOY$eZr$ers%^sw$ewx(Oxz$ez{#-Y{!P$e!P!Q#:s!Q!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#-c])ZW(pQ'f&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y1e#._TOz#.[z{#.n{;'S#.[;'S;=`#/]<%lO#.[1e#.qVOz#.[z{#.n{!P#.[!P!Q#/W!Q;'S#.[;'S;=`#/]<%lO#.[1e#/]OT1e1e#/`P;=`<%l#.[7X#/jZ)ZW'f&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7P#0bX'f&jOY#0]YZ#.[Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1SZ'f&jOY#0]YZ#.[Zz#0]z{#0}{!P#0]!P!Q#1u!Q#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1|UT1e'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}7P#2eZ'f&jOY#0]YZ#0]Z]#0]]^#3W^z#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3]X'f&jOY#0]YZ#0]Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3{P;=`<%l#0]7X#4V])ZW'f&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{!P#/c!P!Q#5O!Q#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7X#5XW)ZWT1e'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^7X#5tP;=`<%l#/c7R#6OZ(pQ'f&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#6x](pQ'f&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{!P#5w!P!Q#7q!Q#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#7zW(pQT1e'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O7R#8gP;=`<%l#5w7Z#8s_)ZW(pQ'f&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{!P#-Y!P!Q#9r!Q#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y7Z#9}Y)ZW(pQT1e'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#:pP;=`<%l#-Y7Z#;OY)ZW(pQS1e'f&jOY#:sZr#:srs#;nsw#:swx#@{x#O#:s#O#P#[<%lO#b#P;'S#[<%lO#[<%lO#_P;=`<%l#i]S1e'f&jOY#b#P#b#[<%lO#[<%lO#b#P#b#[<%lO#t!R![$2V![!c$e!c!i$2V!i#O$e#O#P&f#P#T$e#T#Z$2V#Z;'S$e;'S;=`(u<%lO$e2]$?Pv)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx$4lx!O$e!O!P$ m!P!Q$e!Q![$2V![!c$e!c!g$2V!g!h$:p!h!i$2V!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#U$2V#U#V$2V#V#X$2V#X#Y$:p#Y#Z$2V#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j#l$e#l#m$0z#m;'S$e;'S;=`(u<%lO$e4e$Ar[(v-X)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox![$e![!]$Bh!]#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3s$BsYl-})ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]$CnY)W,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7V$Dk_p,g%]!b)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!^$Ej!^!_%+w!_!`%.U!`!a%0]!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej*[$Es])ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ejp$FoTO!`$Fl!`!a$GO!a;'S$Fl;'S;=`$GT<%lO$Flp$GTO$Wpp$GWP;=`<%l$Fl*Y$GbZ)ZW'f&jOY$GZYZ$FlZw$GZwx$HTx!`$GZ!`!a%(U!a#O$GZ#O#P$Ib#P;'S$GZ;'S;=`%(y<%lO$GZ*Q$HYX'f&jOY$HTYZ$FlZ!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q$IOU$WpY#t'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}*Q$Ig['f&jOY$HTYZ$HTZ]$HT]^$J]^!`$HT!`!a$NO!a#O$HT#O#P%&n#P;'S$HT;'S;=`%'f;=`<%l%$z<%lO$HT*Q$JbX'f&jOY$HTYZ$J}Z!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT'[$KSX'f&jOY$J}YZ$FlZ!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$KvU$Wp'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}'[$L_Z'f&jOY$J}YZ$J}Z]$J}]^$MQ^!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MVX'f&jOY$J}YZ$J}Z!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MuP;=`<%l$J}*Q$M{P;=`<%l$HT*Q$NVW$Wp'f&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`$NtW'f&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`% eUY#t'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%})`% |Y'f&jOY$NoYZ$NoZ]$No]^%!l^#O$No#O#P%#d#P;'S$No;'S;=`%$[;=`<%l%$z<%lO$No)`%!qX'f&jOY$NoYZ%}Z!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%#aP;=`<%l$No)`%#iZ'f&jOY$NoYZ%}Z]$No]^%!l^!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%$_XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$No<%lO%$z#t%$}WOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h<%lO%$z#t%%lOY#t#t%%oRO;'S%$z;'S;=`%%x;=`O%$z#t%%{XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l%$z<%lO%$z#t%&kP;=`<%l%$z*Q%&sZ'f&jOY$HTYZ$J}Z]$HT]^$J]^!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q%'iXOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$HT<%lO%$z*Y%(aW$WpY#t)ZW'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^*Y%(|P;=`<%l$GZ*S%)WZ(pQ'f&jOY%)PYZ$FlZr%)Prs$HTs!`%)P!`!a%)y!a#O%)P#O#P$Ib#P;'S%)P;'S;=`%*n<%lO%)P*S%*UW$WpY#t(pQ'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O*S%*qP;=`<%l%)P*[%+RY$WpY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e*[%+tP;=`<%l$Ej7V%,U^)ZW(pQ%[!b!f,g'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!_$Ej!_!`%-Q!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%-]]!g-y)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%.c]%]!b!b,g)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%/[!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%/mY%]!b!b,g$WpY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e)j%0hYY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%1c[)j!c)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`0Q!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%2f]%]!b)ZW(pQ!d,g'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`%3_!`!a%4[!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%3lY%]!b!b,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%4i[)ZW(pQ%[!b!f,g'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%5jY(uP)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z%6ib)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e7Z%8Qb)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e5P%9cW)ZW(o/]'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^2T%:UW(pQ)Y,g'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O3o%:yZ!V-y)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!}$e!}#O%;l#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%;wY)PP)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e4e%[Z]%=q]^%?Z^!Q%=q!Q![%?w![!w%=q!w!x%AX!x#O%=q#O#P%H_#P#i%=q#i#j%Ds#j#l%=q#l#m%IR#m;'S%=q;'S;=`%Kt<%lO%=q&t%=xUXY'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}4e%>e[XY(n.o'f&jOX%}XY-OYZ*[Z]%}]^-O^p%}pq-Oq#O%}#O#P,^#P;'S%};'S;=`'r<%lO%}4e%?bVXY'f&jOY%}YZ-OZ#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@OWXY'f&jOY%}Z!Q%}!Q![%@h![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@oWXY'f&jOY%}Z!Q%}!Q![%=q![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%A^['f&jOY%}Z!Q%}!Q![%BS![!c%}!c!i%BS!i#O%}#O#P&f#P#T%}#T#Z%BS#Z;'S%};'S;=`'r<%lO%}&t%BX['f&jOY%}Z!Q%}!Q![%B}![!c%}!c!i%B}!i#O%}#O#P&f#P#T%}#T#Z%B}#Z;'S%};'S;=`'r<%lO%}&t%CS['f&jOY%}Z!Q%}!Q![%Cx![!c%}!c!i%Cx!i#O%}#O#P&f#P#T%}#T#Z%Cx#Z;'S%};'S;=`'r<%lO%}&t%C}['f&jOY%}Z!Q%}!Q![%Ds![!c%}!c!i%Ds!i#O%}#O#P&f#P#T%}#T#Z%Ds#Z;'S%};'S;=`'r<%lO%}&t%Dx['f&jOY%}Z!Q%}!Q![%En![!c%}!c!i%En!i#O%}#O#P&f#P#T%}#T#Z%En#Z;'S%};'S;=`'r<%lO%}&t%Es['f&jOY%}Z!Q%}!Q![%Fi![!c%}!c!i%Fi!i#O%}#O#P&f#P#T%}#T#Z%Fi#Z;'S%};'S;=`'r<%lO%}&t%Fn['f&jOY%}Z!Q%}!Q![%Gd![!c%}!c!i%Gd!i#O%}#O#P&f#P#T%}#T#Z%Gd#Z;'S%};'S;=`'r<%lO%}&t%Gi['f&jOY%}Z!Q%}!Q![%=q![!c%}!c!i%=q!i#O%}#O#P&f#P#T%}#T#Z%=q#Z;'S%};'S;=`'r<%lO%}&t%HfXXY'f&jOY%}YZ%}Z]%}]^'W^#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%IW['f&jOY%}Z!Q%}!Q![%I|![!c%}!c!i%I|!i#O%}#O#P&f#P#T%}#T#Z%I|#Z;'S%};'S;=`'r<%lO%}&t%JR['f&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KO[XY'f&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KwP;=`<%l%=q2a%LVZ!W,V)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P#Q%Lx#Q;'S$e;'S;=`(u<%lO$e'Y%MTY)]d)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%NQ[)ZW(pQ%[!b'f&j!_,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z& Vd)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q!Y%6Y!Y!Z%7q!Z![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e2]&!pY!T,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o&#m^)ZW(pQ%[!b'f&j!^,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P#p$e#p#q&$i#q;'S$e;'S;=`(u<%lO$e3o&$vY)T,g%^!b)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e'V&%qY!Ua)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e(]&&nc)ZW(pQ%[!b'RP'f&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&(Sc)ZW(pQ'f&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&)jb)ZW(pQdT'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![&)_![!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e",tokenizers:[Dv,Lv,0,1,2,3,4,5,6,7,8,9],topRules:{Program:[0,307]},dynamicPrecedences:{87:1,94:1,119:1,184:1,187:-10,240:-10,241:1,244:-1,246:-10,247:1,262:-1,267:2,268:2,306:-10,365:3,417:1,418:3,419:1,420:1},specialized:[{term:356,get:O=>Nv[O]||-1},{term:32,get:O=>Bv[O]||-1},{term:66,get:O=>Fv[O]||-1},{term:363,get:O=>Hv[O]||-1}],tokenPrec:24891}),Jv=Ee.define({name:"cpp",parser:Kv.configure({props:[gt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch)\b/}),LabeledStatement:oh,CaseStatement:O=>O.baseIndent+O.unit,BlockComment:()=>null,CompoundStatement:DO({closing:"}"}),Statement:Ce({except:/^{/})}),ot.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":$O,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function eW(){return new tt(Jv)}const tW=1,Cg=206,Eg=207,OW=208,xQ=209,iW=210,rW=211,nW=212,sW=2,oW=213,aW=214,lW=3,cW=215,hW=216,fW=4,uW=217,QW=218,dW=5,$W=219,pW=26,mW=27,gW=51,SW=52,PW=57,XW=58,yW=59,xW=61,bW=62,wW=63,TW=64,ZW=65,vW=67,WW=256,kW=74,YW=275,qW=120,zW=138,RW=159,VW=160,UW=163,ln=10,cn=13,bh=32,Vo=9,wh=35,_W=40,jW=46,bQ=123,Ag=39,Ig=34,GW=92,CW=new Set([mW,gW,SW,YW,vW,zW,XW,yW,WW,TW,ZW,kW,bW,wW,RW,VW,UW,qW]);function ya(O){return O==ln||O==cn}const EW=new $e((O,e)=>{let t;if(O.next<0)O.acceptToken(rW);else if(e.context.depth<0)ya(O.next)&&O.acceptToken(iW,1);else if(((t=O.peek(-1))<0||ya(t))&&e.canShift(xQ)){let i=0;for(;O.next==bh||O.next==Vo;)O.advance(),i++;(O.next==ln||O.next==cn||O.next==wh)&&O.acceptToken(xQ,-i)}else ya(O.next)&&O.acceptToken(OW,1)},{contextual:!0}),AW=new $e((O,e)=>{let t=e.context.depth;if(t<0)return;let i=O.peek(-1);if(i==ln||i==cn){let r=0,n=0;for(;;){if(O.next==bh)r++;else if(O.next==Vo)r+=8-r%8;else break;O.advance(),n++}r!=t&&O.next!=ln&&O.next!=cn&&O.next!=wh&&(r{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let t=O.peek(e);if(!(t==bh||t==Vo)){t!=_W&&t!=jW&&t!=ln&&t!=cn&&t!=wh&&O.acceptToken(tW);return}}});function Uo(O,e,t,i,r){return new $e(n=>{let s=n.pos;for(;!(n.next<0);)if(n.next==bQ)if(n.peek(1)==bQ)n.advance(2);else{if(n.pos==s){n.acceptToken(i,1);return}break}else if(n.next==GW)n.advance(),n.next>=0&&n.advance();else if(n.next==O&&(e==1||n.peek(1)==O&&n.peek(2)==O)){if(n.pos==s){n.acceptToken(r,e);return}break}else n.advance();n.pos>s&&n.acceptToken(t)})}const NW=Uo(Ag,1,nW,sW,oW),BW=Uo(Ig,1,aW,lW,cW),FW=Uo(Ag,3,hW,fW,uW),HW=Uo(Ig,3,QW,dW,$W),KW=De({'async "*" "**" FormatConversion FormatSpec':u.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":u.controlKeyword,"in not and or is del":u.operatorKeyword,"from def class global nonlocal lambda":u.definitionKeyword,import:u.moduleKeyword,"with as print":u.keyword,Boolean:u.bool,None:u.null,VariableName:u.variableName,"CallExpression/VariableName":u.function(u.variableName),"FunctionDefinition/VariableName":u.function(u.definition(u.variableName)),"ClassDefinition/VariableName":u.definition(u.className),PropertyName:u.propertyName,"CallExpression/MemberExpression/PropertyName":u.function(u.propertyName),Comment:u.lineComment,Number:u.number,String:u.string,FormatString:u.special(u.string),UpdateOp:u.updateOperator,"ArithOp!":u.arithmeticOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,AssignOp:u.definitionOperator,Ellipsis:u.punctuation,At:u.meta,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,".":u.derefOperator,", ;":u.separator}),JW={__proto__:null,await:48,or:58,and:60,in:64,not:66,is:68,if:74,else:76,lambda:80,yield:98,from:100,async:106,for:108,None:178,True:180,False:180,del:194,pass:198,break:202,continue:206,return:210,raise:218,import:222,as:224,global:228,nonlocal:230,assert:234,type:239,elif:252,while:256,try:262,except:264,finally:266,with:270,def:274,class:284,match:295,case:301},ek=Ae.deserialize({version:14,states:"#)WO`Q#yOOP$bOSOOO%kQ&nO'#HhOOQS'#Cq'#CqOOQS'#Cr'#CrO'ZQ#xO'#CpO(|Q&nO'#HgOOQS'#Hh'#HhOOQS'#DW'#DWOOQS'#Hg'#HgO)jQ#xO'#DaO)}Q#xO'#DhO*_Q#xO'#DlOOQS'#Dw'#DwO*rO,UO'#DwO*zO7[O'#DwO+SOWO'#DxO+_O`O'#DxO+jOpO'#DxO+uO!bO'#DxO-wQ&nO'#HXOOQS'#HX'#HXO'ZQ#xO'#HWO/ZQ&nO'#HWOOQS'#Ej'#EjO/rQ#xO'#EkOOQS'#HV'#HVO/|Q#xO'#HUOOQV'#HU'#HUO0XQ#xO'#FbOOQS'#Gj'#GjO0^Q#xO'#FaOOQV'#I_'#I_OOQV'#HT'#HTOOQV'#Fy'#FyQ`Q#yOOO'ZQ#xO'#CsO0lQ#xO'#DPO0sQ#xO'#DTO1RQ#xO'#HlO1cQ&nO'#E_O'ZQ#xO'#E`OOQS'#Eb'#EbOOQS'#Ed'#EdOOQS'#Ef'#EfO1wQ#xO'#EhO2_Q#xO'#ElO0XQ#xO'#EnO2rQ&nO'#EnO0XQ#xO'#EqO/rQ#xO'#EtO0XQ#xO'#EvO/rQ#xO'#E|O/rQ#xO'#FPO2}Q#xO'#FRO3UQ#xO'#FWO3aQ#xO'#FSO/rQ#xO'#FWO0XQ#xO'#FYO0XQ#xO'#F_O3fQ#xO'#FdP3mO#xO'#HSPOOO)CBv)CBvOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Ck'#CkOOQS'#Cl'#ClOOQS'#Cn'#CnO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO'ZQ#xO,59QO3xQ#xO'#DqOOQS,5:[,5:[O4]Q#xO'#HvOOQS,5:_,5:_O4jQMlO,5:_O4oQ&nO,59[O0lQ#xO,59dO0lQ#xO,59dO0lQ#xO,59dO7_Q#xO,59dO7dQ#xO,59dO7kQ#xO,59lO7rQ#xO'#HgO8xQ#xO'#HfOOQS'#Hf'#HfOOQS'#D^'#D^O9aQ#xO,59cO'ZQ#xO,59cO9oQ#xO,59cOOQS,59{,59{O9tQ#xO,5:TO'ZQ#xO,5:TOOQS,5:S,5:SO:SQ#xO,5:SO:XQ#xO,5:ZO'ZQ#xO,5:ZO'ZQ#xO,5:XOOQS,5:W,5:WO:jQ#xO,5:WO:oQ#xO,5:YOOOO'#GR'#GRO:tO,UO,5:cOOQS,5:c,5:cOOOO'#GS'#GSO:|O7[O,5:cO;UQ#xO'#DyOOOW'#GT'#GTO;fOWO,5:dOOQS,5:d,5:dO;UQ#xO'#EPOOO`'#GW'#GWO;qO`O,5:dO;UQ#xO'#EROOOp'#GX'#GXO;|OpO,5:dO;UQ#xO'#ETOOO!b'#GY'#GYOWOOQS,5>W,5>WO/rQ#xO'#EZOOQS'#E['#E[OGZQ#xO'#G]OGkQ#xO,59OOGkQ#xO,59OO)pQ#xO,5:wOGyQ&nO'#HoOOQS,5:z,5:zOOQS,5;S,5;SOH^Q#xO,5;WOHoQ#xO,5;YOOQS'#G`'#G`OH}Q&nO,5;YOI]Q#xO,5;YOIbQ#xO'#I]OOQS,5;],5;]OIpQ#xO'#IXOOQS,5;`,5;`OJRQ#xO,5;bO3aQ#xO,5;hO3aQ#xO,5;kOJZQ&nO'#I`O'ZQ#xO'#I`OJeQ#xO,5;mO2}Q#xO,5;mO/rQ#xO,5;rO0XQ#xO,5;tOJjQ#yO'#E}OKvQ#{O,5;nO! [Q#xO'#IaO3aQ#xO,5;rO! gQ#xO,5;tO! oQ#xO,5;yO! zQ&nO,5bOOQS'#Du'#DuOOQS1G/y1G/yOOQS1G/O1G/OO!-uQ&nO1G/OO!-|Q&nO1G/OO0lQ#xO1G/OO!.iQ#xO1G/WOOQS'#D]'#D]O/rQ#xO,59vOOQS1G.}1G.}O!.pQ#xO1G/gO!/QQ#xO1G/gO!/YQ#xO1G/hO'ZQ#xO'#HnO!/_Q#xO'#HnO!/dQ&nO1G.}O!/tQ#xO,59kO!0zQ#xO,5>^O!1[Q#xO,5>^O!1dQ#xO1G/oO!1iQ&nO1G/oOOQS1G/n1G/nO!1yQ#xO,5>XO!2pQ#xO,5>XO/rQ#xO1G/sO!3_Q#xO1G/uO!3dQ&nO1G/uO!3tQ&nO1G/sOOQS1G/r1G/rOOQS1G/t1G/tOOOO-E:P-E:POOQS1G/}1G/}OOOO-E:Q-E:QO!4UQ#xO'#IRO/rQ#xO'#IRO!4gQ#xO,5:eOOOW-E:R-E:ROOQS1G0O1G0OO!4uQ#xO,5:kOOO`-E:U-E:UO!5TQ#xO,5:mOOOp-E:V-E:VO!5cQ#xO,5:oOOO!b-E:W-E:WOOQS-E:X-E:XO!5qQ!LUO1G3^O!6bQ&nO1G3^O'ZQ#xO,5tOOQS1G1h1G1hO!7bQ#xO1G1hOOQS'#DX'#DXO/rQ#xO,5>TOOQS,5>T,5>TO!7gQ#xO'#FzO!7rQ#xO,59qO!7zQ#xO1G/ZO!8UQ&nO,5>XOOQS1G3r1G3rOOQS,5:u,5:uO!8uQ#xO'#HWOOQS,5ZO!9vQ#xO,5>ZO/rQ#xO1G0rO/rQ#xO1G0rO0XQ#xO1G0tOOQS-E:^-E:^O!:XQ#xO1G0tO!:dQ#xO1G0tO!:iQ#xO,5>wO!:wQ#xO,5>wO!;VQ#xO,5>sO!;mQ#xO,5>sO!zO!CZQ#xO,5>zO!CcQ&nO,5>zO/rQ#xO1G1XO!CmQ#xO1G1XO3aQ#xO1G1^O! gQ#xO1G1`OOQV,5;i,5;iO!CrQ#zO,5;iO!CwQ#{O1G1YO!G]Q#xO'#GgO3aQ#xO1G1YO3aQ#xO1G1YO!GmQ#xO,5>{O!GzQ#xO,5>{O0XQ#xO,5>{OOQV1G1^1G1^O!HSQ#xO'#F[O!HeQMlO1G1`O!HmQ#xO1G1`OOQV1G1e1G1eO3aQ#xO1G1eO!HrQ#xO1G1eO!HzQ#xO'#FfOOQV1G1j1G1jO! zQ&nO1G1jPOOO1G3Y1G3YP!IPOSO1G3YOOQS,5>a,5>aOOQS'#Dr'#DrO/rQ#xO,5>aO!IUQ#xO,5>`O!IiQ#xO,5>`OOQS1G/w1G/wO!IqQ#xO,5>cO!JRQ#xO,5>cO!JZQ#xO,5>cO!JnQ#xO,5>cO!KOQ#xO,5>cOOQS1G3|1G3|OOQS7+$j7+$jO!7zQ#xO7+$rO!LqQ#xO1G/OO!LxQ#xO1G/OOOQS1G/b1G/bOOQS,5YO'ZQ#xO,5>YOOQS7+$i7+$iO!MfQ#xO7+%RO!MnQ#xO7+%SO!MsQ#xO1G3xOOQS7+%Z7+%ZO!NTQ#xO1G3xO!N]Q#xO7+%ZOOQS,5mO##cQ#xO,5>mO##cQ#xO,5>mOOQS'#Dz'#DzO##tO$ISO'#D|O#$PO#tO'#ISOOOW1G0P1G0PO#$UQ#xO1G0PO#$^Q#xO1G0POOQS'#EQ'#EQOOO`1G0V1G0VO#$iQ#xO1G0VO#$qQ#xO1G0VOOQS'#ES'#ESOOOp1G0X1G0XO#$|Q#xO1G0XO#%UQ#xO1G0XOOQS'#EU'#EUOOO!b1G0Z1G0ZO#%aQ#xO1G0ZO#%iQ#xO1G0ZO#%tQ!LUO7+(xO#&eQ&nO1G2bP#'OQ#xO'#G[OOQS,5n,5>nOOOW7+%k7+%kO#;yQ#xO7+%kOOO`7+%q7+%qO#vO#=xQ#xO,5>vO0XQ#xO,5>vO#>ZQ#xO,5>uOOQS<`Q#xO,5>xO#>nQ#xO,5>xOOQS1G1O1G1OOOQS<vQ&nO1G2lP#?QQ#xO'#GfO#?XQ#xO7+*QO#?cQ#{O<}O#F{Q#xO,5>}OOQS,5>},5>}O#GWQ#xO,5>|O#GiQ#xO,5>|OOQS1G1b1G1bOOQS,5;x,5;xOOQV<XAN>XO#JxQ#xO<eAN>eO/rQ#xO1G2UO#KYQ&nO1G2UP#KdQ#xO'#GOOOQS1G2[1G2[P#KqQ#xO'#GUO#LOQ#xO7+)sO#LiQ#xO,5:iOOOO-E:T-E:TOOOW<[OOQSANBfANBfOOOO7+%o7+%oO$.WQ#xO7+%oOOQS7+(R7+(RO$.`Q#xO<kPP>n?`?cPP'f'fPP?{PP'f'fPP'f'f'f'f'f@P@y'fP@|PASE^H}IRPIUIlIpIsIwIzJOJRJV'fPPPJYJc'^P'^'^P'^P'^P'^P'^P'^'^'^P'^PP'^PP'^P'^PJiJuJ}PKUK[PKUPKUKUPPPKUPMjPMsM}NTMjPKUN^PKUPNeNkPNo! T! r!!]NoNo!!c!!pNoNoNoNo!#U!#[!#_!#d!#g!#q!#w!$T!$g!$m!$w!$}!%k!%q!%w!%}!&X!&_!&e!&k!&q!&w!'Z!'e!'k!'q!'w!(R!(X!(_!(e!(k!(u!({!)V!)]!)f!)l!){!*T!*_!*fPPPPPPPPPPPPPPPPP!*l!*o!*u!+O!+Y!+ePPPPPPPPPPPP!0[!1p!5s!9WPP!9`!9r!9{!:t!:k!:}!;T!;W!;Z!;^!;f!V!>]!>f!>i!>l!>r!>x!?O!?RP!?Z!?d!@`!@c]jOs#v$w*`,p(TeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1o}!hQ#r$P$b$q$}%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!P!iQ#r$P$b$q$}%S%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!R!jQ#r$P$b$q$}%S%T%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!T!kQ#r$P$b$q$}%S%T%U%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!V!lQ#r$P$b$q$}%S%T%U%V%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!X!mQ#r$P$b$q$}%S%T%U%V%W%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d!]!mQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1d(TTOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1o&iVOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0W0p1`1a1b1c1e1f1g1h1k1o%sXOYZ[isw}!O!S!U!V!Z!n!p#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-d-f-h-j-k-r.Z.].d.g/a/b0W1f1g1hQ$VvQ0X/fR1l1n'zeOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oW#ym!P!Q$hW$Rv&q/f1nQ$j!RQ$n!TQ${![Q$|!]W%Z!n(O+O-WS&p$S$TQ'e$vQ)b&jQ)p'QU)q'S)r)sU)t'U)u,ZW){'Y,^-z.vQ*l'nW*m'p-P._/OQ,])zS-O*n*oY-t,U-u.s.t/lQ-w,WQ.U,tQ.Y,wQ.|.Wl/R.c/X/Y/[/w/y0O0g0l0q0v1R1W1ZQ/k.rQ0P/ZQ0^/qQ0i/{U0|0r1P1XX1S0w1T1[1]R&o$R!_!|YZ!U!V!p%a%m%t(R(T(U(a(i*R+R+S+V+]+`+b-X-Y-[-]-`.d.g/a/b0WR%k!{Q#QYQ&W#cQ&Z#gQ&]#jQ&_#mQ&x$^Q&{$aR-l+tT/e.j0p![!oQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1dQ&m#zQ't$|R*x'uR'}%ZQ%d!rR0[/o(SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oS#pd#q!P/V.c/X/Y/Z/[/q/w/y0O0g0l0q0r0v0w1P1R1T1W1X1Z1[1](SdOTYZ[fistuwy}!O!S!U!V!W!Z!^!h!i!j!k!l!m!n!p!t!u!v!x!y#P#T#X#Y#c#g#j#m#s#v$X$Y$[$^$a$r$t$u$w%O%[%a%h%k%m%p%t%y%{&V&b&d&o&s&|'O'P'W'Z'_'b'i'l'}(O(R(T(U(Y(_(a(e(i(n(o(u(x)_)a)i)l)x*P*R*V*W*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+l+p+q+t,Q,S,T,[,i,j,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0S0W0p1`1a1b1c1e1f1g1h1i1k1oT#pd#qT#d`#eR)Q&Wy(}&W&Z&]&_)P)Q)T)U)X)Y)])^+y+{+},P-l.p.q/jT+u(|+vR.q-lT#ha#iR)U&ZT#kb#lR)Y&]T#nc#oR)^&_Q$`xQ,]){R,}*mX$^x$_$`&zQ'[$nQ'r${Q'u$|R*_'eQ)|'YV-y,^-z.vZlOs$w*`,pXpOs*`,pQ$x!YQ']$oQ'^$pQ'o$zQ's$|Q*]'dQ*d'iQ*g'jQ*h'kQ*u'qS*w't'uQ,d*RQ,f*SQ,g*TQ,k*ZS,m*^*vQ,q*bQ,r*cS,s*e*fQ-T*xQ-|,cQ-},eQ.P,lS.Q,n,oQ.V,uQ.X,vQ.w.OQ.y.RQ.z.TQ.{.UQ/m.xQ/n.|Q0T/_R0o0UWpOs*`,pR#|oQ'q${S*^'e'rR,o*_Q,|*mR.],}Q*v'qQ,n*^R.R,oZnOos*`,pQ'w$}R*z'xT.a-U.bu/^.c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1Zt/^.c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1ZQ0P/ZX1S0w1T1[1]!P/U.c/X/Y/Z/[/q/w/y0O0g0l0q0r0v0w1P1R1T1W1X1Z1[1]Q/t/TR0c/ug/w/W/x0_0f0k0y0{0}1Y1^1_u/].c/X/Y/[/q/w/y0O0g0l0q0r0v1P1R1W1X1ZX/r/R/]0^0|R0`/qV1O0r1P1XR0U/_QsOS$Os,pR,p*`Q&r$UR)g&rS%z#W$WS(p%z(sT(s%}&tQ%n#OQ%u#SW(b%n%u(g(kQ(g%rR(k%wQ&}$bR)m&}Q(v&OQ+g(qT+m(v+gQ(P%]R+P(PS(S%`%aY+T(S+U-^.h/cU+U(T(U(VU-^+V+W+XS.h-_-`R/c.iQ#_^R&R#_Q#b_R&T#bQ#e`R&X#eQ(y&US+r(y+sR+s(zQ+v(|R-m+vQ#iaR&[#iQ#lbR&^#lQ#ocR&`#oQ#qdR&a#qQ#tgQ&c#rW&f#t&c)j,RQ)j&wR,R1dQ$_xS&y$_&zR&z$`Q'X$lR)y'XQ&k#yR)c&kQ$h!QR'R$hQ,V)qS-v,V.uR.u-wQ'V$jR)v'VQ,_)|R-{,_Q#wkR&h#wQ*Q']R,b*QQ'`$qS*X'`*YR*Y'aQ'h$xR*a'hQ'm$yS*k'm,zR,z*lQ-Q*qR.`-QWoOs*`,pR#{oQ.b-UR/P.bd/x/W0_0f0k0y0{0}1Y1^1_R0e/xU/p/R0^0|R0]/pQ0x0kS1U0x1VR1V0yS0s0_0`R1Q0sQ/z/WR0h/zR!`PXrOs*`,pWqOs*`,pR'f$wYkOs$w*`,pR&g#v[xOs#v$w*`,pR&x$^&hQOYZ[isuw}!O!S!U!V!Z!n!p!t!u!v!x!y#c#g#j#m#s#v$Y$[$^$a$u$w%[%a%h%k%m%t%y%{&V&b&o&s'O'P'W'Z'b'i'l'}(O(R(T(U(Y(a(i(o(u(x)_)a)i)x*P*R*[*`*f*j*t+O+R+S+V+]+^+`+b+e+f+i+p+q+t,Q,T,[,p,x,y,|-W-X-Y-[-]-`-b-d-f-h-j-k-r.Z.].d.g.j/a/b0W0p1`1a1b1c1e1f1g1h1k1oQ!sTQ#rfQ$PtU$by%p(eS$q!W$tQ$}!^Q%S!hQ%T!iQ%U!jQ%V!kQ%W!lQ%X!mQ%r#PQ%w#TQ%}#XQ&O#YQ&t$XQ'a$rQ'x%OQ)`&dU)k&|)l,SW*U'_*W,i,jQ+Z(_Q+d(nQ,h*VQ-g+lQ0n0SR1d1iQ#OYQ#SZQ$o!UQ$p!VQ%`!pQ(V%a^(^%m%t(a(i+]+`+b^+Q(R+S-[-].g/b0WQ+W(TQ+X(UQ,e*RQ-Z+RQ-_+VQ.e-XQ.f-YQ.i-`Q/`.dR0V/a[gOs#v$w*`,p!^!{YZ!U!V!p%a%m%t(R(T(U(a(i*R+R+S+V+]+`+b-X-Y-[-]-`.d.g/a/b0WQ#W[Q#uiS$Ww}Q$e!OW$l!S$a'b*[S$y!Z$uW%Y!n(O+O-WY&U#c#g#j#m+t`&e#s&b)_)a)i,Q-r1hQ&u$YQ&v$[Q&w$^Q'{%[Q(]%kW(m%y(o+e+iQ(q%{Q(z&VQ)e&oS)h&s1fQ)n'OQ)o'PU)w'W)x,[Q*O'ZQ*e'iY*i'l*j,x,y.ZQ*|'}S+Y(Y1gW+k(u+f-d-hW+o(x+q-j-kQ,a*PQ,u*fQ-S*tQ-i+pQ-s,TQ.[,|Q.m-fR.}.]hUOs#s#v$w&b&s(Y)_)a*`,p%Y!zYZ[iw}!O!S!U!V!Z!n!p#c#g#j#m$Y$[$^$a$u%[%a%k%m%t%y%{&V&o'O'P'W'Z'b'i'l'}(O(R(T(U(a(i(o(u(x)i)x*P*R*[*f*j*t+O+R+S+V+]+`+b+e+f+i+p+q+t,Q,T,[,x,y,|-W-X-Y-[-]-`-d-f-h-j-k-r.Z.].d.g/a/b0W1f1g1hQ$QuW%e!t!x1a1kQ%f!uQ%g!vQ%i!yQ%s1`S(X%h1eQ(Z1bQ([1cQ-a+^Q.l-bS/d.j0pR1m1oU$Uv/f1nR)f&q[hOs#v$w*`,pa!}Y#c#g#j#m$^$a+tQ#][Q$ZwR$d}Q%o#OQ%v#SQ%|#WQ'{%YQ(h%rQ(l%wQ(t%}Q(w&OQ+h(qQ-V*|Q.k-aQ/h.lR0Y/gQ$cyQ(d%pR+_(eQ/g.jR0z0pR#VZR#[[R%_!nQ%]!nV*}(O+O-W!]!qQ!s#r$P$b$q$}%S%T%U%V%W%X%r%w%}&O&t'a'x)`)k*U+Z+d,h-g0n1dR%b!pQ&W#cQ&Z#gQ&]#jQ&_#mR-l+tQ)O&WQ)S&ZQ)W&]Q)[&_S+x)P)QS+z)T)US+|)X)YS,O)])^Q-n+yQ-o+{Q-p+}Q-q,PQ.o-lS/i.p.qR0Z/jQ$m!SQ&{$aQ*Z'bR,l*[Q#zmQ$f!PQ$i!QR'T$hQ)p'SR,Y)sQ)p'SQ,X)rR,Y)sR$k!RR)}'YXqOs*`,pQ$s!WR'c$tQ$z!ZR'd$uR*s'pQ*q'pV.^-P._/OQ/_.cQ/|/XR/}/YU/W.c/X/YQ0R/[Q0_/qQ0d/wU0f/y0g0vQ0k0OQ0y0lQ0{0qU0}0r1P1XQ1Y1RQ1^1WR1_1ZR0Q/ZR0a/q",nodeNames:"⚠ print { { { { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:288,context:LW,nodeProps:[["isolate",-8,6,73,74,75,79,81,83,85,""],["group",-15,8,93,95,96,98,100,102,104,106,107,108,110,113,116,118,"Statement Statement",-22,10,20,23,27,42,51,52,58,59,62,63,64,65,66,69,72,73,74,87,88,89,90,"Expression",-10,122,124,127,129,130,134,136,141,143,146,"Statement",-9,151,152,155,156,158,159,160,161,162,"Pattern"],["openedBy",25,"(",56,"[",60,"{"],["closedBy",26,")",57,"]",61,"}"]],propSources:[KW],skippedNodes:[0,6],repeatNodeCount:38,tokenData:"%-W#sR!`OX%TXY=|Y[%T[]=|]p%Tpq=|qr@_rsDOst!+|tu%Tuv!Nnvw#!|wx#$Wxy#:Uyz#;Yz{#<^{|#>x|}#@S}!O#AW!O!P#Ci!P!Q#N_!Q!R$!y!R![$&w![!]$1e!]!^$3s!^!_$4w!_!`$7c!`!a$8m!a!b%T!b!c$;U!c!d$W!e!h$W#V#Y$Q<%lO$Xc&w!b&oS&rW%u!TOX%TXY=|Y[%T[]=|]p%Tpq=|qr%Trs&Vsw%Twx/Xx#O%T#O#P?d#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#s?i[&w!bOY%TYZ=|Z]%T]^=|^#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=P;=`<%l8^<%lO%T!q@hd&w!b&oS&rWOr%Trs&Vsw%Twx/Xx!_%T!_!`Av!`#O%T#O#P7o#P#T%T#T#UBz#U#f%T#f#gBz#g#hBz#h#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qBR]oR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T!qCV]!oR&w!b&oS&rWOr%Trs&Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cDXa&w!b&oS&msOYE^YZ%TZ]E^]^%T^rE^rs!)|swE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cEia&w!b&oS&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxGpx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cFw]&w!b&oS&msOr%Trs'Vsw%Twx/Xx#O%T#O#P7o#P#o%T#o#p8^#p#q%T#q#r8^#r;'S%T;'S;=`=v<%lO%T#cGya&w!b&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxIOx#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#cIXa&w!b&rW&msOYE^YZ%TZ]E^]^%T^rE^rsFnswE^wxJ^x#OE^#O#P!!u#P#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!)v<%lOE^#_Jg_&w!b&rW&msOYJ^YZ1XZ]J^]^1X^rJ^rsKfs#OJ^#O#PL`#P#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`!!o<%lOJ^#_KmZ&w!b&msOr1Xrs2ys#O1X#O#P3q#P#o1X#o#p4`#p#q1X#q#r4`#r;'S1X;'S;=`7i<%lO1X#_LeW&w!bO#oJ^#o#pL}#p#qJ^#q#rL}#r;'SJ^;'S;=`! r;=`<%lL}<%lOJ^{MUZ&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l<%lOL}{M|V&msOr4`rs5ds#O4`#O#P5y#P;'S4`;'S;=`6t<%lO4`{NfRO;'SL};'S;=`No;=`OL}{Nv[&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lL}<%lOL}{! oP;=`<%lL}#_! y[&rW&msOYL}YZ4`Z]L}]^4`^rL}rsMws#OL}#O#PNc#P;'SL};'S;=`! l;=`<%lJ^<%lOL}#_!!rP;=`<%lJ^#c!!zW&w!bO#oE^#o#p!#d#p#qE^#q#r!#d#r;'SE^;'S;=`!(q;=`<%l!#d<%lOE^!P!#m]&oS&rW&msOY!#dYZ8^Z]!#d]^8^^r!#drs!$fsw!#dwx!%Yx#O!#d#O#P!'Y#P;'S!#d;'S;=`!(k<%lO!#d!P!$mX&oS&msOr8^rs9rsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`^s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!>e_U!T&w!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!?ds#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!?k_U!T&w!bOY!=UYZ1XZ]!=U]^1X^r!=Urs!3`s#O!=U#O#P!@j#P#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!FQ<%lO!=U#o!@q[U!T&w!bOY!=UYZ1XZ]!=U]^1X^#o!=U#o#p!Ag#p#q!=U#q#r!Ag#r;'S!=U;'S;=`!Ec;=`<%l4`<%lO!=U!]!AnZU!T&rWOY!AgYZ4`Z]!Ag]^4`^r!Agrs!Bas#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!BfZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!CXs#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!C^ZU!TOY!AgYZ4`Z]!Ag]^4`^r!Agrs!4Ys#O!Ag#O#P!DP#P;'S!Ag;'S;=`!E]<%lO!Ag!]!DUWU!TOY!AgYZ4`Z]!Ag]^4`^;'S!Ag;'S;=`!Dn;=`<%l4`<%lO!Ag!]!DsW&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!Ag<%lO4`!]!E`P;=`<%l!Ag#o!EhW&rWOr4`rs4zs#O4`#O#P5y#P;'S4`;'S;=`6t;=`<%l!=U<%lO4`#o!FTP;=`<%l!=U#s!F_[U!T&w!bOY!+|YZ%TZ]!+|]^%T^#o!+|#o#p!GT#p#q!+|#q#r!GT#r;'S!+|;'S;=`!Mq;=`<%l8^<%lO!+|!a!G^]U!T&oS&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!H^]U!T&oSOY!GTYZ8^Z]!GT]^8^^r!GTrs!IVsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!I^]U!T&oSOY!GTYZ8^Z]!GT]^8^^r!GTrs!5wsw!GTwx!JVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!J^]U!T&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!KVx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!K^]U!T&rWOY!GTYZ8^Z]!GT]^8^^r!GTrs!HVsw!GTwx!Agx#O!GT#O#P!LV#P;'S!GT;'S;=`!Mk<%lO!GT!a!L[WU!TOY!GTYZ8^Z]!GT]^8^^;'S!GT;'S;=`!Lt;=`<%l8^<%lO!GT!a!L{Y&oS&rWOr8^rs9Qsw8^wx:dx#O8^#O#P;v#P;'S8^;'S;=`Q<%lO$TP;=`<%l$ei&w!b&oS&rW&l`&XsOr%Trs$@Ssw%Twx$C`x!Q%T!Q![$Q<%lO$Q<%lO$Q<%lO$Q<%lO$Q<%lO$JW[O]||-1}],tokenPrec:7500}),wQ=new th,Dg=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function rs(O){return(e,t,i)=>{if(i)return!1;let r=e.node.getChild("VariableName");return r&&t(r,O),!0}}const tk={FunctionDefinition:rs("function"),ClassDefinition:rs("class"),ForStatement(O,e,t){if(t){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name=="in")break}},ImportStatement(O,e){var t,i;let{node:r}=O,n=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let s=r.getChild("import");s;s=s.nextSibling)s.name=="VariableName"&&((i=s.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&e(s,n?"variable":"namespace")},AssignStatement(O,e){for(let t=O.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(O,e){for(let t=null,i=O.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(i,"variable"),t=i},CapturePattern:rs("variable"),AsPattern:rs("variable"),__proto__:null};function Lg(O,e){let t=wQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(ge.IncludeAnonymous).iterate(s=>{if(s.name){let o=tk[s.name];if(o&&o(s,n,r)||!r&&Dg.has(s.name))return!1;r=!1}else if(s.to-s.from>8192){for(let o of Lg(O,s.node))i.push(o);return!1}}),wQ.set(e,i),i}const TQ=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Mg=["String","FormatString","Comment","PropertyName"];function Ok(O){let e=de(O.state).resolveInner(O.pos,-1);if(Mg.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&TQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)Dg.has(r.name)&&(i=i.concat(Lg(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:TQ}}const ik=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),rk=[ve("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),ve("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),ve("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),ve("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),ve(`if \${}: + +`,{label:"if",detail:"block",type:"keyword"}),ve("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),ve("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),ve("import ${module}",{label:"import",detail:"statement",type:"keyword"}),ve("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],nk=mh(Mg,Yo(ik.concat(rk)));function ZQ(O,e){let t=O.baseIndentFor(e),i=O.lineAt(O.pos,-1),r=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&O.node.tot?null:t+O.unit}const xa=Ee.define({name:"python",parser:ek.configure({props:[gt.add({Body:O=>{var e;return(e=ZQ(O,O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except |finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":DO({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":DO({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":DO({closing:"]"}),"String FormatString":()=>null,Script:O=>{if(O.pos+/\s*/.exec(O.textAfter)[0].length>=O.node.to){let e=null;for(let t=O.node,i=t.to;t=t.lastChild,!(!t||t.to!=i);)t.type.name=="Body"&&(e=t);if(e){let t=ZQ(O,e);if(t!=null)return t}}return O.continue()}}),ot.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":$O,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function sk(){return new tt(xa,[xa.data.of({autocomplete:Ok}),xa.data.of({autocomplete:nk})])}const ok=99,vQ=1,ak=100,lk=101,WQ=2,Ng=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],ck=58,hk=40,Bg=95,fk=91,bs=45,uk=46,Qk=35,dk=37,$k=38,pk=92,mk=10;function hn(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function Fg(O){return O>=48&&O<=57}const gk=new $e((O,e)=>{for(let t=!1,i=0,r=0;;r++){let{next:n}=O;if(hn(n)||n==bs||n==Bg||t&&Fg(n))!t&&(n!=bs||r>0)&&(t=!0),i===r&&n==bs&&i++,O.advance();else if(n==pk&&O.peek(1)!=mk)O.advance(),O.next>-1&&O.advance(),t=!0;else{t&&O.acceptToken(n==hk?ak:i==2&&e.canShift(WQ)?WQ:lk);break}}}),Sk=new $e(O=>{if(Ng.includes(O.peek(-1))){let{next:e}=O;(hn(e)||e==Bg||e==Qk||e==uk||e==fk||e==ck&&hn(O.peek(1))||e==bs||e==$k)&&O.acceptToken(ok)}}),Pk=new $e(O=>{if(!Ng.includes(O.peek(-1))){let{next:e}=O;if(e==dk&&(O.advance(),O.acceptToken(vQ)),hn(e)){do O.advance();while(hn(O.next)||Fg(O.next));O.acceptToken(vQ)}}}),Xk=De({"AtKeyword import charset namespace keyframes media supports":u.definitionKeyword,"from to selector":u.keyword,NamespaceName:u.namespace,KeyframeName:u.labelName,KeyframeRangeName:u.operatorKeyword,TagName:u.tagName,ClassName:u.className,PseudoClassName:u.constant(u.className),IdName:u.labelName,"FeatureName PropertyName":u.propertyName,AttributeName:u.attributeName,NumberLiteral:u.number,KeywordQuery:u.keyword,UnaryQueryOp:u.operatorKeyword,"CallTag ValueName":u.atom,VariableName:u.variableName,Callee:u.operatorKeyword,Unit:u.unit,"UniversalSelector NestingSelector":u.definitionOperator,MatchOp:u.compareOperator,"ChildOp SiblingOp, LogicOp":u.logicOperator,BinOp:u.arithmeticOperator,Important:u.modifier,Comment:u.blockComment,ColorLiteral:u.color,"ParenthesizedContent StringLiteral":u.string,":":u.punctuation,"PseudoOp #":u.derefOperator,"; ,":u.separator,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace}),yk={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:138},xk={__proto__:null,"@import":118,"@media":142,"@charset":146,"@namespace":150,"@keyframes":156,"@supports":168},bk={__proto__:null,not:132,only:132},wk=Ae.deserialize({version:14,states:":^QYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO${QdO,59}O-kQ[O'#E^O-xQWO,5;_O-xQWO,5;_POOO'#EV'#EVP.TO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.zQXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/XQ`O1G/^O/rQXO1G/aO0YQXO1G/cO0pQXO1G/dO1WQWO,59|O1]Q[O'#DSO1dQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1kQpO,59]OOQS,59_,59_O${QdO,59aO1sQWO1G/mOOQS,59c,59cO1xQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2QQ[O,59jOOQS,59j,59jO2YQWO'#DjO2eQWO,5:VO2jQWO,5:]O&`Q[O,5:XO&`Q[O'#E_O2rQWO,5;`O2}QWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3`QWO1G0OO3eQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO3pQtO1G/iOOQO,5:x,5:xO4WQ[O,5:xOOQO-E8[-E8[O4eQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO4pQXO'#ErO4wQWO,59nO4|QtO'#EXO5tQdO'#EoO6OQWO,59ZO6TQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XO6]QWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6bQWO,5:yOOQO-E8]-E8]O6pQXO1G/xOOQS7+%j7+%jO6wQYO'#CsOOQO'#EQ'#EQO7SQ`O'#EPOOQO'#EP'#EPO7_QWO'#E`O7gQdO,5:jOOQS,5:j,5:jO7rQtO'#E]O${QdO'#E]O8sQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9WQpO<OAN>OO:xQdO,5:uOOQO-E8X-E8XOOQO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[Sk,Pk,gk,1,2,3,4,new nO("m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~",28,105)],topRules:{StyleSheet:[0,4],Styles:[1,86]},specialized:[{term:100,get:O=>yk[O]||-1},{term:58,get:O=>xk[O]||-1},{term:101,get:O=>bk[O]||-1}],tokenPrec:1200});let ba=null;function wa(){if(!ba&&typeof document=="object"&&document.body){let{style:O}=document.body,e=[],t=new Set;for(let i in O)i!="cssText"&&i!="cssFloat"&&typeof O[i]=="string"&&(/[A-Z]/.test(i)&&(i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(i)||(e.push(i),t.add(i)));ba=e.sort().map(i=>({type:"property",label:i}))}return ba||[]}const kQ=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(O=>({type:"class",label:O})),YQ=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(O=>({type:"keyword",label:O})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(O=>({type:"constant",label:O}))),Tk=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(O=>({type:"type",label:O})),YO=/^(\w[\w-]*|-\w[\w-]*|)$/,Zk=/^-(-[\w-]*)?$/;function vk(O,e){var t;if((O.name=="("||O.type.isError)&&(O=O.parent||O),O.name!="ArgList")return!1;let i=(t=O.parent)===null||t===void 0?void 0:t.firstChild;return(i==null?void 0:i.name)!="Callee"?!1:e.sliceString(i.from,i.to)=="var"}const qQ=new th,Wk=["Declaration"];function kk(O){for(let e=O;;){if(e.type.isTop)return e;if(!(e=e.parent))return O}}function Hg(O,e,t){if(e.to-e.from>4096){let i=qQ.get(e);if(i)return i;let r=[],n=new Set,s=e.cursor(ge.IncludeAnonymous);if(s.firstChild())do for(let o of Hg(O,s.node,t))n.has(o.label)||(n.add(o.label),r.push(o));while(s.nextSibling());return qQ.set(e,r),r}else{let i=[],r=new Set;return e.cursor().iterate(n=>{var s;if(t(n)&&n.matchContext(Wk)&&((s=n.node.nextSibling)===null||s===void 0?void 0:s.name)==":"){let o=O.sliceString(n.from,n.to);r.has(o)||(r.add(o),i.push({label:o,type:"variable"}))}}),i}}const Yk=O=>e=>{let{state:t,pos:i}=e,r=de(t).resolveInner(i,-1),n=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(n||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:wa(),validFor:YO};if(r.name=="ValueName")return{from:r.from,options:YQ,validFor:YO};if(r.name=="PseudoClassName")return{from:r.from,options:kQ,validFor:YO};if(O(r)||(e.explicit||n)&&vk(r,t.doc))return{from:O(r)||n?r.from:i,options:Hg(t.doc,kk(r),O),validFor:Zk};if(r.name=="TagName"){for(let{parent:a}=r;a;a=a.parent)if(a.name=="Block")return{from:r.from,options:wa(),validFor:YO};return{from:r.from,options:Tk,validFor:YO}}if(!e.explicit)return null;let s=r.resolve(i),o=s.childBefore(i);return o&&o.name==":"&&s.name=="PseudoClassSelector"?{from:i,options:kQ,validFor:YO}:o&&o.name==":"&&s.name=="Declaration"||s.name=="ArgList"?{from:i,options:YQ,validFor:YO}:s.name=="Block"||s.name=="Styles"?{from:i,options:wa(),validFor:YO}:null},qk=Yk(O=>O.name=="VariableName"),ro=Ee.define({name:"css",parser:wk.configure({props:[gt.add({Declaration:Ce()}),ot.add({"Block KeyframeList":$O})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function Kg(){return new tt(ro,ro.data.of({autocomplete:qk}))}const zk=36,zQ=1,Rk=2,$r=3,Ta=4,Vk=5,Uk=6,_k=7,jk=8,Gk=9,Ck=10,Ek=11,Ak=12,Ik=13,Dk=14,Lk=15,Mk=16,Nk=17,RQ=18,Bk=19,Jg=20,eS=21,VQ=22,Fk=23,Hk=24;function tc(O){return O>=65&&O<=90||O>=97&&O<=122||O>=48&&O<=57}function Kk(O){return O>=48&&O<=57||O>=97&&O<=102||O>=65&&O<=70}function oi(O,e,t){for(let i=!1;;){if(O.next<0)return;if(O.next==e&&!i){O.advance();return}i=t&&!i&&O.next==92,O.advance()}}function Jk(O){for(;;){if(O.next<0||O.peek(1)<0)return;if(O.next==36&&O.peek(1)==36){O.advance(2);return}O.advance()}}function eY(O,e){let t="[{<(".indexOf(String.fromCharCode(e)),i=t<0?e:"]}>)".charCodeAt(t);for(;;){if(O.next<0)return;if(O.next==i&&O.peek(1)==39){O.advance(2);return}O.advance()}}function tS(O,e){for(;!(O.next!=95&&!tc(O.next));)e!=null&&(e+=String.fromCharCode(O.next)),O.advance();return e}function tY(O){if(O.next==39||O.next==34||O.next==96){let e=O.next;O.advance(),oi(O,e,!1)}else tS(O)}function UQ(O,e){for(;O.next==48||O.next==49;)O.advance();e&&O.next==e&&O.advance()}function _Q(O,e){for(;;){if(O.next==46){if(e)break;e=!0}else if(O.next<48||O.next>57)break;O.advance()}if(O.next==69||O.next==101)for(O.advance(),(O.next==43||O.next==45)&&O.advance();O.next>=48&&O.next<=57;)O.advance()}function jQ(O){for(;!(O.next<0||O.next==10);)O.advance()}function ni(O,e){for(let t=0;t!=&|~^/",specialVar:"?",identifierQuotes:'"',words:OS(iY,OY)};function rY(O,e,t,i){let r={};for(let n in Oc)r[n]=(O.hasOwnProperty(n)?O:Oc)[n];return e&&(r.words=OS(e,t||"",i)),r}function iS(O){return new $e(e=>{var t;let{next:i}=e;if(e.advance(),ni(i,Za)){for(;ni(e.next,Za);)e.advance();e.acceptToken(zk)}else if(i==36&&e.next==36&&O.doubleDollarQuotedStrings)Jk(e),e.acceptToken($r);else if(i==39||i==34&&O.doubleQuotedStrings)oi(e,i,O.backslashEscapes),e.acceptToken($r);else if(i==35&&O.hashComments||i==47&&e.next==47&&O.slashComments)jQ(e),e.acceptToken(zQ);else if(i==45&&e.next==45&&(!O.spaceAfterDashes||e.peek(1)==32))jQ(e),e.acceptToken(zQ);else if(i==47&&e.next==42){e.advance();for(let r=1;;){let n=e.next;if(e.next<0)break;if(e.advance(),n==42&&e.next==47){if(r--,e.advance(),!r)break}else n==47&&e.next==42&&(r++,e.advance())}e.acceptToken(Rk)}else if((i==101||i==69)&&e.next==39)e.advance(),oi(e,39,!0);else if((i==110||i==78)&&e.next==39&&O.charSetCasts)e.advance(),oi(e,39,O.backslashEscapes),e.acceptToken($r);else if(i==95&&O.charSetCasts)for(let r=0;;r++){if(e.next==39&&r>1){e.advance(),oi(e,39,O.backslashEscapes),e.acceptToken($r);break}if(!tc(e.next))break;e.advance()}else if(O.plsqlQuotingMechanism&&(i==113||i==81)&&e.next==39&&e.peek(1)>0&&!ni(e.peek(1),Za)){let r=e.peek(1);e.advance(2),eY(e,r),e.acceptToken($r)}else if(i==40)e.acceptToken(_k);else if(i==41)e.acceptToken(jk);else if(i==123)e.acceptToken(Gk);else if(i==125)e.acceptToken(Ck);else if(i==91)e.acceptToken(Ek);else if(i==93)e.acceptToken(Ak);else if(i==59)e.acceptToken(Ik);else if(O.unquotedBitLiterals&&i==48&&e.next==98)e.advance(),UQ(e),e.acceptToken(VQ);else if((i==98||i==66)&&(e.next==39||e.next==34)){const r=e.next;e.advance(),O.treatBitsAsBytes?(oi(e,r,O.backslashEscapes),e.acceptToken(Fk)):(UQ(e,r),e.acceptToken(VQ))}else if(i==48&&(e.next==120||e.next==88)||(i==120||i==88)&&e.next==39){let r=e.next==39;for(e.advance();Kk(e.next);)e.advance();r&&e.next==39&&e.advance(),e.acceptToken(Ta)}else if(i==46&&e.next>=48&&e.next<=57)_Q(e,!0),e.acceptToken(Ta);else if(i==46)e.acceptToken(Dk);else if(i>=48&&i<=57)_Q(e,!1),e.acceptToken(Ta);else if(ni(i,O.operatorChars)){for(;ni(e.next,O.operatorChars);)e.advance();e.acceptToken(Lk)}else if(ni(i,O.specialVar))e.next==i&&e.advance(),tY(e),e.acceptToken(Nk);else if(ni(i,O.identifierQuotes))oi(e,i,!1),e.acceptToken(Bk);else if(i==58||i==44)e.acceptToken(Mk);else if(tc(i)){let r=tS(e,String.fromCharCode(i));e.acceptToken(e.next==46||e.peek(-r.length-1)==46?RQ:(t=O.words[r.toLowerCase()])!==null&&t!==void 0?t:RQ)}})}const rS=iS(Oc),nY=Ae.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,rS],topRules:{Script:[0,25]},tokenPrec:0});function ic(O){let e=O.cursor().moveTo(O.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function fn(O,e){let t=O.sliceString(e.from,e.to),i=/^([`'"])(.*)\1$/.exec(t);return i?i[2]:t}function no(O){return O&&(O.name=="Identifier"||O.name=="QuotedIdentifier")}function sY(O,e){if(e.name=="CompositeIdentifier"){let t=[];for(let i=e.firstChild;i;i=i.nextSibling)no(i)&&t.push(fn(O,i));return t}return[fn(O,e)]}function GQ(O,e){for(let t=[];;){if(!e||e.name!=".")return t;let i=ic(e);if(!no(i))return t;t.unshift(fn(O,i)),e=ic(i)}}function oY(O,e){let t=de(O).resolveInner(e,-1),i=lY(O.doc,t);return t.name=="Identifier"||t.name=="QuotedIdentifier"||t.name=="Keyword"?{from:t.from,quoted:t.name=="QuotedIdentifier"?O.doc.sliceString(t.from,t.from+1):null,parents:GQ(O.doc,ic(t)),aliases:i}:t.name=="."?{from:e,quoted:null,parents:GQ(O.doc,t),aliases:i}:{from:e,quoted:null,parents:[],empty:!0,aliases:i}}const aY=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function lY(O,e){let t;for(let r=e;!t;r=r.parent){if(!r)return null;r.name=="Statement"&&(t=r)}let i=null;for(let r=t.firstChild,n=!1,s=null;r;r=r.nextSibling){let o=r.name=="Keyword"?O.sliceString(r.from,r.to).toLowerCase():null,a=null;if(!n)n=o=="from";else if(o=="as"&&s&&no(r.nextSibling))a=fn(O,r.nextSibling);else{if(o&&aY.has(o))break;s&&no(r)&&(a=fn(O,r))}a&&(i||(i=Object.create(null)),i[a]=sY(O,s)),s=/Identifier$/.test(r.name)?r:null}return i}function cY(O,e){return O?e.map(t=>Object.assign(Object.assign({},t),{label:t.label[0]==O?t.label:O+t.label+O,apply:void 0})):e}const hY=/^\w*$/,fY=/^[`'"]?\w*[`'"]?$/;function CQ(O){return O.self&&typeof O.self.label=="string"}class Th{constructor(e){this.idQuote=e,this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null)),i=t[e];return i||(e&&!this.list.some(r=>r.label==e)&&this.list.push(EQ(e,"type",this.idQuote)),t[e]=new Th(this.idQuote))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let t=this.list.findIndex(i=>i.label==e.label);t>-1?this.list[t]=e:this.list.push(e)}addCompletions(e){for(let t of e)this.addCompletion(typeof t=="string"?EQ(t,"property",this.idQuote):t)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):CQ(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let t of Object.keys(e)){let i=e[t],r=null,n=t.replace(/\\?\./g,o=>o=="."?"\0":o).split("\0"),s=this;CQ(i)&&(r=i.self,i=i.children);for(let o=0;o{let{parents:h,from:f,quoted:Q,empty:d,aliases:$}=oY(c.state,c.pos);if(d&&!c.explicit)return null;$&&h.length==1&&(h=$[h[0]]||h);let p=a;for(let y of h){for(;!p.children||!p.children[y];)if(p==a)p=l;else if(p==l&&i)p=p.child(i);else return null;let w=p.maybeChild(y);if(!w)return null;p=w}let g=Q&&c.state.sliceDoc(c.pos,c.pos+1)==Q,P=p.list;return p==a&&$&&(P=P.concat(Object.keys($).map(y=>({label:y,type:"constant"})))),{from:f,to:g?c.pos+1:void 0,options:cY(Q,P),validFor:Q?fY:hY}}}function QY(O,e){let t=Object.keys(O).map(i=>({label:e?i.toUpperCase():i,type:O[i]==eS?"type":O[i]==Jg?"keyword":"variable",boost:-1}));return mh(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],Yo(t))}let dY=nY.configure({props:[gt.add({Statement:Ce()}),ot.add({Statement(O){return{from:O.firstChild.to,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:u.keyword,Type:u.typeName,Builtin:u.standard(u.name),Bits:u.number,Bytes:u.string,Bool:u.bool,Null:u.null,Number:u.number,String:u.string,Identifier:u.name,QuotedIdentifier:u.special(u.string),SpecialVar:u.special(u.name),LineComment:u.lineComment,BlockComment:u.blockComment,Operator:u.operator,"Semi Punctuation":u.punctuation,"( )":u.paren,"{ }":u.brace,"[ ]":u.squareBracket})]});class Zh{constructor(e,t,i){this.dialect=e,this.language=t,this.spec=i}get extension(){return this.language.extension}static define(e){let t=rY(e,e.keywords,e.types,e.builtin),i=Ee.define({name:"sql",parser:dY.configure({tokenizers:[{from:rS,to:iS(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new Zh(t,i,e)}}function $Y(O,e=!1){return QY(O.dialect.words,e)}function pY(O,e=!1){return O.language.data.of({autocomplete:$Y(O,e)})}function mY(O){return O.schema?uY(O.schema,O.tables,O.schemas,O.defaultTable,O.defaultSchema,O.dialect||vh):()=>null}function gY(O){return O.schema?(O.dialect||vh).language.data.of({autocomplete:mY(O)}):[]}function SY(O={}){let e=O.dialect||vh;return new tt(e.language,[gY(O),pY(e,!!O.upperCaseKeywords)])}const vh=Zh.define({}),PY=1,XY=2,yY=3,xY=4,bY=5,AQ=98,wY=101,TY=102,IQ=114,ZY=69,ns=48,DQ=46,vY=43,WY=45,LQ=35,MQ=34,kY=124,YY=60,qY=62;function rc(O){return O>=48&&O<=57}function ss(O){return rc(O)||O==95}const zY=new $e((O,e)=>{if(rc(O.next)){let t=!1;do O.advance();while(ss(O.next));if(O.next==DQ){if(t=!0,O.advance(),rc(O.next))do O.advance();while(ss(O.next));else if(O.next==DQ||O.next>127||/\w/.test(String.fromCharCode(O.next)))return}if(O.next==wY||O.next==ZY){if(t=!0,O.advance(),(O.next==vY||O.next==WY)&&O.advance(),!ss(O.next))return;do O.advance();while(ss(O.next))}if(O.next==TY){let i=O.peek(1);if(i==ns+3&&O.peek(2)==ns+2||i==ns+6&&O.peek(2)==ns+4)O.advance(3),t=!0;else return}t&&O.acceptToken(bY)}else if(O.next==AQ||O.next==IQ){if(O.next==AQ&&O.advance(),O.next!=IQ)return;O.advance();let t=0;for(;O.next==LQ;)t++,O.advance();if(O.next!=MQ)return;O.advance();e:for(;;){if(O.next<0)return;let i=O.next==MQ;if(O.advance(),i){for(let r=0;r{O.next==kY&&O.acceptToken(PY,1)}),VY=new $e(O=>{O.next==YY?O.acceptToken(XY,1):O.next==qY&&O.acceptToken(yY,1)}),UY=De({"const macro_rules struct union enum type fn impl trait let static":u.definitionKeyword,"mod use crate":u.moduleKeyword,"pub unsafe async mut extern default move":u.modifier,"for if else loop while match continue break return await":u.controlKeyword,"as in ref":u.operatorKeyword,"where _ crate super dyn":u.keyword,self:u.self,String:u.string,Char:u.character,RawString:u.special(u.string),Boolean:u.bool,Identifier:u.variableName,"CallExpression/Identifier":u.function(u.variableName),BoundIdentifier:u.definition(u.variableName),"FunctionItem/BoundIdentifier":u.function(u.definition(u.variableName)),LoopLabel:u.labelName,FieldIdentifier:u.propertyName,"CallExpression/FieldExpression/FieldIdentifier":u.function(u.propertyName),Lifetime:u.special(u.variableName),ScopeIdentifier:u.namespace,TypeIdentifier:u.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":u.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":u.macroName,'"!"':u.macroName,UpdateOp:u.updateOperator,LineComment:u.lineComment,BlockComment:u.blockComment,Integer:u.integer,Float:u.float,ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,"=":u.definitionOperator,".. ... => ->":u.punctuation,"( )":u.paren,"[ ]":u.squareBracket,"{ }":u.brace,". DerefOp":u.derefOperator,"&":u.operator,", ; ::":u.separator,"Attribute/...":u.meta}),_Y={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},jY=Ae.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[UY],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[RY,VY,zY,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>_Y[O]||-1}],tokenPrec:15596}),GY=Ee.define({name:"rust",parser:jY.configure({props:[gt.add({IfExpression:Ce({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":Ce()}),ot.add(O=>{if(/(Block|edTokens|List)$/.test(O.name))return $O;if(O.name=="BlockComment")return e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function CY(){return new tt(GY)}const nc=1,EY=2,AY=3,IY=4,DY=5,LY=35,MY=36,NY=37,BY=11,FY=13;function HY(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function KY(O){return O==9||O==10||O==13||O==32}let NQ=null,BQ=null,FQ=0;function sc(O,e){let t=O.pos+e;if(BQ==O&&FQ==t)return NQ;for(;KY(O.peek(e));)e++;let i="";for(;;){let r=O.peek(e);if(!HY(r))break;i+=String.fromCharCode(r),e++}return BQ=O,FQ=t,NQ=i||null}function HQ(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t{if(O.next==60){if(O.advance(),O.next==47){O.advance();let t=sc(O,0);if(!t)return O.acceptToken(DY);if(e.context&&t==e.context.name)return O.acceptToken(EY);for(let i=e.context;i;i=i.parent)if(i.name==t)return O.acceptToken(AY,-2);O.acceptToken(IY)}else if(O.next!=33&&O.next!=63)return O.acceptToken(nc)}},{contextual:!0});function Wh(O,e){return new $e(t=>{let i=0,r=e.charCodeAt(0);e:for(;!(t.next<0);t.advance(),i++)if(t.next==r){for(let n=1;n"),Oq=Wh(MY,"?>"),iq=Wh(NY,"]]>"),rq=De({Text:u.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,AttributeValue:u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta,Cdata:u.special(u.string)}),nq=Ae.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<d!d;'S%y;'S;=`&_<%lO%yX>iV{WOr%ysv%yw!}%y!}#O?O#O;'S%y;'S;=`&_<%lO%yX?VT{WxPOr%ysv%yw;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#W%y#W#X@Q#X;'S%y;'S;=`&_<%lO%yX@VV{WOr%ysv%yw#T%y#T#U@l#U;'S%y;'S;=`&_<%lO%yX@qV{WOr%ysv%yw#h%y#h#iAW#i;'S%y;'S;=`&_<%lO%yXA]V{WOr%ysv%yw#T%y#T#U>d#U;'S%y;'S;=`&_<%lO%yXAwV{WOr%ysv%yw#c%y#c#dB^#d;'S%y;'S;=`&_<%lO%yXBcV{WOr%ysv%yw#V%y#V#WBx#W;'S%y;'S;=`&_<%lO%yXB}V{WOr%ysv%yw#h%y#h#iCd#i;'S%y;'S;=`&_<%lO%yXCiV{WOr%ysv%yw#m%y#m#nDO#n;'S%y;'S;=`&_<%lO%yXDTV{WOr%ysv%yw#d%y#d#eDj#e;'S%y;'S;=`&_<%lO%yXDoV{WOr%ysv%yw#X%y#X#Y9i#Y;'S%y;'S;=`&_<%lO%yXE]T!PP{WOr%ysv%yw;'S%y;'S;=`&_<%lO%yZEuWaQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n_FhW[UVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZGXYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aGw!a;'S$n;'S;=`&e<%lO$nZHQW!OQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZHqYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_#P$n#P#QIa#Q;'S$n;'S;=`&e<%lO$nZIhYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aJW!a;'S$n;'S;=`&e<%lO$nZJaWwQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n",tokenizers:[eq,tq,Oq,iq,0,1,2,3],topRules:{Document:[0,6]},tokenPrec:0});function ws(O,e){let t=e&&e.getChild("TagName");return t?O.sliceString(t.from,t.to):""}function va(O,e){let t=e&&e.firstChild;return!t||t.name!="OpenTag"?"":ws(O,t)}function sq(O,e,t){let i=e&&e.getChildren("Attribute").find(n=>n.from<=t&&n.to>=t),r=i&&i.getChild("AttributeName");return r?O.sliceString(r.from,r.to):""}function Wa(O){for(let e=O&&O.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function oq(O,e){var t;let i=de(O).resolveInner(e,-1),r=null;for(let n=i;!r&&n.parent;n=n.parent)(n.name=="OpenTag"||n.name=="CloseTag"||n.name=="SelfClosingTag"||n.name=="MismatchedCloseTag")&&(r=n);if(r&&(r.to>e||r.lastChild.type.isError)){let n=r.parent;if(i.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:i.from,context:n}:{type:"openTag",from:i.from,context:Wa(n)};if(i.name=="AttributeName")return{type:"attrName",from:i.from,context:r};if(i.name=="AttributeValue")return{type:"attrValue",from:i.from,context:r};let s=i==r||i.name=="Attribute"?i.childBefore(e):i;return(s==null?void 0:s.name)=="StartTag"?{type:"openTag",from:e,context:Wa(n)}:(s==null?void 0:s.name)=="StartCloseTag"&&s.to<=e?{type:"closeTag",from:e,context:n}:(s==null?void 0:s.name)=="Is"?{type:"attrValue",from:e,context:r}:s?{type:"attrName",from:e,context:r}:null}else if(i.name=="StartCloseTag")return{type:"closeTag",from:e,context:i.parent};for(;i.parent&&i.to==e&&!(!((t=i.lastChild)===null||t===void 0)&&t.type.isError);)i=i.parent;return i.name=="Element"||i.name=="Text"||i.name=="Document"?{type:"tag",from:e,context:i.name=="Element"?i:Wa(i)}:null}let aq=class{constructor(e,t,i){this.attrs=t,this.attrValues=i,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(r=>({label:r,type:"text"})):[]}};const ka=/^[:\-\.\w\u00b7-\uffff]*$/;function KQ(O){return Object.assign(Object.assign({type:"property"},O.completion||{}),{label:O.name})}function JQ(O){return typeof O=="string"?{label:`"${O}"`,type:"constant"}:/^"/.test(O.label)?O:Object.assign(Object.assign({},O),{label:`"${O.label}"`})}function lq(O,e){let t=[],i=[],r=Object.create(null);for(let a of e){let l=KQ(a);t.push(l),a.global&&i.push(l),a.values&&(r[a.name]=a.values.map(JQ))}let n=[],s=[],o=Object.create(null);for(let a of O){let l=i,c=r;a.attributes&&(l=l.concat(a.attributes.map(f=>typeof f=="string"?t.find(Q=>Q.label==f)||{label:f,type:"property"}:(f.values&&(c==r&&(c=Object.create(c)),c[f.name]=f.values.map(JQ)),KQ(f)))));let h=new aq(a,l,c);o[h.name]=h,n.push(h),a.top&&s.push(h)}s.length||(s=n);for(let a=0;a{var l;let{doc:c}=a.state,h=oq(a.state,a.pos);if(!h||h.type=="tag"&&!a.explicit)return null;let{type:f,from:Q,context:d}=h;if(f=="openTag"){let $=s,p=va(c,d);if(p){let g=o[p];$=(g==null?void 0:g.children)||n}return{from:Q,options:$.map(g=>g.completion),validFor:ka}}else if(f=="closeTag"){let $=va(c,d);return $?{from:Q,to:a.pos+(c.sliceString(a.pos,a.pos+1)==">"?1:0),options:[((l=o[$])===null||l===void 0?void 0:l.closeNameCompletion)||{label:$+">",type:"type"}],validFor:ka}:null}else if(f=="attrName"){let $=o[ws(c,d)];return{from:Q,options:($==null?void 0:$.attrs)||i,validFor:ka}}else if(f=="attrValue"){let $=sq(c,d,Q);if(!$)return null;let p=o[ws(c,d)],g=((p==null?void 0:p.attrValues)||r)[$];return!g||!g.length?null:{from:Q,to:a.pos+(c.sliceString(a.pos,a.pos+1)=='"'?1:0),options:g,validFor:/^"[^"]*"?$/}}else if(f=="tag"){let $=va(c,d),p=o[$],g=[],P=d&&d.lastChild;$&&(!P||P.name!="CloseTag"||ws(c,P)!=$)&&g.push(p?p.closeCompletion:{label:"",type:"type",boost:2});let y=g.concat(((p==null?void 0:p.children)||(d?n:s)).map(w=>w.openCompletion));if(d&&(p!=null&&p.text.length)){let w=d.firstChild;w.to>a.pos-20&&!/\S/.test(a.state.sliceDoc(w.to,a.pos))&&(y=y.concat(p.text))}return{from:Q,options:y,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const oc=Ee.define({name:"xml",parser:nq.configure({props:[gt.add({Element(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ot.add({Element(O){let e=O.firstChild,t=O.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:O.to}}}),lh.add({"OpenTag CloseTag":O=>O.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function cq(O={}){let e=[oc.data.of({autocomplete:lq(O.elements||[],O.attributes||[])})];return O.autoCloseTags!==!1&&e.push(hq),new tt(oc,e)}function ed(O,e,t=O.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?O.sliceString(r.from,Math.min(r.to,t)):""}const hq=U.inputHandler.of((O,e,t,i,r)=>{if(O.composing||O.state.readOnly||e!=t||i!=">"&&i!="/"||!oc.isActiveAt(O.state,e,-1))return!1;let n=r(),{state:s}=n,o=s.changeByRange(a=>{var l,c,h;let{head:f}=a,Q=s.doc.sliceString(f-1,f)==i,d=de(s).resolveInner(f,-1),$;if(Q&&i==">"&&d.name=="EndTag"){let p=d.parent;if(((c=(l=p.parent)===null||l===void 0?void 0:l.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&($=ed(s.doc,p.parent,f))){let g=f+(s.doc.sliceString(f,f+1)===">"?1:0),P=``;return{range:a,changes:{from:f,to:g,insert:P}}}}else if(Q&&i=="/"&&d.name=="StartCloseTag"){let p=d.parent;if(d.from==f-2&&((h=p.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&($=ed(s.doc,p,f))){let g=f+(s.doc.sliceString(f,f+1)===">"?1:0),P=`${$}>`;return{range:X.cursor(f+P.length,-1),changes:{from:f,to:g,insert:P}}}}return{range:a}});return o.changes.empty?!1:(O.dispatch([n,s.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});class so{static create(e,t,i,r,n){let s=r+(r<<8)+e+(t<<4)|0;return new so(e,t,i,s,n,[],[])}constructor(e,t,i,r,n,s,o){this.type=e,this.value=t,this.from=i,this.hash=r,this.end=n,this.children=s,this.positions=o,this.hashProp=[[M.contextHash,r]]}addChild(e,t){e.prop(M.contextHash)!=this.hash&&(e=new Qe(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let i=this.children.length-1;return i>=0&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from)),new Qe(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(r,n,s)=>new Qe(je.none,r,n,s,this.hashProp)})}}var k;(function(O){O[O.Document=1]="Document",O[O.CodeBlock=2]="CodeBlock",O[O.FencedCode=3]="FencedCode",O[O.Blockquote=4]="Blockquote",O[O.HorizontalRule=5]="HorizontalRule",O[O.BulletList=6]="BulletList",O[O.OrderedList=7]="OrderedList",O[O.ListItem=8]="ListItem",O[O.ATXHeading1=9]="ATXHeading1",O[O.ATXHeading2=10]="ATXHeading2",O[O.ATXHeading3=11]="ATXHeading3",O[O.ATXHeading4=12]="ATXHeading4",O[O.ATXHeading5=13]="ATXHeading5",O[O.ATXHeading6=14]="ATXHeading6",O[O.SetextHeading1=15]="SetextHeading1",O[O.SetextHeading2=16]="SetextHeading2",O[O.HTMLBlock=17]="HTMLBlock",O[O.LinkReference=18]="LinkReference",O[O.Paragraph=19]="Paragraph",O[O.CommentBlock=20]="CommentBlock",O[O.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",O[O.Escape=22]="Escape",O[O.Entity=23]="Entity",O[O.HardBreak=24]="HardBreak",O[O.Emphasis=25]="Emphasis",O[O.StrongEmphasis=26]="StrongEmphasis",O[O.Link=27]="Link",O[O.Image=28]="Image",O[O.InlineCode=29]="InlineCode",O[O.HTMLTag=30]="HTMLTag",O[O.Comment=31]="Comment",O[O.ProcessingInstruction=32]="ProcessingInstruction",O[O.Autolink=33]="Autolink",O[O.HeaderMark=34]="HeaderMark",O[O.QuoteMark=35]="QuoteMark",O[O.ListMark=36]="ListMark",O[O.LinkMark=37]="LinkMark",O[O.EmphasisMark=38]="EmphasisMark",O[O.CodeMark=39]="CodeMark",O[O.CodeText=40]="CodeText",O[O.CodeInfo=41]="CodeInfo",O[O.LinkTitle=42]="LinkTitle",O[O.LinkLabel=43]="LinkLabel",O[O.URL=44]="URL"})(k||(k={}));class fq{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class uq{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return _r(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,i=0){for(let r=t;r=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let i=(O.type==k.OrderedList?qh:Yh)(t,e,!1);return i>0&&(O.type!=k.BulletList||kh(t,e,!1)<0)&&t.text.charCodeAt(t.pos+i-1)==O.value}const nS={[k.Blockquote](O,e,t){return t.next!=62?!1:(t.markers.push(oe(k.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(_t(t.text.charCodeAt(t.pos+1))?2:1)),O.end=e.lineStart+t.text.length,!0)},[k.ListItem](O,e,t){return t.indent-1?!1:(t.moveBaseColumn(t.baseIndent+O.value),!0)},[k.OrderedList]:td,[k.BulletList]:td,[k.Document](){return!0}};function _t(O){return O==32||O==9||O==10||O==13}function _r(O,e=0){for(;et&&_t(O.charCodeAt(e-1));)e--;return e}function sS(O){if(O.next!=96&&O.next!=126)return-1;let e=O.pos+1;for(;e-1&&O.depth==e.stack.length||i<3?-1:1}function aS(O,e){for(let t=O.stack.length-1;t>=0;t--)if(O.stack[t].type==e)return!0;return!1}function Yh(O,e,t){return(O.next==45||O.next==43||O.next==42)&&(O.pos==O.text.length-1||_t(O.text.charCodeAt(O.pos+1)))&&(!t||aS(e,k.BulletList)||O.skipSpace(O.pos+2)=48&&r<=57;){i++;if(i==O.text.length)return-1;r=O.text.charCodeAt(i)}return i==O.pos||i>O.pos+9||r!=46&&r!=41||iO.pos+1||O.next!=49)?-1:i+1-O.pos}function lS(O){if(O.next!=35)return-1;let e=O.pos+1;for(;e6?-1:t}function cS(O){if(O.next!=45&&O.next!=61||O.indent>=O.baseIndent+4)return-1;let e=O.pos+1;for(;e/,fS=/\?>/,lc=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(i);if(n)return O.append(oe(k.Comment,t,t+1+n[0].length));let s=/^\?[^]*?\?>/.exec(i);if(s)return O.append(oe(k.ProcessingInstruction,t,t+1+s[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(i);return o?O.append(oe(k.HTMLTag,t,t+1+o[0].length)):-1},Emphasis(O,e,t){if(e!=95&&e!=42)return-1;let i=t+1;for(;O.char(i)==e;)i++;let r=O.slice(t-1,t),n=O.slice(i,i+1),s=Qn.test(r),o=Qn.test(n),a=/\s|^$/.test(r),l=/\s|^$/.test(n),c=!l&&(!o||a||s),h=!a&&(!s||l||o),f=c&&(e==42||!h||s),Q=h&&(e==42||!c||o);return O.append(new At(e==95?mS:gS,t,i,(f?1:0)|(Q?2:0)))},HardBreak(O,e,t){if(e==92&&O.char(t+1)==10)return O.append(oe(k.HardBreak,t,t+2));if(e==32){let i=t+1;for(;O.char(i)==32;)i++;if(O.char(i)==10&&i>=t+2)return O.append(oe(k.HardBreak,t,i+1))}return-1},Link(O,e,t){return e==91?O.append(new At(mr,t,t+1,1)):-1},Image(O,e,t){return e==33&&O.char(t+1)==91?O.append(new At(rd,t,t+2,1)):-1},LinkEnd(O,e,t){if(e!=93)return-1;for(let i=O.parts.length-1;i>=0;i--){let r=O.parts[i];if(r instanceof At&&(r.type==mr||r.type==rd)){if(!r.side||O.skipSpace(r.to)==t&&!/[(\[]/.test(O.slice(t+1,t+2)))return O.parts[i]=null,-1;let n=O.takeContent(i),s=O.parts[i]=Sq(O,n,r.type==mr?k.Link:k.Image,r.from,t+1);if(r.type==mr)for(let o=0;oe?oe(k.URL,e+t,n+t):n==O.length?null:!1}}function PS(O,e,t){let i=O.charCodeAt(e);if(i!=39&&i!=34&&i!=40)return!1;let r=i==40?41:i;for(let n=e+1,s=!1;n=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,r,n){return this.append(new At(e,t,i,(r?1:0)|(n?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let i=e;i=e;a--){let $=this.parts[a];if($ instanceof At&&$.side&1&&$.type==r.type&&!(n&&(r.side&1||$.side&2)&&($.to-$.from+s)%3==0&&(($.to-$.from)%3||s%3))){o=$;break}}if(!o)continue;let l=r.type.resolve,c=[],h=o.from,f=r.to;if(n){let $=Math.min(2,o.to-o.from,s);h=o.to-$,f=r.from+$,l=$==1?"Emphasis":"StrongEmphasis"}o.type.mark&&c.push(this.elt(o.type.mark,h,o.to));for(let $=a+1;$=0;t--){let i=this.parts[t];if(i instanceof At&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return _r(this.text,e-this.offset)+this.offset}elt(e,t,i,r){return typeof e=="string"?oe(this.parser.getNodeType(e),t,i,r):new pS(e,t)}}function hc(O,e){if(!e.length)return O;if(!O.length)return e;let t=O.slice(),i=0;for(let r of e){for(;i(e?e-1:0))return!1;if(this.fragmentEnd<0){let n=this.fragment.to;for(;n>0&&this.input.read(n-1,n)!=` +`;)n--;this.fragmentEnd=n?n-1:0}let i=this.cursor;i||(i=this.cursor=this.fragment.tree.cursor(),i.firstChild());let r=e+this.fragment.offset;for(;i.to<=r;)if(!i.parent())return!1;for(;;){if(i.from>=r)return this.fragment.from<=t;if(!i.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(M.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),n=e.absoluteLineStart,s=n,o=e.block.children.length,a=s,l=o;for(;;){if(t.to-i>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let c=yS(t.from-i,e.ranges);if(t.to-i<=e.ranges[e.rangeI].to)e.addNode(t.tree,c);else{let h=new Qe(e.parser.nodeSet.types[k.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,c)}if(t.type.is("Block")&&(Xq.indexOf(t.type.id)<0?(s=t.to-i,o=e.block.children.length):(s=a,o=l,a=t.to-i,l=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>o;)e.block.children.pop(),e.block.positions.pop();return s-n}}function yS(O,e){let t=O;for(let i=1;ios[O]),Object.keys(os).map(O=>$q[O]),Object.keys(os),pq,nS,Object.keys(qa).map(O=>qa[O]),Object.keys(qa),[]);function wq(O,e,t){let i=[];for(let r=O.firstChild,n=e;;r=r.nextSibling){let s=r?r.from:t;if(s>n&&i.push({from:n,to:s}),!r)break;n=r.to}return i}function Tq(O){let{codeParser:e,htmlParser:t}=O;return{wrap:vO((r,n)=>{let s=r.type.id;if(e&&(s==k.CodeBlock||s==k.FencedCode)){let o="";if(s==k.FencedCode){let l=r.node.getChild(k.CodeInfo);l&&(o=n.read(l.from,l.to))}let a=e(o);if(a)return{parser:a,overlay:l=>l.type.id==k.CodeText}}else if(t&&(s==k.HTMLBlock||s==k.HTMLTag))return{parser:t,overlay:wq(r.node,r.from,r.to)};return null})}}const Zq={resolve:"Strikethrough",mark:"StrikethroughMark"},vq={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":u.strikethrough}},{name:"StrikethroughMark",style:u.processingInstruction}],parseInline:[{name:"Strikethrough",parse(O,e,t){if(e!=126||O.char(t+1)!=126||O.char(t+2)==126)return-1;let i=O.slice(t-1,t),r=O.slice(t+2,t+3),n=/\s|^$/.test(i),s=/\s|^$/.test(r),o=Qn.test(i),a=Qn.test(r);return O.addDelimiter(Zq,t,t+2,!s&&(!a||n||o),!n&&(!o||s||a))},after:"Emphasis"}]};function jr(O,e,t=0,i,r=0){let n=0,s=!0,o=-1,a=-1,l=!1,c=()=>{i.push(O.elt("TableCell",r+o,r+a,O.parser.parseInline(e.slice(o,a),r+o)))};for(let h=t;h-1)&&n++,s=!1,i&&(o>-1&&c(),i.push(O.elt("TableDelimiter",h+r,h+r+1))),o=a=-1):(l||f!=32&&f!=9)&&(o<0&&(o=h),a=h+1),l=!l&&f==92}return o>-1&&(n++,i&&c()),n}function sd(O,e){for(let t=e;tr instanceof od)||!sd(e.text,e.basePos))return!1;let i=O.scanLine(O.absoluteLineEnd+1).text;return xS.test(i)&&jr(O,e.text,e.basePos)==jr(O,i,e.basePos)},before:"SetextHeading"}]};class kq{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const Yq={defineNodes:[{name:"Task",block:!0,style:u.list},{name:"TaskMarker",style:u.atom}],parseBlock:[{name:"TaskList",leaf(O,e){return/^\[[ xX]\][ \t]/.test(e.content)&&O.parentType().name=="ListItem"?new kq:null},after:"SetextHeading"}]},ad=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,ld=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,qq=/[\w-]+\.[\w-]+($|\/)/,cd=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,hd=/\/[a-zA-Z\d@.]+/gy;function fd(O,e,t,i){let r=0;for(let n=e;n-1)return-1;let i=e+t[0].length;for(;;){let r=O[i-1],n;if(/[?!.,:*_~]/.test(r)||r==")"&&fd(O,e,i,")")>fd(O,e,i,"("))i--;else if(r==";"&&(n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(O.slice(e,i))))i=e+n.index;else break}return i}function ud(O,e){cd.lastIndex=e;let t=cd.exec(O);if(!t)return-1;let i=t[0][t[0].length-1];return i=="_"||i=="-"?-1:e+t[0].length-(i=="."?1:0)}const Rq={parseInline:[{name:"Autolink",parse(O,e,t){let i=t-O.offset;ad.lastIndex=i;let r=ad.exec(O.text),n=-1;return!r||(r[1]||r[2]?n=zq(O.text,i+r[0].length):r[3]?n=ud(O.text,i):(n=ud(O.text,i+r[0].length),n>-1&&r[0]=="xmpp:"&&(hd.lastIndex=n,r=hd.exec(O.text),r&&(n=r.index+r[0].length))),n<0)?-1:(O.addElement(O.elt("URL",t,n+O.offset)),n+O.offset)}}]},Vq=[Wq,Yq,vq,Rq];function bS(O,e,t){return(i,r,n)=>{if(r!=O||i.char(n+1)==O)return-1;let s=[i.elt(t,n,n+1)];for(let o=n+1;o=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function qS(O){return O==9||O==10||O==13||O==32}let pd=null,md=null,gd=0;function uc(O,e){let t=O.pos+e;if(gd==t&&md==O)return pd;let i=O.peek(e);for(;qS(i);)i=O.peek(++e);let r="";for(;az(i);)r+=String.fromCharCode(i),i=O.peek(++e);return md=O,gd=t,pd=r?r.toLowerCase():i==lz||i==cz?void 0:null}const zS=60,ao=62,zh=47,lz=63,cz=33,hz=45;function Sd(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t-1?new Sd(uc(i,1)||"",O):O},reduce(O,e){return e==WS&&O?O.parent:O},reuse(O,e,t,i){let r=e.type.id;return r==oo||r==Oz?new Sd(uc(i,1)||"",O):O},hash(O){return O?O.hash:0},strict:!1}),Qz=new $e((O,e)=>{if(O.next!=zS){O.next<0&&e.context&&O.acceptToken(za);return}O.advance();let t=O.next==zh;t&&O.advance();let i=uc(O,0);if(i===void 0)return;if(!i)return O.acceptToken(t?Fq:oo);let r=e.context?e.context.name:null;if(t){if(i==r)return O.acceptToken(Mq);if(r&&oz[r])return O.acceptToken(za,-2);if(e.dialectEnabled(rz))return O.acceptToken(Nq);for(let n=e.context;n;n=n.parent)if(n.name==i)return;O.acceptToken(Bq)}else{if(i=="script")return O.acceptToken(wS);if(i=="style")return O.acceptToken(TS);if(i=="textarea")return O.acceptToken(ZS);if(sz.hasOwnProperty(i))return O.acceptToken(vS);r&&$d[r]&&$d[r][i]?O.acceptToken(za,-1):O.acceptToken(oo)}},{contextual:!0}),dz=new $e(O=>{for(let e=0,t=0;;t++){if(O.next<0){t&&O.acceptToken(dd);break}if(O.next==hz)e++;else if(O.next==ao&&e>=2){t>=3&&O.acceptToken(dd,-2);break}else e=0;O.advance()}});function $z(O){for(;O;O=O.parent)if(O.name=="svg"||O.name=="math")return!0;return!1}const pz=new $e((O,e)=>{if(O.next==zh&&O.peek(1)==ao){let t=e.dialectEnabled(nz)||$z(e.context);O.acceptToken(t?Lq:Qd,2)}else O.next==ao&&O.acceptToken(Qd,1)});function Rh(O,e,t){let i=2+O.length;return new $e(r=>{for(let n=0,s=0,o=0;;o++){if(r.next<0){o&&r.acceptToken(e);break}if(n==0&&r.next==zS||n==1&&r.next==zh||n>=2&&ns?r.acceptToken(e,-s):r.acceptToken(t,-(s-2));break}else if((r.next==10||r.next==13)&&o){r.acceptToken(e,1);break}else n=s=0;r.advance()}})}const mz=Rh("script",Gq,Cq),gz=Rh("style",Eq,Aq),Sz=Rh("textarea",Iq,Dq),Pz=De({"Text RawText":u.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":u.angleBracket,TagName:u.tagName,"MismatchedCloseTag/TagName":[u.tagName,u.invalid],AttributeName:u.attributeName,"AttributeValue UnquotedAttributeValue":u.attributeValue,Is:u.definitionOperator,"EntityReference CharacterReference":u.character,Comment:u.blockComment,ProcessingInst:u.processingInstruction,DoctypeDecl:u.documentMeta}),Xz=Ae.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%ZQ&rO,59fO%fQ&rO,59iO%qQ&rO,59lO%|Q&rO,59nOOOa'#D^'#D^O&XOaO'#CxO&dOaO,59[OOOb'#D_'#D_O&lObO'#C{O&wObO,59[OOOd'#D`'#D`O'POdO'#DOO'[OdO,59[OOO`'#Da'#DaO'dO!rO,59[O'kQ#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'pO$fO,59oOOO`,59o,59oO'xQ#|O,59qO'}Q#|O,59rOOO`-E7W-E7WO(SQ&rO'#CsOOQW'#DZ'#DZO(bQ&rO1G.wOOOa1G.w1G.wOOO`1G/Y1G/YO(mQ&rO1G/QOOOb1G/Q1G/QO(xQ&rO1G/TOOOd1G/T1G/TO)TQ&rO1G/WOOO`1G/W1G/WO)`Q&rO1G/YOOOa-E7[-E7[O)kQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)pQ#tO'#C|OOOd-E7^-E7^O)uQ#tO'#DPOOO`-E7_-E7_O)zQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O*PQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOO`7+$t7+$tOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rO*[Q#|O,59eO*aQ#|O,59hO*fQ#|O,59kOOO`1G/X1G/XO*kO7[O'#CvO*|OMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O+_O7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+pOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:",]~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OT}OhyO~OS!POT}OhyO~OS!ROT}OhyO~OS!TOT}OhyO~OS}OT}OhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXTgXhgX~OS!fOT!gOhyO~OS!hOT!gOhyO~OS!iOT!gOhyO~OS!jOT!gOhyO~OS!gOT!gOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:uz,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"],["isolate",-11,21,29,30,32,33,35,36,37,38,41,42,"ltr",-3,26,27,39,""]],propSources:[Pz],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let l=o.type.id;if(l==Jq)return Ra(o,a,t);if(l==ez)return Ra(o,a,i);if(l==tz)return Ra(o,a,r);if(l==WS&&n.length){let c=o.node,h=c.firstChild,f=h&&Pd(h,a),Q;if(f){for(let d of n)if(d.tag==f&&(!d.attrs||d.attrs(Q||(Q=RS(c,a))))){let $=c.lastChild,p=$.type.id==iz?$.from:c.to;if(p>h.to)return{parser:d.parser,overlay:[{from:h.to,to:p}]}}}}if(s&&l==kS){let c=o.node,h;if(h=c.firstChild){let f=s[a.read(h.from,h.to)];if(f)for(let Q of f){if(Q.tagName&&Q.tagName!=Pd(c.parent,a))continue;let d=c.lastChild;if(d.type.id==fc){let $=d.from+1,p=d.lastChild,g=d.to-(p&&p.isError?0:1);if(g>$)return{parser:Q.parser,overlay:[{from:$,to:g}]}}else if(d.type.id==YS)return{parser:Q.parser,overlay:[{from:d.from,to:d.to}]}}}}return null})}const gr=["_blank","_self","_top","_parent"],Va=["ascii","utf-8","utf-16","latin1","latin1"],Ua=["get","post","put","delete"],_a=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],yt=["true","false"],A={},yz={a:{attrs:{href:null,ping:null,type:null,media:null,target:gr,hreflang:null}},abbr:A,address:A,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:A,aside:A,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:A,base:{attrs:{href:null,target:gr}},bdi:A,bdo:A,blockquote:{attrs:{cite:null}},body:A,br:A,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:_a,formmethod:Ua,formnovalidate:["novalidate"],formtarget:gr,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:A,center:A,cite:A,code:A,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:A,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:A,div:A,dl:A,dt:A,em:A,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:A,figure:A,footer:A,form:{attrs:{action:null,name:null,"accept-charset":Va,autocomplete:["on","off"],enctype:_a,method:Ua,novalidate:["novalidate"],target:gr}},h1:A,h2:A,h3:A,h4:A,h5:A,h6:A,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:A,hgroup:A,hr:A,html:{attrs:{manifest:null}},i:A,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:_a,formmethod:Ua,formnovalidate:["novalidate"],formtarget:gr,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:A,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:A,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:A,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Va,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:A,noscript:A,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:A,param:{attrs:{name:null,value:null}},pre:A,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:A,rt:A,ruby:A,samp:A,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Va}},section:A,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:A,source:{attrs:{src:null,type:null,media:null}},span:A,strong:A,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:A,summary:A,sup:A,table:A,tbody:A,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:A,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:A,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:A,time:{attrs:{datetime:null}},title:A,tr:A,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:A,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:A},US={accesskey:null,class:null,contenteditable:yt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:yt,autocorrect:yt,autocapitalize:yt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":yt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":yt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":yt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":yt,"aria-hidden":yt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":yt,"aria-multiselectable":yt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":yt,"aria-relevant":null,"aria-required":yt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},_S="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(O=>"on"+O);for(let O of _S)US[O]=null;class dn{constructor(e,t){this.tags=Object.assign(Object.assign({},yz),e),this.globalAttrs=Object.assign(Object.assign({},US),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}dn.default=new dn;function Ji(O,e,t=O.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?O.sliceString(r.from,Math.min(r.to,t)):""}function er(O,e=!1){for(;O;O=O.parent)if(O.name=="Element")if(e)e=!1;else return O;return null}function jS(O,e,t){let i=t.tags[Ji(O,er(e))];return(i==null?void 0:i.children)||t.allTags}function Vh(O,e){let t=[];for(let i=er(e);i&&!i.type.isTop;i=er(i.parent)){let r=Ji(O,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}const GS=/^[:\-\.\w\u00b7-\uffff]*$/;function Xd(O,e,t,i,r){let n=/\s*>/.test(O.sliceDoc(r,r+5))?"":">",s=er(t,!0);return{from:i,to:r,options:jS(O.doc,s,e).map(o=>({label:o,type:"type"})).concat(Vh(O.doc,t).map((o,a)=>({label:"/"+o,apply:"/"+o+n,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function yd(O,e,t,i){let r=/\s*>/.test(O.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:Vh(O.doc,e).map((n,s)=>({label:n,apply:n+r,type:"type",boost:99-s})),validFor:GS}}function xz(O,e,t,i){let r=[],n=0;for(let s of jS(O.doc,t,e))r.push({label:"<"+s,type:"type"});for(let s of Vh(O.doc,t))r.push({label:"",type:"type",boost:99-n++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function bz(O,e,t,i,r){let n=er(t),s=n?e.tags[Ji(O.doc,n)]:null,o=s&&s.attrs?Object.keys(s.attrs):[],a=s&&s.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(l=>({label:l,type:"property"})),validFor:GS}}function wz(O,e,t,i,r){var n;let s=(n=t.parent)===null||n===void 0?void 0:n.getChild("AttributeName"),o=[],a;if(s){let l=O.sliceDoc(s.from,s.to),c=e.globalAttrs[l];if(!c){let h=er(t),f=h?e.tags[Ji(O.doc,h)]:null;c=(f==null?void 0:f.attrs)&&f.attrs[l]}if(c){let h=O.sliceDoc(i,r).toLowerCase(),f='"',Q='"';/^['"]/.test(h)?(a=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",Q=O.sliceDoc(r,r+1)==h[0]?"":h[0],h=h.slice(1),i++):a=/^[^\s<>='"]*$/;for(let d of c)o.push({label:d,apply:f+d+Q,type:"constant"})}}return{from:i,to:r,options:o,validFor:a}}function CS(O,e){let{state:t,pos:i}=e,r=de(t).resolveInner(i,-1),n=r.resolve(i);for(let s=i,o;n==r&&(o=r.childBefore(s));){let a=o.lastChild;if(!a||!a.type.isError||a.fromCS(i,r)}const vz=vt.parser.configure({top:"SingleExpression"}),ES=[{tag:"script",attrs:O=>O.type=="text/typescript"||O.lang=="ts",parser:Rg.parser},{tag:"script",attrs:O=>O.type=="text/babel"||O.type=="text/jsx",parser:Vg.parser},{tag:"script",attrs:O=>O.type=="text/typescript-jsx",parser:Ug.parser},{tag:"script",attrs(O){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(O.type)},parser:vz},{tag:"script",attrs(O){return!O.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(O.type)},parser:vt.parser},{tag:"style",attrs(O){return(!O.lang||O.lang=="css")&&(!O.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(O.type))},parser:ro.parser}],AS=[{name:"style",parser:ro.parser.configure({top:"Styles"})}].concat(_S.map(O=>({name:O,parser:vt.parser}))),IS=Ee.define({name:"html",parser:Xz.configure({props:[gt.add({Element(O){let e=/^(\s*)(<\/)?/.exec(O.textAfter);return O.node.to<=O.pos+e[0].length?O.continue():O.lineIndent(O.node.from)+(e[2]?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit},Document(O){if(O.pos+/\s*/.exec(O.textAfter)[0].lengthO.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),Ts=IS.configure({wrap:VS(ES,AS)});function Tn(O={}){let e="",t;O.matchClosingTags===!1&&(e="noMatch"),O.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(O.nestedLanguages&&O.nestedLanguages.length||O.nestedAttributes&&O.nestedAttributes.length)&&(t=VS((O.nestedLanguages||[]).concat(ES),(O.nestedAttributes||[]).concat(AS)));let i=t?IS.configure({wrap:t,dialect:e}):e?Ts.configure({dialect:e}):Ts;return new tt(i,[Ts.data.of({autocomplete:Zz(O)}),O.autoCloseTags!==!1?Wz:[],Gg().support,Kg().support])}const xd=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Wz=U.inputHandler.of((O,e,t,i,r)=>{if(O.composing||O.state.readOnly||e!=t||i!=">"&&i!="/"||!Ts.isActiveAt(O.state,e,-1))return!1;let n=r(),{state:s}=n,o=s.changeByRange(a=>{var l,c,h;let f=s.doc.sliceString(a.from-1,a.to)==i,{head:Q}=a,d=de(s).resolveInner(Q-1,-1),$;if((d.name=="TagName"||d.name=="StartTag")&&(d=d.parent),f&&i==">"&&d.name=="OpenTag"){if(((c=(l=d.parent)===null||l===void 0?void 0:l.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&($=Ji(s.doc,d.parent,Q))&&!xd.has($)){let p=Q+(s.doc.sliceString(Q,Q+1)===">"?1:0),g=``;return{range:a,changes:{from:Q,to:p,insert:g}}}}else if(f&&i=="/"&&d.name=="IncompleteCloseTag"){let p=d.parent;if(d.from==Q-2&&((h=p.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&($=Ji(s.doc,p,Q))&&!xd.has($)){let g=Q+(s.doc.sliceString(Q,Q+1)===">"?1:0),P=`${$}>`;return{range:X.cursor(Q+P.length,-1),changes:{from:Q,to:g,insert:P}}}}return{range:a}});return o.changes.empty?!1:(O.dispatch([n,s.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),DS=ih({commentTokens:{block:{open:""}}}),LS=new M,MS=bq.configure({props:[ot.add(O=>!O.is("Block")||O.is("Document")||Qc(O)!=null?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),LS.add(Qc),gt.add({Document:()=>null}),ui.add({Document:DS})]});function Qc(O){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(O.name);return e?+e[1]:void 0}function kz(O,e){let t=O;for(;;){let i=t.nextSibling,r;if(!i||(r=Qc(i.type))!=null&&r<=e)break;t=i}return t.to}const Yz=cm.of((O,e,t)=>{for(let i=de(O).resolveInner(t,-1);i&&!(i.fromt)return{from:t,to:n}}return null});function Uh(O){return new zt(DS,O,[Yz],"markdown")}const qz=Uh(MS),zz=MS.configure([Vq,_q,Uq,jq,{props:[ot.add({Table:(O,e)=>({from:e.doc.lineAt(O.from).to,to:O.to})})]}]),NS=Uh(zz);function Rz(O,e){return t=>{if(t&&O){let i=null;if(t=/\S*/.exec(t)[0],typeof O=="function"?i=O(t):i=As.matchLanguageName(O,t,!0),i instanceof As)return i.support?i.support.language.parser:On.getSkippingParser(i.load());if(i)return i.parser}return e?e.parser:null}}class ls{constructor(e,t,i,r,n,s,o){this.node=e,this.from=t,this.to=i,this.spaceBefore=r,this.spaceAfter=n,this.type=s,this.item=o}blank(e,t=!0){let i=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;i.length0;r--)i+=" ";return i+(t?this.spaceAfter:"")}}marker(e,t){let i=this.node.name=="OrderedList"?String(+FS(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function BS(O,e){let t=[];for(let r=O;r&&r.name!="Document";r=r.parent)(r.name=="ListItem"||r.name=="Blockquote"||r.name=="FencedCode")&&t.push(r);let i=[];for(let r=t.length-1;r>=0;r--){let n=t[r],s,o=e.lineAt(n.from),a=n.from-o.from;if(n.name=="FencedCode")i.push(new ls(n,a,a,"","","",null));else if(n.name=="Blockquote"&&(s=/^ *>( ?)/.exec(o.text.slice(a))))i.push(new ls(n,a,a+s[0].length,"",s[1],">",null));else if(n.name=="ListItem"&&n.parent.name=="OrderedList"&&(s=/^( *)\d+([.)])( *)/.exec(o.text.slice(a)))){let l=s[3],c=s[0].length;l.length>=4&&(l=l.slice(0,l.length-4),c-=4),i.push(new ls(n.parent,a,a+c,s[1],l,s[2],n))}else if(n.name=="ListItem"&&n.parent.name=="BulletList"&&(s=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(o.text.slice(a)))){let l=s[4],c=s[0].length;l.length>4&&(l=l.slice(0,l.length-4),c-=4);let h=s[2];s[3]&&(h+=s[3].replace(/[xX]/," ")),i.push(new ls(n.parent,a,a+c,s[1],l,h,n))}}return i}function FS(O,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(O.from,O.from+10))}function ja(O,e,t,i=0){for(let r=-1,n=O;;){if(n.name=="ListItem"){let o=FS(n,e),a=+o[2];if(r>=0){if(a!=r+1)return;t.push({from:n.from+o[1].length,to:n.from+o[0].length,insert:String(r+2+i)})}r=a}let s=n.nextSibling;if(!s)break;n=s}}function _h(O,e){let t=/^[ \t]*/.exec(O)[0].length;if(!t||e.facet(ir)!=" ")return O;let i=Mt(O,4,t),r="";for(let n=i;n>0;)n>=4?(r+=" ",n-=4):(r+=" ",n--);return r+O.slice(t)}const Vz=({state:O,dispatch:e})=>{let t=de(O),{doc:i}=O,r=null,n=O.changeByRange(s=>{if(!s.empty||!NS.isActiveAt(O,s.from))return r={range:s};let o=s.from,a=i.lineAt(o),l=BS(t.resolveInner(o,-1),i);for(;l.length&&l[l.length-1].from>o-a.from;)l.pop();if(!l.length)return r={range:s};let c=l[l.length-1];if(c.to-c.spaceAfter.length>o-a.from)return r={range:s};let h=o>=c.to-c.spaceAfter.length&&!/\S/.test(a.text.slice(c.to));if(c.item&&h){let p=c.node.firstChild,g=c.node.getChild("ListItem","ListItem");if(p.to>=o||g&&g.to0&&!/[^\s>]/.test(i.lineAt(a.from-1).text)){let P=l.length>1?l[l.length-2]:null,y,w="";P&&P.item?(y=a.from+P.from,w=P.marker(i,1)):y=a.from+(P?P.to:0);let b=[{from:y,to:o,insert:w}];return c.node.name=="OrderedList"&&ja(c.item,i,b,-2),P&&P.node.name=="OrderedList"&&ja(P.item,i,b),{range:X.cursor(y+w.length),changes:b}}else{let P=wd(l,O,a);return{range:X.cursor(o+P.length+1),changes:{from:a.from,insert:P+O.lineBreak}}}}if(c.node.name=="Blockquote"&&h&&a.from){let p=i.lineAt(a.from-1),g=/>\s*$/.exec(p.text);if(g&&g.index==c.from){let P=O.changes([{from:p.from+g.index,to:p.to},{from:a.from+c.from,to:a.to}]);return{range:s.map(P),changes:P}}}let f=[];c.node.name=="OrderedList"&&ja(c.item,i,f);let Q=c.item&&c.item.from]*/.exec(a.text)[0].length>=c.to)for(let p=0,g=l.length-1;p<=g;p++)d+=p==g&&!Q?l[p].marker(i,1):l[p].blank(pa.from&&/\s/.test(a.text.charAt($-a.from-1));)$--;return d=_h(d,O),Uz(c.node,O.doc)&&(d=wd(l,O,a)+O.lineBreak+d),f.push({from:$,to:o,insert:O.lineBreak+d}),{range:X.cursor($+d.length+1),changes:f}});return r?!1:(e(O.update(n,{scrollIntoView:!0,userEvent:"input"})),!0)};function bd(O){return O.name=="QuoteMark"||O.name=="ListMark"}function Uz(O,e){if(O.name!="OrderedList"&&O.name!="BulletList")return!1;let t=O.firstChild,i=O.getChild("ListItem","ListItem");if(!i)return!1;let r=e.lineAt(t.to),n=e.lineAt(i.from),s=/^[\s>]*$/.test(r.text);return r.number+(s?0:1){let t=de(O),i=null,r=O.changeByRange(n=>{let s=n.from,{doc:o}=O;if(n.empty&&NS.isActiveAt(O,n.from)){let a=o.lineAt(s),l=BS(_z(t,s),o);if(l.length){let c=l[l.length-1],h=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(s-a.from>h&&!/\S/.test(a.text.slice(h,s-a.from)))return{range:X.cursor(a.from+h),changes:{from:a.from+h,to:s}};if(s-a.from==h&&(!c.item||a.from<=c.item.from||!/\S/.test(a.text.slice(0,c.to)))){let f=a.from+c.from;if(c.item&&c.node.fromnAN>nO7oQPOAN>sO6lQPOAN>xOOQO1G.s1G.sOOQO,5;O,5;OOOQO-E8b-E8bOOQO7+$g7+$gOOQO7+%`7+%`O7tQPO7+%`O7yQPO'#DzO8XQPO'#EkO8dQPO,5:eOOQO,5:e,5:eOOQOG24_G24_OOQOG24dG24dOOQO<Dz[O]||-1},{term:125,get:O=>Lz[O]||-1}],tokenPrec:1086}),Nz=Ee.define({name:"lezer",parser:Mz.configure({props:[ot.add({"Body TokensBody SkipBody PrecedenceBody":$O})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});function Bz(){return new tt(Nz)}const Fz={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},Hz=Ae.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:O=>Fz[O]||-1}],tokenPrec:0}),Kz=Ee.define({name:"wast",parser:Hz.configure({props:[gt.add({App:DO({closing:")",align:!1})}),ot.add({App:$O,BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:u.keyword,Type:u.typeName,Number:u.number,String:u.string,Identifier:u.variableName,LineComment:u.lineComment,BlockComment:u.blockComment,"( )":u.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function Jz(){return new tt(Kz)}const eR=1,tR=2,OR=263,iR=3,rR=264,Td=265,nR=266,sR=4,oR=5,aR=6,lR=7,Zd=8,cR=9,hR=10,fR=11,uR=12,QR=13,dR=14,$R=15,pR=16,mR=17,gR=18,SR=19,PR=20,XR=21,yR=22,xR=23,bR=24,wR=25,TR=26,ZR=27,vR=28,WR=29,kR=30,YR=31,qR=32,zR=33,RR=34,VR=35,UR=36,_R=37,jR=38,GR=39,CR=40,ER=41,AR=42,IR=43,DR=44,LR=45,MR=46,NR=47,BR=48,FR=49,HR=50,KR=51,JR=52,e5=53,t5=54,O5=55,i5=56,r5=57,n5=58,s5=59,o5=60,a5=61,Ca=62,l5=63,c5=64,h5=65,f5={abstract:sR,and:oR,array:aR,as:lR,true:Zd,false:Zd,break:cR,case:hR,catch:fR,clone:uR,const:QR,continue:dR,declare:pR,default:$R,do:mR,echo:gR,else:SR,elseif:PR,enddeclare:XR,endfor:yR,endforeach:xR,endif:bR,endswitch:wR,endwhile:TR,enum:ZR,extends:vR,final:WR,finally:kR,fn:YR,for:qR,foreach:zR,from:RR,function:VR,global:UR,goto:_R,if:jR,implements:GR,include:CR,include_once:ER,instanceof:AR,insteadof:IR,interface:DR,list:LR,match:MR,namespace:NR,new:BR,null:FR,or:HR,print:KR,require:JR,require_once:e5,return:t5,switch:O5,throw:i5,trait:r5,try:n5,unset:s5,use:o5,var:a5,public:Ca,private:Ca,protected:Ca,while:l5,xor:c5,yield:h5,__proto__:null};function vd(O){let e=f5[O.toLowerCase()];return e??-1}function Wd(O){return O==9||O==10||O==13||O==32}function HS(O){return O>=97&&O<=122||O>=65&&O<=90}function Gr(O){return O==95||O>=128||HS(O)}function Ea(O){return O>=48&&O<=55||O>=97&&O<=102||O>=65&&O<=70}const u5={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},Q5=new $e(O=>{if(O.next==40){O.advance();let e=0;for(;Wd(O.peek(e));)e++;let t="",i;for(;HS(i=O.peek(e));)t+=String.fromCharCode(i),e++;for(;Wd(O.peek(e));)e++;O.peek(e)==41&&u5[t.toLowerCase()]&&O.acceptToken(eR)}else if(O.next==60&&O.peek(1)==60&&O.peek(2)==60){for(let i=0;i<3;i++)O.advance();for(;O.next==32||O.next==9;)O.advance();let e=O.next==39;if(e&&O.advance(),!Gr(O.next))return;let t=String.fromCharCode(O.next);for(;O.advance(),!(!Gr(O.next)&&!(O.next>=48&&O.next<=55));)t+=String.fromCharCode(O.next);if(e){if(O.next!=39)return;O.advance()}if(O.next!=10&&O.next!=13)return;for(;;){let i=O.next==10||O.next==13;if(O.advance(),O.next<0)return;if(i){for(;O.next==32||O.next==9;)O.advance();let r=!0;for(let n=0;n{O.next<0&&O.acceptToken(nR)}),$5=new $e((O,e)=>{O.next==63&&e.canShift(Td)&&O.peek(1)==62&&O.acceptToken(Td)});function p5(O){let e=O.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,i;for(;t<5&&(i=O.peek(t))>=48&&i<=55;)t++;return t}if(e==120&&Ea(O.peek(2)))return Ea(O.peek(3))?4:3;if(e==117&&O.peek(2)==123)for(let t=3;;t++){let i=O.peek(t);if(i==125)return t==2?0:t+1;if(!Ea(i))break}return 0}const m5=new $e((O,e)=>{let t=!1;for(;!(O.next==34||O.next<0||O.next==36&&(Gr(O.peek(1))||O.peek(1)==123)||O.next==123&&O.peek(1)==36);t=!0){if(O.next==92){let i=p5(O);if(i){if(t)break;return O.acceptToken(iR,i)}}else if(!t&&(O.next==91||O.next==45&&O.peek(1)==62&&Gr(O.peek(2))||O.next==63&&O.peek(1)==45&&O.peek(2)==62&&Gr(O.peek(3)))&&e.canShift(rR))break;O.advance()}t&&O.acceptToken(OR)}),g5=De({"Visibility abstract final static":u.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":u.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":u.controlKeyword,"and or xor yield unset clone instanceof insteadof":u.operatorKeyword,"function fn class trait implements extends const enum global interface use var":u.definitionKeyword,"include include_once require require_once namespace":u.moduleKeyword,"new from echo print array list as":u.keyword,null:u.null,Boolean:u.bool,VariableName:u.variableName,"NamespaceName/...":u.namespace,"NamedType/...":u.typeName,Name:u.name,"CallExpression/Name":u.function(u.variableName),"LabelStatement/Name":u.labelName,"MemberExpression/Name":u.propertyName,"MemberExpression/VariableName":u.special(u.propertyName),"ScopedExpression/ClassMemberName/Name":u.propertyName,"ScopedExpression/ClassMemberName/VariableName":u.special(u.propertyName),"CallExpression/MemberExpression/Name":u.function(u.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":u.function(u.propertyName),"MethodDeclaration/Name":u.function(u.definition(u.variableName)),"FunctionDefinition/Name":u.function(u.definition(u.variableName)),"ClassDeclaration/Name":u.definition(u.className),UpdateOp:u.updateOperator,ArithOp:u.arithmeticOperator,LogicOp:u.logicOperator,BitOp:u.bitwiseOperator,CompareOp:u.compareOperator,ControlOp:u.controlOperator,AssignOp:u.definitionOperator,"$ ConcatOp":u.operator,LineComment:u.lineComment,BlockComment:u.blockComment,Integer:u.integer,Float:u.float,String:u.string,ShellExpression:u.special(u.string),"=> ->":u.punctuation,"( )":u.paren,"#[ [ ]":u.squareBracket,"${ { }":u.brace,"-> ?->":u.derefOperator,", ; :: : \\":u.separator,"PhpOpen PhpClose":u.processingInstruction}),S5={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},P5=Ae.deserialize({version:14,states:"$GSQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{OS,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MuQdO7+%sOOQS7+&[7+&[O$ bQ`O,5>yO>UQaO,5;`O$ iQ`O,5;aO$#OQaO'#HfO$#YQ`O,5>zOOQS1G0y1G0yO$#bQ`O'#EYO$#gQ`O'#IXO$#oQ`O,5:sOOQS1G0e1G0eO$#tQ`O1G0eO$#yQ`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%`QaO'#HeO$%jQ`O,5>xOOQS1G0m1G0mO$%rQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%wQdO7+&hO$'yQtO1G1RO$(WQdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KmQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)sQ`O,5UQaO,5],5>]OOQS-E;o-E;oO$.iQdO7+'hO$.yQpO7+'hO$/RQdO'#IiOOQO,5dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;lQaO7+(lO$cOOQS-E;u-E;uO!&WQdO7+(nO$=mQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?nQ`O'#GQO$?uQ`O'#GQO$@ZQ`O'#HUOOQO'#Hy'#HyO$@`Q`O,5=oOOQ#u,5=o,5=oO$@gQpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$@rQdO,5>fOOQS-E;x-E;xO$AQQdO1G4}O$A]Q`O,5=tO$AbQ`O,5=tO$AmQ`O'#H{O$BRQ`O,5?dOOQS1G3_1G3_O#KrQ`O7+(xO$BZQdO,5=|OOQS-E;`-E;`O$CvQdO<Q,5>QOOQO-E;d-E;dO$8YQaO,5:tO$FxQaO'#HcO$GVQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$G_Q`O7+&TO$HtQ`O1G0nO$JZQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<UQaO1G1uO$KsQ`O1G1uO$LOQ`O1G1yOOQO1G1y1G1yO$LTQ`O1G1uO$L]Q`O1G1uO$MrQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<`OOQ#u-E;r-E;rOhQaO<aOOQO-E;s-E;sO!&WQdO<g,5>gOOQO-E;y-E;yO!&WQdO<UQaO,5;TOOQ#uANAzANAzO#KmQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%)vQ`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+]Q`O7+'aO%+hQ`O7+'eO>UQaO7+'fO%+mQ`O7+'fO%-SQ`O'#HlO%-bQ`O,5?SO%-bQ`O,5?SOOQO1G1{1G1{O$+qQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%-jQtOANCgO%-xQ`OAN@dO*kQaOAN@nO%.QQdOAN@nO%.bQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/dQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%.jQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<UQaO<W,5>WO%6wQ`O,5>WOOQO-E;j-E;jO%6|Q`O1G4nOOQSG26OG26OO$+qQpOG26OO0aQ`OG26OO%7UQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%7fQ`OLD+tO%8uQ`O'#E}O%9PQ`O'#IZO!&WQdO'#HrO%:|QaO,5^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<wO&EPQdO1G0cO#.YQaO1G0cO&F{QdO1G1YO&HwQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&JsQdO7+%sO&LoQdO7+%}O#.YQaO7+'hO&NkQdO7+'hO'!gQdO<lQdO,5>wO(@nQdO1G0cO'.QQaO1G0cO(BpQdO1G1YO(DrQdO1G1[O'.QQaO1G1|O'.QQaO7+%sO(FtQdO7+%sO(HvQdO7+%}O'.QQaO7+'hO(JxQdO7+'hO(LzQdO<wO*1sQaO'#HdO*2TQ`O,5>vO*2]QdO1G0cO9yQaO1G0cO*4XQdO1G1YO*6TQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8PQ`O,5=[O*8XQaO'#HbO*8cQ`O,5>tO9yQaO7+%sO*8kQdO7+%sO*:gQ`O1G0iO>UQaO1G0iO*;|QdO7+%}O9yQaO7+'hO*=xQdO7+'hO*?tQ`O,5>cO*AZQ`O,5=|O*BpQdO<UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'XQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'`QaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+'gQ`O'#I]O$8YQaO'#EaO+)PQaOG26YO$8YQaO'#I]O+*{Q`O'#I[O++TQaO,5:wO>UQaO,5;nO>UQaO,5;pO++[Q`O,5UQaO1G0XO+9hQ`O1G1]O+;TQ`O1G1]O+]Q`O1G1]O+?xQ`O1G1]O+AeQ`O1G1]O+CQQ`O1G1]O+DmQ`O1G1]O+FYQ`O1G1]O+GuQ`O1G1]O+IbQ`O1G1]O+J}Q`O1G1]O+LjQ`O1G1]O+NVQ`O1G1]O, rQ`O1G1]O,#_Q`O1G0cO>UQaO1G0cO,$zQ`O1G1YO,&gQ`O1G1[O,(SQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,([Q`O7+%sO,)wQ`O7+%}O>UQaO7+'hO,+dQ`O7+'hO,+lQ`O7+'hO,-XQpO7+'hO,-aQ`O<UQaO<UQaOAN@nO,0qQ`OAN@nO,2^QpOAN@nO,2fQ`OG26YO>UQaOG26YO,4RQ`OLD+tO,5nQaO,5:}O>UQaO1G0iO,5uQ`O'#I]O$8YQaO'#FeO$8YQaO'#FfO$8YQaO'#FgO$8YQaO'#FhO$8YQaO'#FhO+)PQaO'#FhO$8YQaO'#FkO,6SQaO'#FwO,6ZQaO'#FwO$8YQaO'#GVO+)PQaO'#GVO$8YQaO'#GYO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO,8YQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8bQaO,5:wO,8iQaO,5:wO$8YQaO,5;nO+)PQaO,5;nO$8YQaO,5;pO,:hQ`O,5wO-IcQ`O1G0cO-KOQ`O1G0cO$8YQaO1G0cO+)PQaO1G0cO-L_Q`O1G1YO-MzQ`O1G1YO. ZQ`O1G1[O$8YQaO1G1|O$8YQaO7+%sO+)PQaO7+%sO.!vQ`O7+%sO.$cQ`O7+%sO.%rQ`O7+%}O.'_Q`O7+%}O$8YQaO7+'hO.(nQ`O7+'hO.*ZQ`O<fQ`O,5>wO.@RQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@ZQ`O7+'hO.@cQpO7+'hO.@kQpO<UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8lOo=yOs#hOx8jOy8jO}`O!O]O!Q8pO!R}O!T8oO!U8kO!V8kO!Y8rO!c8iO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8nO$]8mO$^8nO$aqO$z8qO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;dO#U;cO!x'OP~P9yOT6iOz6gO!S6jO!b6kO!o!{O!v8sO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6iOz6gO!S6jO!b6kO!v8sO!}({O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6iOz6gO!S6jO!b6kO!v8sO!})iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8vOz8tO!S8wO!b8xO!q)pO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#X)rO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!n)rO~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6iOz6gO!S6jO!b6kO!v8sO!}*UO#O*TO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[4OOo5xOs#hOx3zOy3zO}`O!O]O!Q2^O!R}O!T4UO!U3|O!V3|O!Y2`O!c3xO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4SO$]4QO$^4SO$aqO$z2_O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6iOV,XOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,iOm+^Os$aO!^+dO!_+^O!`+^O$aqO$drO~O!n,lO~P#JwO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,rO~OV,sO!n%|X!}%|X~O!},uO!n'lX~O!n,wO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,|O~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-QO~O!}-RO!n&{X~O!n-TO~O!x-UO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-[O~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-dO!x$ca!}$ca~O#U-fO#b-eO~O#b-gO~O#S-hO#U-fO#b-eO#l'SO~O#b-jO#l'SO~O#u-kO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-pO#b-oO!x'[P~O!oXO!q-rO~O!q-uO!o'cq!m'cq&s'cq~O!^-wO!oXO!q-rO~O!q-{O#O-zO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-zO#l'SO~O!}-|Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.ZO#b$nO$aqO$drO~P0aO!s.^O~O!s._O#b._O$}._O%T+oO~O$}.`O~O#X.aO~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.dOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.iOd+vOh.hO~O!q(`O~OP6]OQ|OU^OW}O[:fOo>ROs#hOx:dOy:dO}`O!O]O!Q:kO!R}O!T:jO!U:eO!V:eO!Y:oO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:hO$]:gO$^:hO$aqO$z:mO${!OO$}}O%O}O%V|O'g{O~O!m.lO!q.lO~OY+zO_+{O!n.nO~OY+zO_+{Oi%^a~O!x.rO~P>UO!m.tO~O!m.tO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&ka!}&ka&s&ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^Om+^Os$aO!_+^O!`+^O$aqO$drO~OY/PO~P$?VOS+^Om+^Os$aO!_+^O!`+^O$aqO~O!s/QO~O!n/SO~P#JwOw(SO!o)WO#l'SO~OV/VO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/XO~OV/YO!n%|a!}%|a~O]/[Os/[O!s#gO#peO!n&oX!}&oX~O!},uO!n'la~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-RO!n&{a~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vq#X#Vq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#[i!}#[i~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O/cO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x&Xa!}&Xa~P!'WO#u/iO!x$ci!}$ci~O#b/jO~O#U/lO#b/kO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$ci!}$ci~P!'WO#u/mO!x$hi!}$hi~O!}/oO!x'[X~O#b/qO~O!x/rO~O!oXO!q/uO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/xO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-|Ow']a!o']a!m']a&s']a~OU$PO]0QO!R$PO!s$OO!v#}O#b$nO#p2XO~P$?uO!m#cO!o0VO&s#cO~O#X0YO~Oh0_O~OT:tOz:pO!S:vO!b:xO!m0`O!q0`O!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0bO~O!x0bO~P>UO!m0dO~OT6iOz6gO!S6jO!b6kO!v8sO!x0fO#O0eO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WO!x0fO~O!x0gO#b0hO#l'SO~O!x0iO~O!s0jO~O!m#cO#u0lO&s#cO~O!s0mO~O!})_O!m'kq&s'kq~O!s0nO~OV0oO!n%}X!}%}X~OT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!n!|i!}!|i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cq!}$cq~P!'WO#u0vO!x$cq!}$cq~O#b0wO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hq!}$hq~P!'WO#S0zO#b0yO!x&`X!}&`X~O!}/oO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q1PO~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1RO#l'SO~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1^O!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOh1_O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1bO~O!x1bO~P>UO!x1eO~O!m#cO#u1iO&s#cO~O$}1jO%V1jO~O!s1kO~OV1lO!n%}a!}%}a~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#]i!}#]i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cy!}$cy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hy!}$hy~P!'WO#b1nO~O!}/oO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:uOz:qO!S:wO!b:yO!v=nO#S#QO#z:sO#{:{O#|:}O#};PO$O;RO$Q;VO$R;XO$S;ZO$T;]O$U;_O$V;aO$W;aO$z#dO~P!'WOV1uO{1tO~P!5xOV1uO{1tOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1xO!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOY%[q_%[q!n%[qi%[q~PhO!x1zO~O!x%gi~PCqOe1{O~O$}1|O%V1|O~O!s2OO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2QO~O!`2SO!s2RO~O!s2VO!m$xi&s$xi~O!s'WO~O!s*]O~OT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2]O~P*kO$l$tO~P#.YOT6iOz6gO!S6jO!b6kO!v8sO#O2[O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O3uO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3dO~P#.YOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2aO#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S3vO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lO#u2uO#w2vO!q&zX#X&zX!}&zX~P0rOP6]OU^O[4POo8^Or2wOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S2tO#U2sO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;lOP6]OU^O[4POo8^Or4xOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S4uO#U4tO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;lO!q3PO~P>UO!q5}O#O3gO~OT8vOz8tO!S8wO!b8xO!q3hO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q6OO#O3kO~O!q6PO#O3oO~O#O3oO#l'SO~O#O3pO#l'SO~O#O3sO#l'SO~OP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$l$tO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S5eO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4dO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5wO~P#.YO!y$hO#S5{O~O!x4ZO#l'SO~O!y$hO#S5|O~OT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O5vO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4vO#w4wO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5QO~P>UO!q8bO#O5hO~OT8vOz8tO!S8wO!b8xO!q5iO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q8cO#O5lO~O!q8dO#O5pO~O#O5pO#l'SO~O#O5qO#l'SO~O#O5tO#l'SO~O$l$tO~P9yOo5zOs$lO~O#S7oO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6gO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7sO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'jX~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7uO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&|X~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7zO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;dO#U;cO!x&WX!}&WX~P9yO!}7lO!x'Oa~Oz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7sO!x%da~O!x&UX!}&UX~P>UO!}7uO!x&|a~Oz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vi!}#Vi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&ka!}&ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&Ua!}&Ua~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vq!}#Vq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8[O~P9yO#O8ZO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8`O~O!y$hO#S8aO~O#u6zO#w6{O!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6|O#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;iO#S9XO#U9VOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9WO#S9WO#U9WOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9]O#S;dO#U;cOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7XO~P>UOT6iOz6gO!S6jO!b6kO!v8sO#O7iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'PX!}'PX~P!'WOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lO!}7lO!x'OX~O#S9yO~P>UOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8tO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=dO#O7rO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8vOz8tO!S8wO!b8xO!q7wO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8tO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=eO#O7|O~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=iO#O8TO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8TO#l'SO~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8UO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8XO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:bO~P>UO#O:aO!q'PX!x'PX~PGSO$l$tO~P$8YOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$l$tO$z:nO${!OO~P$;lOo8_Os$lO~O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#S=UO#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOT6iOz6gO!S6jO!b6kO!v8sO#O=SO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O=RO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9ZO#w9[O#X&zX!x&zX~P.8oO!y$hO#S=^O~O!q9hO~P>UO!y$hO#S=cO~O!q>OO#O9}O~OT8vOz8tO!S8wO!b8xO!q:OO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q>PO#O:RO~O!q>QO#O:YO~O#O:YO#l'SO~O#O:ZO#l'SO~O#O:_O#l'SO~O#u;eO#w;gO!m&zX!n&zX~P.8oO#u;fO#w;hOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;tO~P>UO!q;uO~P>UO!q>XO#OYO#O9WO~OT8vOz8tO!S8wO!b8xO!qZO#O[O#O<{O~O#O<{O#l'SO~O#O9WO#l'SO~O#O<|O#l'SO~O#O=PO#l'SO~O!y$hO#S=|O~Oo=[Os$lO~O!y$hO#S=}O~O!y$hO#S>UO~O!y$hO#S>VO~O!y$hO#S>WO~Oo={Os$lO~Oo>TOs$lO~Oo>SOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%&y'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%UP!.]!7pP!?oP*ZP*Z*ZPPPPP!?rPPPPPPP*Z*Z*Z*ZPP*Z*ZP!E]!GRP!GV!Gy!GR!GR!HP*Z*ZP!HY!Hl!Ib!J`!Jd!J`!Jo!J}!J}!KV!KY!KY*ZPP*ZPP!K^#%[#%[#%`P#%fP(O#%j(O#&S#&V#&V#&](O#&`(O(O#&f#&i(O#&r#&u(O(O(O(O(O#&x(O(O(O(O(O(O(O(O(O#&{!KR(O(O#'_#'o#'r(O(OP#'u#'|#(S#(o#(y#)P#)Z#)b#)h#*d#4X#5T#5Z#5a#5k#5q#5w#6]#6c#6i#6o#6u#6{#7R#7]#7g#7m#7s#7}PPPPPPPP#8T#8X#8}#NO#NR#N]$(f$(r$)X$)_$)b$)e$)k$,X$5v$>_$>b$>h$>k$>n$>w$>{$?X$?k$Bk$CO$C{$K{PP%%y%%}%&Z%&p%&vQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-n*v*x+OQ.W+cQ.{,[S/t-s-tQ0T.SS0}/s/wQ1V0RQ1o1OR2P1p0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3ZfPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3scPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u,x-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2W2X2Y2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0`0a0d0e0i0v1R1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uRS=p>S>VS=s>T>UR=t>WT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,k.b.d.l0`0a0i1aQ$^rR*`'^Q*x'sQ-t*{R/w-wQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-c*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-b*i*jQ.]+kQ/T,mQ/e-`R/g-cQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-a*h*i*jS.[+j+kS/f-b-cQ0X.]R0t/gT+e(T+g[%e!_$b'c+a.R0QR,d)Qb$ov(T+[+]+`+g.P.Q0PR+T'{S+e(T+gT,j)W,kR0W.XT1[0V1]0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[R2Y2X|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aW$`t'i+],gS'i$h*sS+](T+gT,g)W,kQ'_$^R*a'_Q*t'oR-m*tQ/p-oS0{/p0|R0|/qQ-}+XR/|-}Q+g(TR.Y+gS+`(T+gS,h)W,kQ.Q+]W.T+`,h.Q/OR/O,gQ)R%eR,e)RQ'|$oR+U'|Q1]0VR1w1]Q${{R(^${Q+t(aR.c+tQ+w(bR.g+wQ+}(cQ,P(dT.m+},PQ(|%`S,a(|7tR7t7VQ(y%^R,^(yQ,k)WR/R,kQ)`%oS,q)`/WR/W,rQ,v)dR/^,vT!uV!rj!iPVX!j!r!s!w(`+r.l0`0a1aQ%Q!SQ(a$}W(h%P%S%U0iQ.e+uQ0Z.bR0[.d|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2_4b6e8q:m:nQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-RQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2a4d6g8t:p:qQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4ZQ*^'Y^*_2[3u5v8Z:a=R=SQ+S'zQ+V(OQ,`({Q,c)PQ,y)iQ,{)pQ,})tQ-V*PQ-W*TQ-X*U^-]2]3v5w8[:b=T=UQ-i*oQ-x+PQ.k+zQ.w,XQ/`-QQ/h-dQ/n-kQ/y-zQ0r/cQ0u/iQ0x/mQ1Q/xU1X0V1]9WQ1d0eQ1m0vQ1q1RQ2Z2^Q2qjQ2r3yQ2x3zQ2y3|Q2z4OQ2{4QQ2|4SQ2}4UQ3O2`Q3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2oQ3`2pQ3a2sQ3b2tQ3c2uQ3e2vQ3f2wQ3i3PQ3j3dQ3l3gQ3m3hQ3n3kQ3q3oQ3r3pQ3t3sQ4Y4WQ4y3{Q4z3}Q4{4PQ4|4RQ4}4TQ5O4VQ5P4cQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5c4uQ5d4vQ5f4wQ5g4xQ5j5QQ5k5eQ5m5hQ5n5iQ5o5lQ5r5pQ5s5qQ5u5tQ6Q4aQ6R3xQ6V6TQ6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6cQ7T6dQ7U6fU7V,T.t0dQ7W%cQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7g6uQ7h6vQ7j6xQ7k6yQ7n6zQ7p6{Q7q6|Q7x7XQ7y7iQ7{7oQ7}7rQ8O7sQ8P7uQ8Q7wQ8R7zQ8S7|Q8V8TQ8W8UQ8Y8XQ8]8fU9U#k&s7lQ9^8jQ9_8kQ9`8lQ9a8mQ9b8nQ9c8oQ9e8pQ9f8rQ9g8sQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9SQ9w9TQ9x9ZQ9z9[Q9{9]Q:P9hQ:Q9yQ:T9}Q:V:OQ:W:RQ:[:YQ:^:ZQ:`:_Q:c8iQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:kQ;r:lQ;s:oQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQOQ=h>PQ=j>QQ=u>XQ=v>YQ=w>ZR=x>[0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[S$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,p)_Q,t)cQ/Z,uQ/{-|R0p/[|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-z/x0e1R2[2]6x6yd+^(T)W+]+`+g,g,h,k.Q/O!t6w'U2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3z3|4O4Q4S4U5v5w!x;b3u3v3x3y3{3}4P4R4T4V4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t$O=z_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-R6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6z6{6|7X7l7o7r7w7|8T8U8X8Z8[8f8g8h8i#|>]!y!z!}%c&W)t)v*T*o,T-d-k.t/c/i/m0d0v4W6T7i7s7u7z8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9Z9[9]9h9y9}:O:R:Y:Z:_:a:b;c;d=Z=m=n!v>^+z-Q9V9X:d:e:f:g:h:j:k:m:o:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;`;e;g;i;t_0V1]9W:i:l:n:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;a;f;h;u AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["isolate",-4,66,67,70,191,""],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[g5],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[Q5,m5,$5,0,1,2,3,d5],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(O,e)=>vd(O)<<1,external:vd},{term:81,get:O=>S5[O]||-1}],tokenPrec:29354}),X5=Ee.define({name:"php",parser:P5.configure({props:[gt.add({IfStatement:Ce({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},ColonBlock:O=>O.baseIndent+O.unit,"Block EnumBody DeclarationList":DO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"String BlockComment":()=>null,Statement:Ce({except:/^({|end(for|foreach|switch|while)\b)/})}),ot.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":$O,ColonBlock(O){return{from:O.from+1,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function y5(O={}){let e=[],t;if(O.baseLanguage!==null)if(O.baseLanguage)t=O.baseLanguage;else{let i=Tn({matchClosingTags:!1});e.push(i.support),t=i.language}return new tt(X5.configure({wrap:t&&vO(i=>i.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:O.plain?"Program":"Template"}),e)}const x5=1,b5=33,w5=34,T5=35,Z5=36,v5=new $e(O=>{let e=O.pos;for(;;){if(O.next==10){O.advance();break}else if(O.next==123&&O.peek(1)==123||O.next<0)break;O.advance()}O.pos>e&&O.acceptToken(x5)});function jo(O,e,t){return new $e(i=>{let r=i.pos;for(;i.next!=O&&i.next>=0&&(t||i.next!=38&&(i.next!=123||i.peek(1)!=123));)i.advance();i.pos>r&&i.acceptToken(e)})}const W5=jo(39,b5,!1),k5=jo(34,w5,!1),Y5=jo(39,T5,!0),q5=jo(34,Z5,!0),z5=Ae.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<O.name=="InterpolationContent"?$c:null)}),_5=KS.configure({wrap:vO((O,e)=>{var t;return O.name=="InterpolationContent"?$c:O.name!="AttributeInterpolation"?null:((t=O.node.parent)===null||t===void 0?void 0:t.name)=="StatementAttributeValue"?V5:$c}),top:"Attribute"}),j5={parser:U5},G5={parser:_5},pc=Tn();function JS(O){return O.configure({wrap:vO(E5)},"angular")}const C5=JS(pc.language);function E5(O,e){switch(O.name){case"Attribute":return/^[*#(\[]|\{\{/.test(e.read(O.from,O.to))?G5:null;case"Text":return j5}return null}function A5(O={}){let e=pc;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof Ee))throw new RangeError("The base option must be the result of calling html(...)");e=O.base}return new tt(e.language==pc.language?C5:JS(e.language),[e.support,e.language.data.of({closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/})])}const I5=Ae.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new nO("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new nO("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new nO("[~RPwxU~ZOp~~",11,15),new nO("[~RPrsU~ZOn~~",11,14),new nO("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new nO("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),D5=vt.parser.configure({top:"SingleExpression"}),eP=I5.configure({props:[De({Text:u.content,Is:u.definitionOperator,AttributeName:u.attributeName,VueAttributeName:u.keyword,Identifier:u.variableName,"AttributeValue ScriptAttributeValue":u.attributeValue,Entity:u.character,"{{ }}":u.brace,"@ :":u.punctuation})]}),tP={parser:D5},L5=eP.configure({wrap:vO((O,e)=>O.name=="InterpolationContent"?tP:null)}),M5=eP.configure({wrap:vO((O,e)=>O.name=="AttributeScript"?tP:null),top:"Attribute"}),N5={parser:L5},B5={parser:M5},mc=Tn();function OP(O){return O.configure({dialect:"selfClosing",wrap:vO(H5)},"vue")}const F5=OP(mc.language);function H5(O,e){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(e.read(O.from,O.from+2))?B5:null;case"Text":return N5}return null}function K5(O={}){let e=mc;if(O.base){if(O.base.language.name!="html"||!(O.base.language instanceof Ee))throw new RangeError("The base option must be the result of calling html(...)");e=O.base}return new tt(e.language==mc.language?F5:OP(e.language),[e.support,e.language.data.of({closeBrackets:{brackets:["{",'"']}})])}const J5="#e5c07b",kd="#e06c75",eV="#56b6c2",tV="#ffffff",Zs="#abb2bf",gc="#7d8799",OV="#61afef",iV="#98c379",Yd="#d19a66",rV="#c678dd",nV="#21252b",qd="#2c313a",zd="#282c34",Aa="#353a42",sV="#3E4451",Rd="#528bff",oV=U.theme({"&":{color:Zs,backgroundColor:zd},".cm-content":{caretColor:Rd},".cm-cursor, .cm-dropCursor":{borderLeftColor:Rd},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:sV},".cm-panels":{backgroundColor:nV,color:Zs},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:zd,color:gc,border:"none"},".cm-activeLineGutter":{backgroundColor:qd},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Aa},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Aa,borderBottomColor:Aa},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:qd,color:Zs}}},{dark:!0}),aV=yn.define([{tag:u.keyword,color:rV},{tag:[u.name,u.deleted,u.character,u.propertyName,u.macroName],color:kd},{tag:[u.function(u.variableName),u.labelName],color:OV},{tag:[u.color,u.constant(u.name),u.standard(u.name)],color:Yd},{tag:[u.definition(u.name),u.separator],color:Zs},{tag:[u.typeName,u.className,u.number,u.changed,u.annotation,u.modifier,u.self,u.namespace],color:J5},{tag:[u.operator,u.operatorKeyword,u.url,u.escape,u.regexp,u.link,u.special(u.string)],color:eV},{tag:[u.meta,u.comment],color:gc},{tag:u.strong,fontWeight:"bold"},{tag:u.emphasis,fontStyle:"italic"},{tag:u.strikethrough,textDecoration:"line-through"},{tag:u.link,color:gc,textDecoration:"underline"},{tag:u.heading,fontWeight:"bold",color:kd},{tag:[u.atom,u.bool,u.special(u.variableName)],color:Yd},{tag:[u.processingInstruction,u.string,u.inserted],color:iV},{tag:u.invalid,color:tV}]),Le=[oV,mm(aV)],lV=(O,e)=>{const t=O.__vccOpts||O;for(const[i,r]of e)t[i]=r;return t},cV=h$({components:{Codemirror:RZ},setup(){let O;switch(language){case"javascript":O=[Gg(),Le];break;case"java":O=[Tv(),Le];break;case"json":O=[kv(),Le];break;case"cpp":O=[eW(),Le];break;case"python":O=[sk(),Le];break;case"css":O=[Kg(),Le];break;case"sql":O=[SY(),Le];break;case"rust":O=[CY(),Le];break;case"xml":O=[cq(),Le];break;case"markdown":O=[Cz(),Le];break;case"lezer":O=[Bz(),Le];break;case"wast":O=[Jz(),Le];break;case"html":O=[Tn(),Le];break;case"php":O=[y5(),Le];break;case"angular":O=[A5(),Le];break;case"vue":O=[K5(),Le];break;default:O=[Le]}return{code:hs(context),extensions:O}}});function hV(O,e,t,i,r,n){const s=rX("codemirror");return CX(),IX(s,{modelValue:O.code,"onUpdate:modelValue":e[0]||(e[0]=o=>O.code=o),placeholder:"Code goes here...",style:{height:"100vh",width:"100vw"},autofocus:!0,"indent-with-tab":!0,"tab-size":2,extensions:O.extensions,disabled:!0},null,8,["modelValue","extensions"])}const fV=lV(cV,[["render",hV]]);ky(fV).mount("#app"); diff --git a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-dark.min.css b/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-dark.min.css deleted file mode 100644 index 4aba92891863a9bddf86769490cf1db86db50aa6..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-dark.min.css +++ /dev/null @@ -1 +0,0 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background-color:#652487;background-image:linear-gradient(160deg,#652487 0,#443ac3 35%,#0174b7 68%,#04988e 100%);color:#e7e4eb}.hljs-subtr{color:#e7e4eb}.hljs-comment,.hljs-doctag,.hljs-meta,.hljs-quote{color:#af8dd9}.hljs-attr,.hljs-regexp,.hljs-selector-id,.hljs-selector-tag,.hljs-tag,.hljs-template-tag{color:#aefbff}.hljs-bullet,.hljs-params,.hljs-selector-class{color:#f19fff}.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-symbol,.hljs-type{color:#17fc95}.hljs-addition,.hljs-link,.hljs-number{color:#c5fe00}.hljs-string{color:#38c0ff}.hljs-addition,.hljs-attribute{color:#e7ff9f}.hljs-template-variable,.hljs-variable{color:#e447ff}.hljs-built_in,.hljs-class,.hljs-formula,.hljs-function,.hljs-name,.hljs-title{color:#ffc800}.hljs-deletion,.hljs-literal,.hljs-selector-pseudo{color:#ff9e44}.hljs-emphasis,.hljs-quote{font-style:italic}.hljs-keyword,.hljs-params,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-template-tag{font-weight:700} \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-light.min.css b/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-light.min.css deleted file mode 100644 index c5db6fd18fc4d07d3e0c2de2b50125e6fa6a9b21..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/css/gradient-light.min.css +++ /dev/null @@ -1 +0,0 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background-color:#f9ccff;background-image:linear-gradient(295deg,#f9ccff 0,#e6bbf9 11%,#9ec6f9 32%,#55e6ee 60%,#91f5d1 74%,#f9ffbf 98%);color:#250482}.hljs-subtr{color:#01958b}.hljs-comment,.hljs-doctag,.hljs-meta,.hljs-quote{color:#cb7200}.hljs-attr,.hljs-regexp,.hljs-selector-id,.hljs-selector-tag,.hljs-tag,.hljs-template-tag{color:#07bd5f}.hljs-bullet,.hljs-params,.hljs-selector-class{color:#43449f}.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-section,.hljs-symbol,.hljs-type{color:#7d2801}.hljs-addition,.hljs-link,.hljs-number{color:#7f0096}.hljs-string{color:#2681ab}.hljs-addition,.hljs-attribute{color:#296562}.hljs-template-variable,.hljs-variable{color:#025c8f}.hljs-built_in,.hljs-class,.hljs-formula,.hljs-function,.hljs-name,.hljs-title{color:#529117}.hljs-deletion,.hljs-literal,.hljs-selector-pseudo{color:#ad13ff}.hljs-emphasis,.hljs-quote{font-style:italic}.hljs-keyword,.hljs-params,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-selector-tag,.hljs-strong,.hljs-template-tag{font-weight:700} \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/js/highlight.min.js b/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/js/highlight.min.js deleted file mode 100644 index 43482e35e15e2ac8ab2ba5cfbe05951e8efd1c9f..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/highlight/11.6.0/js/highlight.min.js +++ /dev/null @@ -1,1198 +0,0 @@ -/*! - Highlight.js v11.6.0 (git: bed790f3f3) - (c) 2006-2022 undefined and other contributors - License: BSD-3-Clause - */ -var hljs=function(){"use strict";var e={exports:{}};function n(e){ -return e instanceof Map?e.clear=e.delete=e.set=()=>{ -throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{ -throw Error("set is read-only") -}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((t=>{var a=e[t] -;"object"!=typeof a||Object.isFrozen(a)||n(a)})),e} -e.exports=n,e.exports.default=n;class t{constructor(e){ -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} -ignoreMatch(){this.isMatchIgnored=!0}}function a(e){ -return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") -}function i(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] -;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t} -const r=e=>!!e.scope||e.sublanguage&&e.language;class s{constructor(e,n){ -this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ -this.buffer+=a(e)}openNode(e){if(!r(e))return;let n="" -;n=e.sublanguage?"language-"+e.language:((e,{prefix:n})=>{if(e.includes(".")){ -const t=e.split(".") -;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") -}return`${n}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(n)} -closeNode(e){r(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ -this.buffer+=``}}const o=(e={})=>{const n={children:[]} -;return Object.assign(n,e),n};class l{constructor(){ -this.rootNode=o(),this.stack=[this.rootNode]}get top(){ -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ -this.top.children.push(e)}openNode(e){const n=o({scope:e}) -;this.add(n),this.stack.push(n)}closeNode(){ -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ -return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), -n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ -l._collapse(e)})))}}class c extends l{constructor(e){super(),this.options=e} -addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())} -addText(e){""!==e&&this.add(e)}addSublanguage(e,n){const t=e.root -;t.sublanguage=!0,t.language=n,this.add(t)}toHTML(){ -return new s(this,this.options).value()}finalize(){return!0}}function d(e){ -return e?"string"==typeof e?e:e.source:null}function g(e){return m("(?=",e,")")} -function u(e){return m("(?:",e,")*")}function b(e){return m("(?:",e,")?")} -function m(...e){return e.map((e=>d(e))).join("")}function p(...e){const n=(e=>{ -const n=e[e.length-1] -;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(e);return"("+(n.capture?"":"?:")+e.map((e=>d(e))).join("|")+")"} -function _(e){return RegExp(e.toString()+"|").exec("").length-1} -const h=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ -;function f(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t -;let a=d(e),i="";for(;a.length>0;){const e=h.exec(a);if(!e){i+=a;break} -i+=a.substring(0,e.index), -a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0], -"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)} -const E="[a-zA-Z]\\w*",y="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",O={ -begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'", -illegal:"\\n",contains:[O]},x={scope:"string",begin:'"',end:'"',illegal:"\\n", -contains:[O]},M=(e,n,t={})=>{const a=i({scope:"comment",begin:e,end:n, -contains:[]},t);a.contains.push({scope:"doctag", -begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", -end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) -;const r=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) -;return a.contains.push({begin:m(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a -},S=M("//","$"),A=M("/\\*","\\*/"),C=M("#","$");var T=Object.freeze({ -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:E,UNDERSCORE_IDENT_RE:y, -NUMBER_RE:w,C_NUMBER_RE:N,BINARY_NUMBER_RE:v, -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", -SHEBANG:(e={})=>{const n=/^#![ ]*\// -;return e.binary&&(e.begin=m(n,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:n, -end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, -BACKSLASH_ESCAPE:O,APOS_STRING_MODE:k,QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:{ -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:A,HASH_COMMENT_MODE:C, -NUMBER_MODE:{scope:"number",begin:w,relevance:0},C_NUMBER_MODE:{scope:"number", -begin:N,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:v,relevance:0}, -REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//, -end:/\/[gimuy]*/,illegal:/\n/,contains:[O,{begin:/\[/,end:/\]/,relevance:0, -contains:[O]}]}]},TITLE_MODE:{scope:"title",begin:E,relevance:0}, -UNDERSCORE_TITLE_MODE:{scope:"title",begin:y,relevance:0},METHOD_GUARD:{ -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ -"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}})});function R(e,n){ -"."===e.input[e.index-1]&&n.ignoreMatch()}function D(e,n){ -void 0!==e.className&&(e.scope=e.className,delete e.className)}function I(e,n){ -n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", -e.__beforeBegin=R,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, -void 0===e.relevance&&(e.relevance=0))}function L(e,n){ -Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function B(e,n){ -if(e.match){ -if(e.begin||e.end)throw Error("begin & end are not supported with match") -;e.begin=e.match,delete e.match}}function $(e,n){ -void 0===e.relevance&&(e.relevance=1)}const z=(e,n)=>{if(!e.beforeMatch)return -;if(e.starts)throw Error("beforeMatch cannot be used with starts") -;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] -})),e.keywords=t.keywords,e.begin=m(t.beforeMatch,g(t.begin)),e.starts={ -relevance:0,contains:[Object.assign(t,{endsParent:!0})] -},e.relevance=0,delete t.beforeMatch -},F=["of","and","for","in","not","or","if","then","parent","list","value"] -;function U(e,n,t="keyword"){const a=Object.create(null) -;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{ -Object.assign(a,U(e[t],n,t))})),a;function i(e,t){ -n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") -;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){ -return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{ -console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{ -P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0) -},Z=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={} -;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=_(n[e-1]) -;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{ -e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, -delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ -_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope -}),(e=>{if(Array.isArray(e.begin)){ -if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), -Z -;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), -Z;G(e,e.begin,{key:"beginScope"}),e.begin=f(e.begin,{joinWith:""})}})(e),(e=>{ -if(Array.isArray(e.end)){ -if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), -Z -;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), -Z;G(e,e.end,{key:"endScope"}),e.end=f(e.end,{joinWith:""})}})(e)}function Q(e){ -function n(n,t){ -return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) -}class t{constructor(){ -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} -addRule(e,n){ -n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), -this.matchAt+=_(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(f(e,{joinWith:"|" -}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex -;const n=this.matcherRe.exec(e);if(!n)return null -;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] -;return n.splice(0,t),Object.assign(n,a)}}class a{constructor(){ -this.rules=[],this.multiRegexes=[], -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ -if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t -;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), -n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ -this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ -const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex -;let t=n.exec(e) -;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ -const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} -return t&&(this.regexIndex+=t.position+1, -this.regexIndex===this.count&&this.considerAll()),t}} -if(e.compilerExtensions||(e.compilerExtensions=[]), -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") -;return e.classNameAliases=i(e.classNameAliases||{}),function t(r,s){const o=r -;if(r.isCompiled)return o -;[D,B,W,z].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))), -r.__beforeBegin=null,[I,L,$].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null -;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), -l=r.keywords.$pattern, -delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)), -o.keywordPatternRe=n(l,!0), -s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), -r.end&&(o.endRe=n(o.end)), -o.terminatorEnd=d(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)), -r.illegal&&(o.illegalRe=n(r.illegal)), -r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>i(e,{ -variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?i(e,{ -starts:e.starts?i(e.starts):null -}):Object.isFrozen(e)?i(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) -})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new a -;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" -}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" -}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){ -return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{ -constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} -const J=a,Y=i,ee=Symbol("nomatch");var ne=(n=>{ -const a=Object.create(null),i=Object.create(null),r=[];let s=!0 -;const o="Could not find the language '{}', did you forget to load/include a language module?",l={ -disableAutodetect:!0,name:"Plain text",contains:[]};let d={ -ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", -cssSelector:"pre code",languages:null,__emitter:c};function _(e){ -return d.noHighlightRe.test(e)}function h(e,n,t){let a="",i="" -;"object"==typeof n?(a=e, -t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."), -q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), -i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r) -;const s=r.result?r.result:f(r.language,r.code,t) -;return s.code=r.code,x("after:highlight",s),s}function f(e,n,i,r){ -const l=Object.create(null);function c(){if(!k.keywords)return void M.addText(S) -;let e=0;k.keywordPatternRe.lastIndex=0;let n=k.keywordPatternRe.exec(S),t="" -;for(;n;){t+=S.substring(e,n.index) -;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,k.keywords[a]);if(r){ -const[e,a]=r -;if(M.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(A+=a),e.startsWith("_"))t+=n[0];else{ -const t=w.classNameAliases[e]||e;M.addKeyword(n[0],t)}}else t+=n[0] -;e=k.keywordPatternRe.lastIndex,n=k.keywordPatternRe.exec(S)}var a -;t+=S.substring(e),M.addText(t)}function g(){null!=k.subLanguage?(()=>{ -if(""===S)return;let e=null;if("string"==typeof k.subLanguage){ -if(!a[k.subLanguage])return void M.addText(S) -;e=f(k.subLanguage,S,!0,x[k.subLanguage]),x[k.subLanguage]=e._top -}else e=E(S,k.subLanguage.length?k.subLanguage:null) -;k.relevance>0&&(A+=e.relevance),M.addSublanguage(e._emitter,e.language) -})():c(),S=""}function u(e,n){let t=1;const a=n.length-1;for(;t<=a;){ -if(!e._emit[t]){t++;continue}const a=w.classNameAliases[e[t]]||e[t],i=n[t] -;a?M.addKeyword(i,a):(S=i,c(),S=""),t++}}function b(e,n){ -return e.scope&&"string"==typeof e.scope&&M.openNode(w.classNameAliases[e.scope]||e.scope), -e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), -S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),k=Object.create(e,{parent:{ -value:k}}),k}function m(e,n,a){let i=((e,n)=>{const t=e&&e.exec(n) -;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new t(e) -;e["on:end"](n,a),a.isMatchIgnored&&(i=!1)}if(i){ -for(;e.endsParent&&e.parent;)e=e.parent;return e}} -if(e.endsWithParent)return m(e.parent,n,a)}function p(e){ -return 0===k.matcher.regexIndex?(S+=e[0],1):(R=!0,0)}function _(e){ -const t=e[0],a=n.substring(e.index),i=m(k,e,a);if(!i)return ee;const r=k -;k.endScope&&k.endScope._wrap?(g(), -M.addKeyword(t,k.endScope._wrap)):k.endScope&&k.endScope._multi?(g(), -u(k.endScope,e)):r.skip?S+=t:(r.returnEnd||r.excludeEnd||(S+=t), -g(),r.excludeEnd&&(S=t));do{ -k.scope&&M.closeNode(),k.skip||k.subLanguage||(A+=k.relevance),k=k.parent -}while(k!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:t.length} -let h={};function y(a,r){const o=r&&r[0];if(S+=a,null==o)return g(),0 -;if("begin"===h.type&&"end"===r.type&&h.index===r.index&&""===o){ -if(S+=n.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`) -;throw n.languageName=e,n.badRule=h.rule,n}return 1} -if(h=r,"begin"===r.type)return(e=>{ -const n=e[0],a=e.rule,i=new t(a),r=[a.__beforeBegin,a["on:begin"]] -;for(const t of r)if(t&&(t(e,i),i.isMatchIgnored))return p(n) -;return a.skip?S+=n:(a.excludeBegin&&(S+=n), -g(),a.returnBegin||a.excludeBegin||(S=n)),b(a,e),a.returnBegin?0:n.length})(r) -;if("illegal"===r.type&&!i){ -const e=Error('Illegal lexeme "'+o+'" for mode "'+(k.scope||"")+'"') -;throw e.mode=k,e}if("end"===r.type){const e=_(r);if(e!==ee)return e} -if("illegal"===r.type&&""===o)return 1 -;if(T>1e5&&T>3*r.index)throw Error("potential infinite loop, way more iterations than matches") -;return S+=o,o.length}const w=v(e) -;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"') -;const N=Q(w);let O="",k=r||N;const x={},M=new d.__emitter(d);(()=>{const e=[] -;for(let n=k;n!==w;n=n.parent)n.scope&&e.unshift(n.scope) -;e.forEach((e=>M.openNode(e)))})();let S="",A=0,C=0,T=0,R=!1;try{ -for(k.matcher.considerAll();;){ -T++,R?R=!1:k.matcher.considerAll(),k.matcher.lastIndex=C -;const e=k.matcher.exec(n);if(!e)break;const t=y(n.substring(C,e.index),e) -;C=e.index+t} -return y(n.substring(C)),M.closeAllNodes(),M.finalize(),O=M.toHTML(),{ -language:e,value:O,relevance:A,illegal:!1,_emitter:M,_top:k}}catch(t){ -if(t.message&&t.message.includes("Illegal"))return{language:e,value:J(n), -illegal:!0,relevance:0,_illegalBy:{message:t.message,index:C, -context:n.slice(C-100,C+100),mode:t.mode,resultSoFar:O},_emitter:M};if(s)return{ -language:e,value:J(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:k} -;throw t}}function E(e,n){n=n||d.languages||Object.keys(a);const t=(e=>{ -const n={value:J(e),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)} -;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1))) -;i.unshift(t);const r=i.sort(((e,n)=>{ -if(e.relevance!==n.relevance)return n.relevance-e.relevance -;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1 -;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,c=s -;return c.secondBest=o,c}function y(e){let n=null;const t=(e=>{ -let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" -;const t=d.languageDetectRe.exec(n);if(t){const n=v(t[1]) -;return n||(H(o.replace("{}",t[1])), -H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} -return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return -;if(x("before:highlightElement",{el:e,language:t -}),e.children.length>0&&(d.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), -console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), -console.warn("The element with unescaped HTML:"), -console.warn(e)),d.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML) -;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a) -;e.innerHTML=r.value,((e,n,t)=>{const a=n&&i[n]||t -;e.classList.add("hljs"),e.classList.add("language-"+a) -})(e,t,r.language),e.result={language:r.language,re:r.relevance, -relevance:r.relevance},r.secondBest&&(e.secondBest={ -language:r.secondBest.language,relevance:r.secondBest.relevance -}),x("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function N(){ -"loading"!==document.readyState?document.querySelectorAll(d.cssSelector).forEach(y):w=!0 -}function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} -function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ -i[e.toLowerCase()]=n}))}function k(e){const n=v(e) -;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{ -e[t]&&e[t](n)}))} -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ -w&&N()}),!1),Object.assign(n,{highlight:h,highlightAuto:E,highlightAll:N, -highlightElement:y, -highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"), -q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{d=Y(d,e)}, -initHighlighting:()=>{ -N(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, -initHighlightingOnLoad:()=>{ -N(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") -},registerLanguage:(e,t)=>{let i=null;try{i=t(n)}catch(n){ -if(K("Language definition for '{}' could not be registered.".replace("{}",e)), -!s)throw n;K(n),i=l} -i.name||(i.name=e),a[e]=i,i.rawDefinition=t.bind(null,n),i.aliases&&O(i.aliases,{ -languageName:e})},unregisterLanguage:e=>{delete a[e] -;for(const n of Object.keys(i))i[n]===e&&delete i[n]}, -listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O, -autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{ -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ -e["before:highlightBlock"](Object.assign({block:n.el},n)) -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ -e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)} -}),n.debugMode=()=>{s=!1},n.safeMode=()=>{s=!0 -},n.versionString="11.6.0",n.regex={concat:m,lookahead:g,either:p,optional:b, -anyNumberOfTimes:u};for(const n in T)"object"==typeof T[n]&&e.exports(T[n]) -;return Object.assign(n,T),n})({});const te=e=>({IMPORTANT:{scope:"meta", -begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ -scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/}, -FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, -ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", -contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ -scope:"number", -begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", -relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/} -}),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],oe=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),le=re.concat(se) -;var ce="\\.([0-9](_*[0-9])*)",de="[0-9a-fA-F](_*[0-9a-fA-F])*",ge={ -className:"number",variants:[{ -begin:`(\\b([0-9](_*[0-9])*)((${ce})|\\.)?|(${ce}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:`\\b([0-9](_*[0-9])*)((${ce})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${ce})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ -begin:`\\b0[xX]((${de})\\.?|(${de})?\\.(${de}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${de})[lL]?\\b`},{ -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};function ue(e,n,t){return-1===t?"":e.replace(n,(a=>ue(e,n,t-1)))} -const be="[A-Za-z$_][0-9A-Za-z$_]*",me=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],pe=["true","false","null","undefined","NaN","Infinity"],_e=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],he=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],fe=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ee=["arguments","this","super","console","window","document","localStorage","module","global"],ye=[].concat(fe,_e,he) -;function we(e){const n=e.regex,t=be,a={begin:/<[A-Za-z0-9\\._:-]+/, -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ -const t=e[0].length+e.index,a=e.input[t] -;if("<"===a||","===a)return void n.ignoreMatch();let i -;">"===a&&(((e,{after:n})=>{const t="",k={ -match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)], -keywords:"async",className:{1:"keyword",3:"title.function"},contains:[_]} -;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{ -PARAMS_CONTAINS:p,CLASS_REFERENCE:f},illegal:/#(?![$_A-z])/, -contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ -label:"use_strict",className:"meta",relevance:10, -begin:/^\s*['"]use (strict|asm)['"]/ -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,d,g,u,o,f,{className:"attr", -begin:t+n.lookahead(":"),relevance:0},k,{ -begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", -keywords:"return throw case",relevance:0,contains:[u,e.REGEXP_MODE,{ -className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{ -className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{ -className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, -excludeEnd:!0,keywords:i,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/, -relevance:0},{variants:[{begin:"<>",end:""},{ -match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin, -"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{ -begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},E,{ -beginKeywords:"while if switch catch for"},{ -begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", -returnBegin:!0,label:"func.def",contains:[_,e.inherit(e.TITLE_MODE,{begin:t, -className:"title.function"})]},{match:/\.\.\./,relevance:0},N,{match:"\\$"+t, -relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, -contains:[_]},y,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},h,v,{match:/\$[(.]/}]}} -const Ne=e=>m(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ve=["Protocol","Type"].map(Ne),Oe=["init","self"].map(Ne),ke=["Any","Self"],xe=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Me=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ae=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],Ce=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Te=p(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Re=p(Te,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),De=m(Te,Re,"*"),Ie=p(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Le=p(Ie,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Be=m(Ie,Le,"*"),$e=m(/[A-Z]/,Le,"*"),ze=["autoclosure",m(/convention\(/,p("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",m(/objc\(/,Be,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],Fe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] -;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={ -begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} -;Object.assign(t,{className:"variable",variants:[{ -begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ -className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ -begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, -end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$\(\(/, -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] -},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 -}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, -contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ -name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, -keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"], -literal:["true","false"], -built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] -},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{ -className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}, -grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] -}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ -className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ -match:/\batomic_[a-z]{3,6}\b/}]},s={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ -className:"number",variants:[{begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" -},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ -className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0 -},d=n.optional(a)+e.IDENT_RE+"\\s*\\(",g={ -keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], -type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], -literal:"true false NULL", -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" -},u=[l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],b={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:g,contains:u.concat([{begin:/\(/,end:/\)/,keywords:g, -contains:u.concat(["self"]),relevance:0}]),relevance:0},m={ -begin:"("+i+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", -keywords:g,relevance:0},{begin:d,returnBegin:!0,contains:[e.inherit(c,{ -className:"title.function"})],relevance:0},{relevance:0,match:/,/},{ -className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0, -contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/,keywords:g, -relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}] -},r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C",aliases:["h"],keywords:g, -disableAutodetect:!0,illegal:"=]/,contains:[{ -beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l, -strings:s,keywords:g}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{ -contains:[{begin:/\\\n/}] -}),a="[a-zA-Z_]\\w*::",i="(?!struct)(decltype\\(auto\\)|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",r={ -className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ -className:"number",variants:[{begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" -},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(s,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},c={ -className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0 -},d=n.optional(a)+e.IDENT_RE+"\\s*\\(",g={ -type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], -keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], -literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], -_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] -},u={className:"function.dispatch",relevance:0,keywords:{ -_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] -}, -begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) -},b=[u,l,r,t,e.C_BLOCK_COMMENT_MODE,o,s],m={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:g,contains:b.concat([{begin:/\(/,end:/\)/,keywords:g, -contains:b.concat(["self"]),relevance:0}]),relevance:0},p={className:"function", -begin:"("+i+"[\\*&\\s]+)+"+d,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:g,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)", -keywords:g,relevance:0},{begin:d,returnBegin:!0,contains:[c],relevance:0},{ -begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[s,o]},{ -relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:g, -relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,s,o,r,{begin:/\(/,end:/\)/, -keywords:g,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,s,o,r]}] -},r,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:g,illegal:"",keywords:g,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:g},{ -match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], -className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ -keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], -literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ -begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ -begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] -},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/, -keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/, -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ -},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{ -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/, -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) -;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], -o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ -illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] -},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t] -},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={ -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ -begin:"\x3c!--|--\x3e"},{begin:""}]}] -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", -end:"$",keywords:{ -keyword:"if else elif endif define undef warning error line region endregion pragma checksum" -}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" -},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", -relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", -begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ -className:"string",begin:/"/,end:/"/}]},{ -beginKeywords:"new return throw await else",relevance:0},{className:"function", -begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", -relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params", -begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, -contains:[g,a,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{ -const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{ -name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{ -keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"}, -contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ -},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 -},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ -begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}] -},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{ -begin:/:/,end:/[;}{]/, -contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" -},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, -excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", -relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ -},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{ -begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ -className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{ -const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{ -className:"meta",relevance:10, -match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) -},{className:"comment",variants:[{ -begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), -end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, -end:/$/}]}},grmr_go:e=>{const n={ -keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], -type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], -literal:["true","false","iota","nil"], -built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{const n=e.regex;return{name:"GraphQL",aliases:["gql"], -case_insensitive:!0,disableAutodetect:!1,keywords:{ -keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], -literal:["true","false","null"]}, -contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ -scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", -begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, -end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ -scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)), -relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={ -className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ -begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/, -end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ -begin:/\$\{(.*?)\}/}]},r={className:"literal", -begin:/\bon|off|true|false|yes|no\b/},s={className:"string", -contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ -begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] -},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0 -},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ -name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, -contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ -begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), -className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ -const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+ue("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed"], -literal:["false","true","null"], -type:["char","boolean","long","float","int","byte","short","double"], -built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ -begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} -;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, -className:"string",contains:[e.BACKSLASH_ESCAPE] -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ -match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ -1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ -begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", -3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", -3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"new throw return else",relevance:0},{ -begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ -2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0, -contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ge,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ge,r]}},grmr_javascript:we, -grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", -beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{ -className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{ -match:/[{}[\],:]/,className:"punctuation",relevance:0 -},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], -illegal:"\\S"}},grmr_kotlin:e=>{const n={ -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", -literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" -},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={ -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'", -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, -contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={ -className:"meta", -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" -},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, -end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] -},l=ge,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={ -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, -contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g], -{name:"Kotlin",aliases:["kt","kts"],keywords:n, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword", -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", -begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$", -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, -endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0 -},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{ -begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ -3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, -illegal:"extends implements",contains:[{ -beginKeywords:"public protected internal private constructor" -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, -excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env", -end:"$",illegal:"\n"},l]}},grmr_less:e=>{ -const n=te(e),t=le,a="([\\w-]+|@\\{[\\w-]+\\})",i=[],r=[],s=e=>({ -className:"string",begin:"~?"+e+".*?"+e}),o=(e,n,t)=>({className:e,begin:n, -relevance:t}),l={$pattern:/[a-z-]+/,keyword:"and or not only", -attribute:ie.join(" ")},c={begin:"\\(",end:"\\)",contains:r,keywords:l, -relevance:0} -;r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),n.CSS_NUMBER_MODE,{ -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", -excludeEnd:!0} -},n.HEXCOLOR,c,o("variable","@@?[\\w-]+",10),o("variable","@\\{[\\w-]+\\}"),o("built_in","~?`[^`]*?`"),{ -className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 -},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const d=r.concat({ -begin:/\{/,end:/\}/,contains:i}),g={beginKeywords:"when",endsWithParent:!0, -contains:[{beginKeywords:"and not"}].concat(r)},u={begin:a+"\\s*:", -returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ -},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b", -end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:r}}] -},b={className:"keyword", -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", -starts:{end:"[;{}]",keywords:l,returnEnd:!0,contains:r,relevance:0}},m={ -className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ -begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:d}},p={variants:[{ -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0, -returnEnd:!0,illegal:"[<='$\"]",relevance:0, -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,g,o("keyword","all\\b"),o("variable","@\\{[\\w-]+\\}"),{ -begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag" -},n.CSS_NUMBER_MODE,o("selector-tag",a,0),o("selector-id","#"+a),o("selector-class","\\."+a,0),o("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{ -className:"selector-pseudo",begin:":("+re.join("|")+")"},{ -className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/, -end:/\)/,relevance:0,contains:d},{begin:"!important"},n.FUNCTION_DISPATCH]},_={ -begin:`[\\w-]+:(:)?(${t.join("|")})`,returnBegin:!0,contains:[p]} -;return i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,b,m,_,u,p,g,n.FUNCTION_DISPATCH), -{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:i}}, -grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] -},i=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",t,{contains:[a], -relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, -literal:"true false nil", -keyword:"and break do else elseif end for goto if in local not or repeat return then until while", -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" -},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)", -contains:[e.inherit(e.TITLE_MODE,{ -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", -begin:"\\(",endsWithParent:!0,contains:i}].concat(i) -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", -begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={ -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{ -const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={ -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/, -contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] -},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{ -className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={ -endsWithParent:!0,illegal:/`]+/}]}]}]};return{ -name:"HTML, XML", -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], -case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{ -className:"meta",begin://,contains:[i,r,o,s]}]}] -},e.COMMENT(//,{relevance:10}),{begin://, -relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, -relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{ -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{ -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ -className:"tag",begin:/<>|<\/>/},{className:"tag", -begin:n.concat(//,/>/,/\s/)))), -end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{ -className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ -className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} -},grmr_markdown:e=>{const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml", -relevance:0},t={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{ -begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, -relevance:2},{ -begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ -begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ -},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},i={ -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ -begin:/_(?!_)/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] -}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) -;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) -})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", -contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", -end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o, -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ -begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{ -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n, -keyword:["@interface","@class","@protocol","@implementation"]};return{ -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], -keywords:{"variable.language":["this","super"],$pattern:n, -keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], -literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], -built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], -type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] -},illegal:"/,end:/$/,illegal:"\\n" -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", -begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t, -contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, -relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={ -$pattern:/[\w.]+/, -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/, -end:/\}/},s={variants:[{begin:/\$\d/},{ -begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") -},{begin:/[$%@][^\s\w{]/,relevance:0}] -},o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{ -const r="\\1"===i?i:n.concat(i,a) -;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t) -},d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ -endsWithParent:!0}),r,{className:"string",contains:o,variants:[{ -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", -relevance:0},{ -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", -keywords:"split return print reverse grep",relevance:0, -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ -begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{ -begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{ -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0 -}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] -}];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a, -contains:g}},grmr_php:e=>{ -const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={ -scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{ -begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null -}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ -illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s) -}),o,e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, -contains:e.QUOTE_STRING_MODE.contains.concat(s)})]},d={scope:"number", -variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{ -begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ -begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" -}],relevance:0 -},g=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={ -keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{ -n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) -})),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{ -match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{ -1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{ -match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" -}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ -match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", -3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))], -scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class", -3:"variable.language"}}]},E={scope:"attr", -match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0, -begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_] -},w={relevance:0, -match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)], -scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(w) -;const N=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1, -keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/, -endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{ -begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]}, -contains:["self",...N]},...N,{scope:"meta",match:i}] -},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ -scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, -keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, -contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ -begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ -begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,w,f,{ -match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{ -scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, -excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" -},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", -begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m, -contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{ -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ -beginKeywords:"use",relevance:0,end:";",contains:[{ -match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]} -},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{ -begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*", -end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0 -},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null, -skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null, -contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text", -aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{ -const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ -$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] -},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/, -end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={ -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, -end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/, -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, -contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] -},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={ -className:"number",relevance:0,variants:[{ -begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{ -begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{ -begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})` -},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})` -}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, -contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ -className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, -end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, -contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{ -name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, -illegal:/(<\/|->|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if", -relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{ -1:"keyword",3:"title.function"},contains:[m]},{variants:[{ -match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], -scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ -className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}}, -grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt", -starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{ -begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{ -const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) -;return{name:"R",keywords:{$pattern:t, -keyword:"function if in break next repeat else for while", -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" -},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, -starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), -endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ -scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 -}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] -}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], -variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', -relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ -1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"}, -match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{ -2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"}, -match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ -match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", -contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ -const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ -"variable.constant":["__FILE__","__LINE__"], -"variable.language":["self","super"], -keyword:["alias","and","attr_accessor","attr_reader","attr_writer","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","include","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield"], -built_in:["proc","lambda"],literal:["true","false","nil"]},s={ -className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">" -},l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{ -contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={ -className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string", -contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/, -end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{ -begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/, -end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ -begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ -begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), -contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, -contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number", -relevance:0,variants:[{ -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ -begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ -className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, -keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ -match:[/class\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"}, -keywords:r},{relevance:0,match:[i,/\.new[ (]/],scope:{1:"title.class"}},{ -relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{ -match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ -begin:e.IDENT_RE+"::"},{className:"symbol", -begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", -begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable", -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ -className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, -relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", -keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c], -illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ -begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", -end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l) -;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m} -},{className:"meta.prompt", -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", -starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby", -aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, -contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}}, -grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0, -begin:n.concat(/\b/,/(?!let\b)/,e.IDENT_RE,n.lookahead(/\s*\(/)) -},a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, -keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], -literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},t]}}, -grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable", -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", -case_insensitive:!0,illegal:"[=/|']", -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{ -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", -begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo", -begin:":("+a.join("|")+")"},{className:"selector-pseudo", -begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/, -contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute", -begin:"\\b("+oe.join("|")+")\\b"},{ -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" -},{begin:/:/,end:/[;}{]/,relevance:0, -contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH] -},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{ -begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, -keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i, -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" -},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE] -},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session", -aliases:["console","shellsession"],contains:[{className:"meta.prompt", -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, -subLanguage:"bash"}}]}),grmr_sql:e=>{ -const n=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={ -begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} -;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ -$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t -;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) -})(l,{when:e=>e.length<3}),literal:a,type:i, -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] -},contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, -keyword:l.concat(s),literal:a,type:i}},{className:"type", -begin:n.either("double precision","large object","with timezone","without timezone") -},c,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ -begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ -begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator", -begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}, -grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{ -contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,p(...ve,...Oe)], -className:{2:"keyword"}},r={match:m(/\./,p(...xe)),relevance:0 -},s=xe.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{ -className:"keyword", -match:p(...xe.filter((e=>"string"!=typeof e)).concat(ke).map(Ne),...Oe)}]},l={ -$pattern:p(/\b\w+/,/#\w+/),keyword:s.concat(Ae),literal:Me},c=[i,r,o],d=[{ -match:m(/\./,p(...Ce)),relevance:0},{className:"built_in", -match:m(/\b/,p(...Ce),/(?=\()/)}],u={match:/->/,relevance:0},b=[u,{ -className:"operator",relevance:0,variants:[{match:De},{match:`\\.(\\.|${Re})+`}] -}],_="([0-9a-fA-F]_*)+",h={className:"number",relevance:0,variants:[{ -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ -match:`\\b0x(${_})(\\.(${_}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},f=(e="")=>({ -className:"subst",variants:[{match:m(/\\/,e,/[0\\tnr"']/)},{ -match:m(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),E=(e="")=>({className:"subst", -match:m(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),y=(e="")=>({className:"subst", -label:"interpol",begin:m(/\\/,e,/\(/),end:/\)/}),w=(e="")=>({begin:m(e,/"""/), -end:m(/"""/,e),contains:[f(e),E(e),y(e)]}),N=(e="")=>({begin:m(e,/"/), -end:m(/"/,e),contains:[f(e),y(e)]}),v={className:"string", -variants:[w(),w("#"),w("##"),w("###"),N(),N("#"),N("##"),N("###")]},O={ -match:m(/`/,Be,/`/)},k=[O,{className:"variable",match:/\$\d+/},{ -className:"variable",match:`\\$${Le}+`}],x=[{match:/(@|#(un)?)available/, -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:Fe, -contains:[...b,h,v]}]}},{className:"keyword",match:m(/@/,p(...ze))},{ -className:"meta",match:m(/@/,Be)}],M={match:g(/\b[A-Z]/),relevance:0,contains:[{ -className:"type", -match:m(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Le,"+") -},{className:"type",match:$e,relevance:0},{match:/[?!]+/,relevance:0},{ -match:/\.\.\./,relevance:0},{match:m(/\s+&\s+/,g($e)),relevance:0}]},S={ -begin://,keywords:l,contains:[...a,...c,...x,u,M]};M.contains.push(S) -;const A={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{ -match:m(Be,/\s*:/),keywords:"_|0",relevance:0 -},...a,...c,...d,...b,h,v,...k,...x,M]},C={begin://,contains:[...a,M] -},T={begin:/\(/,end:/\)/,keywords:l,contains:[{ -begin:p(g(m(Be,/\s*:/)),g(m(Be,/\s+/,Be,/\s*:/))),end:/:/,relevance:0, -contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Be}] -},...a,...c,...b,h,v,...x,M,A],endsParent:!0,illegal:/["']/},R={ -match:[/func/,/\s+/,p(O.match,Be,De)],className:{1:"keyword",3:"title.function" -},contains:[C,T,n],illegal:[/\[/,/%/]},D={ -match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, -contains:[C,T,n],illegal:/\[|%/},I={match:[/operator/,/\s+/,De],className:{ -1:"keyword",3:"title"}},L={begin:[/precedencegroup/,/\s+/,$e],className:{ -1:"keyword",3:"title"},contains:[M],keywords:[...Se,...Me],end:/}/} -;for(const e of v.variants){const n=e.contains.find((e=>"interpol"===e.label)) -;n.keywords=l;const t=[...c,...d,...b,h,v,...k];n.contains=[...t,{begin:/\(/, -end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l, -contains:[...a,R,D,{beginKeywords:"struct protocol class extension enum actor", -end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{ -className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c] -},I,L,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0 -},...c,...d,...b,h,v,...k,...x,M,A]}},grmr_typescript:e=>{ -const n=we(e),t=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],a={ -beginKeywords:"namespace",end:/\{/,excludeEnd:!0, -contains:[n.exports.CLASS_REFERENCE]},i={beginKeywords:"interface",end:/\{/, -excludeEnd:!0,keywords:{keyword:"interface extends",built_in:t}, -contains:[n.exports.CLASS_REFERENCE]},r={$pattern:be, -keyword:me.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), -literal:pe,built_in:ye.concat(t),"variable.language":Ee},s={className:"meta", -begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},o=(e,n,t)=>{ -const a=e.contains.findIndex((e=>e.label===n)) -;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} -;return Object.assign(n.keywords,r), -n.exports.PARAMS_CONTAINS.push(s),n.contains=n.contains.concat([s,a,i]), -o(n,"shebang",e.SHEBANG()),o(n,"use_strict",{className:"meta",relevance:10, -begin:/^\s*['"]use strict['"]/ -}),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{ -name:"TypeScript",aliases:["ts","tsx"]}),n},grmr_vbnet:e=>{ -const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={ -className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ -begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ -begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}] -},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] -}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) -;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, -classNameAliases:{label:"symbol"},keywords:{ -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", -literal:"true false nothing"}, -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0, -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ -className:"label",begin:/^\w+:/},o,l,{className:"meta", -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, -end:/$/,keywords:{ -keyword:"const disable else elseif enable end externalsource if region then"}, -contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/) -;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, -keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] -},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/], -className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ -match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ -begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", -3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, -className:"type"},{className:"keyword", -match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ -},{className:"number",relevance:0, -match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ -}]}},grmr_yaml:e=>{ -const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{ -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={ -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/, -end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]", -contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{ -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", -relevance:10},{className:"string", -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, -relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", -begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ -className:"number", -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l] -;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0, -aliases:["yml"],contains:l}}});const je=ne;for(const e of Object.keys(Ue)){ -const n=e.replace("grmr_","").replace("_","-");je.registerLanguage(n,Ue[e])} -return je}() -;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.2/base64.min.js b/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.2/base64.min.js deleted file mode 100644 index 5e1e77a2fc23e50db6ebd4a68434fde9908d6e02..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.2/base64.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Minified by jsDelivr using Terser v5.7.1. - * Original file: /npm/js-base64@3.7.2/base64.js - * - * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files - */ -!function(t,n){var r,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(r=t.Base64,(e=n()).noConflict=function(){return t.Base64=r,e},t.Meteor&&(Base64=e),t.Base64=e)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";var t,n="3.7.2",r="function"==typeof atob,e="function"==typeof btoa,o="function"==typeof Buffer,u="function"==typeof TextDecoder?new TextDecoder:void 0,i="function"==typeof TextEncoder?new TextEncoder:void 0,f=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),c=(t={},f.forEach((function(n,r){return t[n]=r})),t),a=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,d=String.fromCharCode.bind(String),s="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t,n){return void 0===n&&(n=function(t){return t}),new Uint8Array(Array.prototype.slice.call(t,0).map(n))},l=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},h=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},p=function(t){for(var n,r,e,o,u="",i=t.length%3,c=0;c255||(e=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");u+=f[(n=r<<16|e<<8|o)>>18&63]+f[n>>12&63]+f[n>>6&63]+f[63&n]}return i?u.slice(0,i-3)+"===".substring(i):u},y=e?function(t){return btoa(t)}:o?function(t){return Buffer.from(t,"binary").toString("base64")}:p,A=o?function(t){return Buffer.from(t).toString("base64")}:function(t){for(var n=[],r=0,e=t.length;r>>6)+d(128|63&n):d(224|n>>>12&15)+d(128|n>>>6&63)+d(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return d(240|n>>>18&7)+d(128|n>>>12&63)+d(128|n>>>6&63)+d(128|63&n)},B=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,x=function(t){return t.replace(B,g)},C=o?function(t){return Buffer.from(t,"utf8").toString("base64")}:i?function(t){return A(i.encode(t))}:function(t){return y(x(t))},m=function(t,n){return void 0===n&&(n=!1),n?l(C(t)):C(t)},v=function(t){return m(t,!0)},U=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,F=function(t){switch(t.length){case 4:var n=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return d(55296+(n>>>10))+d(56320+(1023&n));case 3:return d((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return d((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},w=function(t){return t.replace(U,F)},S=function(t){if(t=t.replace(/\s+/g,""),!a.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var n,r,e,o="",u=0;u>16&255):64===e?d(n>>16&255,n>>8&255):d(n>>16&255,n>>8&255,255&n);return o},E=r?function(t){return atob(h(t))}:o?function(t){return Buffer.from(t,"base64").toString("binary")}:S,D=o?function(t){return s(Buffer.from(t,"base64"))}:function(t){return s(E(t),(function(t){return t.charCodeAt(0)}))},R=function(t){return D(T(t))},z=o?function(t){return Buffer.from(t,"base64").toString("utf8")}:u?function(t){return u.decode(D(t))}:function(t){return w(E(t))},T=function(t){return h(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},Z=function(t){return z(T(t))},j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},I=function(){var t=function(t,n){return Object.defineProperty(String.prototype,t,j(n))};t("fromBase64",(function(){return Z(this)})),t("toBase64",(function(t){return m(this,t)})),t("toBase64URI",(function(){return m(this,!0)})),t("toBase64URL",(function(){return m(this,!0)})),t("toUint8Array",(function(){return R(this)}))},O=function(){var t=function(t,n){return Object.defineProperty(Uint8Array.prototype,t,j(n))};t("toBase64",(function(t){return b(this,t)})),t("toBase64URI",(function(){return b(this,!0)})),t("toBase64URL",(function(){return b(this,!0)}))},P={version:n,VERSION:"3.7.2",atob:E,atobPolyfill:S,btoa:y,btoaPolyfill:p,fromBase64:Z,toBase64:m,encode:m,encodeURI:v,encodeURL:v,utob:x,btou:w,decode:Z,isValid:function(t){if("string"!=typeof t)return!1;var n=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(n)||!/[^\s0-9a-zA-Z\-_]/.test(n)},fromUint8Array:b,toUint8Array:R,extendString:I,extendUint8Array:O,extendBuiltins:function(){I(),O()},Base64:{}};return Object.keys(P).forEach((function(t){return P.Base64[t]=P[t]})),P})); -//# sourceMappingURL=/sm/79de78edcfa94236e4c8354f91262971e185c3633bb865b6fc17942e93a40207.map \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.7/base64.min.js b/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.7/base64.min.js new file mode 100644 index 0000000000000000000000000000000000000000..b7a54a22bca31d99910e4e396c82a9cbbef760ad --- /dev/null +++ b/src/main/resources/META-INF/resources/file/preview/static/js-base64/3.7.7/base64.min.js @@ -0,0 +1,8 @@ +/** + * Minified by jsDelivr using Terser v5.19.2. + * Original file: /npm/js-base64@3.7.7/base64.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(t,n){var r,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(r=t.Base64,(e=n()).noConflict=function(){return t.Base64=r,e},t.Meteor&&(Base64=e),t.Base64=e)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";var t,n="3.7.7",r=n,e="function"==typeof Buffer,o="function"==typeof TextDecoder?new TextDecoder:void 0,u="function"==typeof TextEncoder?new TextEncoder:void 0,i=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),f=(t={},i.forEach((function(n,r){return t[n]=r})),t),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,a=String.fromCharCode.bind(String),d="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t){return new Uint8Array(Array.prototype.slice.call(t,0))},s=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},l=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},h=function(t){for(var n,r,e,o,u="",f=t.length%3,c=0;c255||(e=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");u+=i[(n=r<<16|e<<8|o)>>18&63]+i[n>>12&63]+i[n>>6&63]+i[63&n]}return f?u.slice(0,f-3)+"===".substring(f):u},p="function"==typeof btoa?function(t){return btoa(t)}:e?function(t){return Buffer.from(t,"binary").toString("base64")}:h,y=e?function(t){return Buffer.from(t).toString("base64")}:function(t){for(var n=[],r=0,e=t.length;r>>6)+a(128|63&n):a(224|n>>>12&15)+a(128|n>>>6&63)+a(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return a(240|n>>>18&7)+a(128|n>>>12&63)+a(128|n>>>6&63)+a(128|63&n)},g=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,B=function(t){return t.replace(g,b)},x=e?function(t){return Buffer.from(t,"utf8").toString("base64")}:u?function(t){return y(u.encode(t))}:function(t){return p(B(t))},C=function(t,n){return void 0===n&&(n=!1),n?s(x(t)):x(t)},m=function(t){return C(t,!0)},v=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,U=function(t){switch(t.length){case 4:var n=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return a(55296+(n>>>10))+a(56320+(1023&n));case 3:return a((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return a((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},F=function(t){return t.replace(v,U)},w=function(t){if(t=t.replace(/\s+/g,""),!c.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var n,r,e,o="",u=0;u>16&255):64===e?a(n>>16&255,n>>8&255):a(n>>16&255,n>>8&255,255&n);return o},S="function"==typeof atob?function(t){return atob(l(t))}:e?function(t){return Buffer.from(t,"base64").toString("binary")}:w,E=e?function(t){return d(Buffer.from(t,"base64"))}:function(t){return d(S(t).split("").map((function(t){return t.charCodeAt(0)})))},D=function(t){return E(z(t))},R=e?function(t){return Buffer.from(t,"base64").toString("utf8")}:o?function(t){return o.decode(E(t))}:function(t){return F(S(t))},z=function(t){return l(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},T=function(t){return R(z(t))},Z=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},j=function(){var t=function(t,n){return Object.defineProperty(String.prototype,t,Z(n))};t("fromBase64",(function(){return T(this)})),t("toBase64",(function(t){return C(this,t)})),t("toBase64URI",(function(){return C(this,!0)})),t("toBase64URL",(function(){return C(this,!0)})),t("toUint8Array",(function(){return D(this)}))},I=function(){var t=function(t,n){return Object.defineProperty(Uint8Array.prototype,t,Z(n))};t("toBase64",(function(t){return A(this,t)})),t("toBase64URI",(function(){return A(this,!0)})),t("toBase64URL",(function(){return A(this,!0)}))},O={version:n,VERSION:r,atob:S,atobPolyfill:w,btoa:p,btoaPolyfill:h,fromBase64:T,toBase64:C,encode:C,encodeURI:m,encodeURL:m,utob:B,btou:F,decode:T,isValid:function(t){if("string"!=typeof t)return!1;var n=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(n)||!/[^\s0-9a-zA-Z\-_]/.test(n)},fromUint8Array:A,toUint8Array:D,extendString:j,extendUint8Array:I,extendBuiltins:function(){j(),I()},Base64:{}};return Object.keys(O).forEach((function(t){return O.Base64[t]=O[t]})),O})); +//# sourceMappingURL=/sm/b3f991b414b0fa1b0799af2a7f930299e529ee04d4e0dc56fb33a5bfd532f984.map \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/marked/4.2.1/marked.min.js b/src/main/resources/META-INF/resources/file/preview/static/marked/4.2.1/marked.min.js deleted file mode 100644 index 33afe06797359c7a0d5dfcc5b568839338ad9883..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/marked/4.2.1/marked.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * marked - a markdown parser - * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed) - * https://github.com/markedjs/marked - */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).marked={})}(this,function(r){"use strict";function i(e,t){for(var u=0;ue.length)&&(t=e.length);for(var u=0,n=new Array(t);u=e.length?{done:!0}:{done:!1,value:e[u++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}r.defaults=e();function u(e){return t[e]}var n=/[&<>"']/,l=/[&<>"']/g,a=/[<>"']|&(?!#?\w+;)/,o=/[<>"']|&(?!#?\w+;)/g,t={"&":"&","<":"<",">":">",'"':""","'":"'"};function D(e,t){if(t){if(n.test(e))return e.replace(l,u)}else if(a.test(e))return e.replace(o,u);return e}var c=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function x(e){return e.replace(c,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}var h=/(^|[^\[])\^/g;function p(u,e){u="string"==typeof u?u:u.source,e=e||"";var n={replace:function(e,t){return t=(t=t.source||t).replace(h,"$1"),u=u.replace(e,t),n},getRegex:function(){return new RegExp(u,e)}};return n}var f=/[^\w:]/g,Z=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function g(e,t,u){if(e){try{n=decodeURIComponent(x(u)).replace(f,"").toLowerCase()}catch(e){return null}if(0===n.indexOf("javascript:")||0===n.indexOf("vbscript:")||0===n.indexOf("data:"))return null}var n;t&&!Z.test(u)&&(e=u,F[" "+(n=t)]||(O.test(n)?F[" "+n]=n+"/":F[" "+n]=k(n,"/",!0)),t=-1===(n=F[" "+n]).indexOf(":"),u="//"===e.substring(0,2)?t?e:n.replace(q,"$1")+e:"/"===e.charAt(0)?t?e:n.replace(L,"$1")+e:n+e);try{u=encodeURI(u).replace(/%25/g,"%")}catch(e){return null}return u}var F={},O=/^[^:]+:\/*[^/]*$/,q=/^([^:]+:)[\s\S]*$/,L=/^([^:]+:\/*[^/]*)[\s\S]*$/;var A={exec:function(){}};function d(e){for(var t,u,n=1;nt)u.splice(t);else for(;u.length>=1,e+=e;return u+e}function b(e,t,u,n){var r=t.href,t=t.title?D(t.title):null,i=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?(n.state.inLink=!0,e={type:"link",raw:u,href:r,title:t,text:i,tokens:n.inlineTokens(i)},n.state.inLink=!1,e):{type:"image",raw:u,href:r,title:t,text:D(i)}}var w=function(){function e(e){this.options=e||r.defaults}var t=e.prototype;return t.space=function(e){e=this.rules.block.newline.exec(e);if(e&&0=r.length?e.slice(r.length):e}).join("\n")),{type:"code",raw:t,lang:e[2]&&e[2].trim(),text:u}},t.heading=function(e){var t,u,e=this.rules.block.heading.exec(e);if(e)return t=e[2].trim(),/#$/.test(t)&&(u=k(t,"#"),!this.options.pedantic&&u&&!/ $/.test(u)||(t=u.trim())),{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}},t.hr=function(e){e=this.rules.block.hr.exec(e);if(e)return{type:"hr",raw:e[0]}},t.blockquote=function(e){var t,e=this.rules.block.blockquote.exec(e);if(e)return t=e[0].replace(/^ *>[ \t]?/gm,""),{type:"blockquote",raw:e[0],tokens:this.lexer.blockTokens(t,[]),text:t}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var u,n,r,i,s,l,a,o,D,c,h,p=1<(g=t[1].trim()).length,f={type:"list",raw:"",ordered:p,start:p?+g.slice(0,-1):"",loose:!1,items:[]},g=p?"\\d{1,9}\\"+g.slice(-1):"\\"+g;this.options.pedantic&&(g=p?g:"[*+-]");for(var F=new RegExp("^( {0,3}"+g+")((?:[\t ][^\\n]*)?(?:\\n|$))");e&&(h=!1,t=F.exec(e))&&!this.rules.block.hr.test(e);){if(u=t[0],e=e.substring(u.length),a=t[2].split("\n",1)[0],o=e.split("\n",1)[0],this.options.pedantic?(i=2,c=a.trimLeft()):(i=t[2].search(/[^ ]/),c=a.slice(i=4=i||!a.trim())c+="\n"+a.slice(i);else{if(s)break;c+="\n"+a}s||a.trim()||(s=!0),u+=D+"\n",e=e.substring(D.length+1)}f.loose||(l?f.loose=!0:/\n *\n *$/.test(u)&&(l=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(c))&&(r="[ ] "!==n[0],c=c.replace(/^\[[ xX]\] +/,"")),f.items.push({type:"list_item",raw:u,task:!!n,checked:r,loose:!1,text:c}),f.raw+=u}f.items[f.items.length-1].raw=u.trimRight(),f.items[f.items.length-1].text=c.trimRight(),f.raw=f.raw.trimRight();for(var E=f.items.length,x=0;x/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):D(e[0]):e[0]}},t.link=function(e){e=this.rules.inline.link.exec(e);if(e){var t=e[2].trim();if(!this.options.pedantic&&/^$/.test(t))return;var u=k(t.slice(0,-1),"\\");if((t.length-u.length)%2==0)return}else{u=function(e,t){if(-1!==e.indexOf(t[1]))for(var u=e.length,n=0,r=0;r$/.test(t)?u.slice(1):u.slice(1,-1):u)&&u.replace(this.rules.inline._escapes,"$1"),title:r&&r.replace(this.rules.inline._escapes,"$1")},e[0],this.lexer)}},t.reflink=function(e,t){var u;if(u=(u=this.rules.inline.reflink.exec(e))||this.rules.inline.nolink.exec(e))return(e=t[(e=(u[2]||u[1]).replace(/\s+/g," ")).toLowerCase()])&&e.href?b(u,e,u[0],this.lexer):{type:"text",raw:t=u[0].charAt(0),text:t}},t.emStrong=function(e,t,u){void 0===u&&(u="");var n=this.rules.inline.emStrong.lDelim.exec(e);if(n&&(!n[3]||!u.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var r=n[1]||n[2]||"";if(!r||""===u||this.rules.inline.punctuation.exec(u)){var i=n[0].length-1,s=i,l=0,a="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(a.lastIndex=0,t=t.slice(-1*e.length+i);null!=(n=a.exec(t));){var o,D=n[1]||n[2]||n[3]||n[4]||n[5]||n[6];if(D)if(o=D.length,n[3]||n[4])s+=o;else if((n[5]||n[6])&&i%3&&!((i+o)%3))l+=o;else if(!(0<(s-=o)))return o=Math.min(o,o+s+l),D=e.slice(0,i+n.index+(n[0].length-D.length)+o),Math.min(i,o)%2?(o=D.slice(1,-1),{type:"em",raw:D,text:o,tokens:this.lexer.inlineTokens(o)}):(o=D.slice(2,-2),{type:"strong",raw:D,text:o,tokens:this.lexer.inlineTokens(o)})}}}},t.codespan=function(e){var t,u,n,e=this.rules.inline.code.exec(e);if(e)return n=e[2].replace(/\n/g," "),t=/[^ ]/.test(n),u=/^ /.test(n)&&/ $/.test(n),n=D(n=t&&u?n.substring(1,n.length-1):n,!0),{type:"codespan",raw:e[0],text:n}},t.br=function(e){e=this.rules.inline.br.exec(e);if(e)return{type:"br",raw:e[0]}},t.del=function(e){e=this.rules.inline.del.exec(e);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}},t.autolink=function(e,t){var u,e=this.rules.inline.autolink.exec(e);if(e)return t="@"===e[2]?"mailto:"+(u=D(this.options.mangle?t(e[1]):e[1])):u=D(e[1]),{type:"link",raw:e[0],text:u,href:t,tokens:[{type:"text",raw:u,text:u}]}},t.url=function(e,t){var u,n,r,i;if(u=this.rules.inline.url.exec(e)){if("@"===u[2])r="mailto:"+(n=D(this.options.mangle?t(u[0]):u[0]));else{for(;i=u[0],u[0]=this.rules.inline._backpedal.exec(u[0])[0],i!==u[0];);n=D(u[0]),r="www."===u[1]?"http://"+n:n}return{type:"link",raw:u[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}},t.inlineText=function(e,t){e=this.rules.inline.text.exec(e);if(e)return t=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):D(e[0]):e[0]:D(this.options.smartypants?t(e[0]):e[0]),{type:"text",raw:e[0],text:t}},e}(),y={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:A,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/},v=(y.def=p(y.def).replace("label",y._label).replace("title",y._title).getRegex(),y.bullet=/(?:[*+-]|\d{1,9}[.)])/,y.listItemStart=p(/^( *)(bull) */).replace("bull",y.bullet).getRegex(),y.list=p(y.list).replace(/bull/g,y.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+y.def.source+")").getRegex(),y._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",y._comment=/|$)/,y.html=p(y.html,"i").replace("comment",y._comment).replace("tag",y._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),y.paragraph=p(y._paragraph).replace("hr",y.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",y._tag).getRegex(),y.blockquote=p(y.blockquote).replace("paragraph",y.paragraph).getRegex(),y.normal=d({},y),y.gfm=d({},y.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),y.gfm.table=p(y.gfm.table).replace("hr",y.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",y._tag).getRegex(),y.gfm.paragraph=p(y._paragraph).replace("hr",y.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",y.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",y._tag).getRegex(),y.pedantic=d({},y.normal,{html:p("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",y._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:A,paragraph:p(y.normal._paragraph).replace("hr",y.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",y.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()}),{escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:A,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:A,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~",v.punctuation=p(v.punctuation).replace(/punctuation/g,v._punctuation).getRegex(),v.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,v.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,v._comment=p(y._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),v.emStrong.lDelim=p(v.emStrong.lDelim).replace(/punct/g,v._punctuation).getRegex(),v.emStrong.rDelimAst=p(v.emStrong.rDelimAst,"g").replace(/punct/g,v._punctuation).getRegex(),v.emStrong.rDelimUnd=p(v.emStrong.rDelimUnd,"g").replace(/punct/g,v._punctuation).getRegex(),v._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,v._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,v._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,v.autolink=p(v.autolink).replace("scheme",v._scheme).replace("email",v._email).getRegex(),v._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,v.tag=p(v.tag).replace("comment",v._comment).replace("attribute",v._attribute).getRegex(),v._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,v._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,v._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,v.link=p(v.link).replace("label",v._label).replace("href",v._href).replace("title",v._title).getRegex(),v.reflink=p(v.reflink).replace("label",v._label).replace("ref",y._label).getRegex(),v.nolink=p(v.nolink).replace("ref",y._label).getRegex(),v.reflinkSearch=p(v.reflinkSearch,"g").replace("reflink",v.reflink).replace("nolink",v.nolink).getRegex(),v.normal=d({},v),v.pedantic=d({},v.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:p(/^!?\[(label)\]\((.*?)\)/).replace("label",v._label).getRegex(),reflink:p(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",v._label).getRegex()}),v.gfm=d({},v.normal,{escape:p(v.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\'+(u?e:D(e,!0))+"\n":"
      "+(u?e:D(e,!0))+"
      \n"},t.blockquote=function(e){return"
      \n"+e+"
      \n"},t.html=function(e){return e},t.heading=function(e,t,u,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
      \n":"
      \n"},t.list=function(e,t,u){var n=t?"ol":"ul";return"<"+n+(t&&1!==u?' start="'+u+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
    • "+e+"
    • \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return"

      "+e+"

      \n"},t.table=function(e,t){return"\n\n"+e+"\n"+(t=t&&""+t+"")+"
      \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var u=t.header?"th":"td";return(t.align?"<"+u+' align="'+t.align+'">':"<"+u+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
      ":"
      "},t.del=function(e){return""+e+""},t.link=function(e,t,u){return null===(e=g(this.options.sanitize,this.options.baseUrl,e))?u:(e='"+u+"")},t.image=function(e,t,u){return null===(e=g(this.options.sanitize,this.options.baseUrl,e))?u:(e=''+u+'":">"))},t.text=function(e){return e},e}(),S=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,u){return""+u},t.image=function(e,t,u){return""+u},t.br=function(){return""},e}(),T=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var u=e,n=0;if(this.seen.hasOwnProperty(u))for(n=this.seen[e];u=e+"-"+ ++n,this.seen.hasOwnProperty(u););return t||(this.seen[e]=n,this.seen[u]=0),u},t.slug=function(e,t){void 0===t&&(t={});e=this.serialize(e);return this.getNextSafeSlug(e,t.dryrun)},e}(),R=function(){function u(e){this.options=e||r.defaults,this.options.renderer=this.options.renderer||new $,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new S,this.slugger=new T}u.parse=function(e,t){return new u(t).parse(e)},u.parseInline=function(e,t){return new u(t).parseInline(e)};var e=u.prototype;return e.parse=function(e,t){void 0===t&&(t=!0);for(var u,n,r,i,s,l,a,o,D,c,h,p,f,g,F,A,d="",C=e.length,k=0;kAn error occurred:

      "+D(e.message+"",!0)+"
      ";throw e}try{var a=z.lex(e,u);if(u.walkTokens){if(u.async)return Promise.all(I.walkTokens(a,u.walkTokens)).then(function(){return R.parse(a,u)}).catch(t);I.walkTokens(a,u.walkTokens)}return R.parse(a,u)}catch(e){t(e)}}I.options=I.setOptions=function(e){return d(I.defaults,e),e=I.defaults,r.defaults=e,I},I.getDefaults=e,I.defaults=r.defaults,I.use=function(){for(var e=arguments.length,t=new Array(e),u=0;uAn error occurred:

      "+D(e.message+"",!0)+"
      ";throw e}},I.Parser=R,I.parser=R.parse,I.Renderer=$,I.TextRenderer=S,I.Lexer=z,I.lexer=z.lex,I.Tokenizer=w,I.Slugger=T;var A=(I.parse=I).options,P=I.setOptions,Q=I.use,U=I.walkTokens,M=I.parseInline,N=I,X=R.parse,G=z.lex;r.Lexer=z,r.Parser=R,r.Renderer=$,r.Slugger=T,r.TextRenderer=S,r.Tokenizer=w,r.getDefaults=e,r.lexer=G,r.marked=I,r.options=A,r.parse=N,r.parseInline=M,r.parser=X,r.setOptions=P,r.use=Q,r.walkTokens=U,Object.defineProperty(r,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/build/pdf.js.map b/src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/build/pdf.js.map deleted file mode 100644 index f168c77b5290b8cf94af639b25779824e54f873d..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/build/pdf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/editor/editor.js","webpack://pdfjs-dist/build/pdf/src/display/editor/tools.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","webpack://pdfjs-dist/build/pdf/src/display/editor/freetext.js","webpack://pdfjs-dist/build/pdf/src/display/editor/ink.js","webpack://pdfjs-dist/build/pdf/src/display/editor/fit_curve.js","webpack://pdfjs-dist/build/pdf/node_modules/fit-curve/src/fit-curve.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(globalThis, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n require(\"./compatibility.js\");\n}\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n // beginAnnotations: 78,\n // endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n // paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n MissingPDFException,\n PasswordException,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n AnnotationStorage,\n PrintAnnotationStorage,\n} from \"./annotation_storage.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nlet DefaultCanvasFactory = DOMCanvasFactory;\nlet DefaultCMapReaderFactory = DOMCMapReaderFactory;\nlet DefaultStandardFontDataFactory = DOMStandardFontDataFactory;\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n } = require(\"./node_utils.js\");\n\n DefaultCanvasFactory = NodeCanvasFactory;\n DefaultCMapReaderFactory = NodeCMapReaderFactory;\n DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n * {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type {IPDFStreamFactory}\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n * that takes document initialization parameters (including a \"url\") and\n * returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef { TypedArray | ArrayBuffer | Array | string } BinaryData\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string | URL} [url] - The URL of the PDF.\n * @property {BinaryData} [data] - Binary PDF data.\n * Use typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [isOffscreenCanvasSupported] - Determines if we can use\n * `OffscreenCanvas` in the worker. Primarily used to improve performance of\n * image conversion/rendering.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef { string | URL | TypedArray | ArrayBuffer |\n * PDFDataRangeTransport | DocumentInitParameters\n * } GetDocumentParameters\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {GetDocumentParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\" || src instanceof URL) {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either string, URL, TypedArray, or parameter object.\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n // The full path is required in the 'url' field.\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n warn(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString(); // Support Node.js environments.\n continue;\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n case \"range\":\n rangeTransport = value;\n continue;\n case \"worker\":\n worker = value;\n continue;\n case \"data\":\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n value instanceof Buffer // eslint-disable-line no-undef\n ) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break; // Use the data as-is when it's already a Uint8Array.\n } else if (typeof value === \"string\") {\n params[key] = stringToBytes(value);\n } else if (\n typeof value === \"object\" &&\n value !== null &&\n !isNaN(value.length)\n ) {\n params[key] = new Uint8Array(value);\n } else if (isArrayBuffer(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either TypedArray, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n }\n continue;\n }\n params[key] = value;\n }\n\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory =\n params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n if (\n typeof params.docBaseUrl !== \"string\" ||\n isDataScheme(params.docBaseUrl)\n ) {\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n params.docBaseUrl = null;\n }\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch =\n params.CMapReaderFactory === DOMCMapReaderFactory &&\n params.StandardFontDataFactory === DOMStandardFontDataFactory;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.isOffscreenCanvasSupported !== \"boolean\") {\n params.isOffscreenCanvasSupported = !isNodeJS;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = isNodeJS;\n }\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !isNodeJS && !params.disableFontFace;\n }\n if (\n typeof params.ownerDocument !== \"object\" ||\n params.ownerDocument === null\n ) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(\n worker,\n params,\n rangeTransport,\n docId\n );\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename =\n pdfDataRangeTransport.contentDispositionFilename;\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n // Only send the required properties, and *not* the entire `source` object.\n {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n data: source.data,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n docBaseUrl: source.docBaseUrl,\n enableXfa: source.enableXfa,\n evaluatorOptions: {\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n isOffscreenCanvasSupported: source.isOffscreenCanvasSupported,\n fontExtraProperties: source.fontExtraProperties,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch\n ? source.standardFontDataUrl\n : null,\n },\n }\n );\n\n // Release the TypedArray data, when it exists, since it's no longer needed\n // on the main-thread *after* it's been sent to the worker-thread.\n if (source.data) {\n source.data = null;\n }\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n\n /**\n * Callback for when an unsupported feature is used in the PDF document.\n * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n * @type {function}\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @typedef {Object} PDFDocumentStats\n * @property {Object} streamTypes - Used stream types in the\n * document (an item is set to true if specific stream ID was used in the\n * document).\n * @property {Object} fontTypes - Used font types in the\n * document (an item is set to true if specific font ID was used in the\n * document).\n */\n\n /**\n * @type {PDFDocumentStats | null} The current statistics about document\n * structures, or `null` when no statistics exists.\n */\n get stats() {\n return this._transport.stats;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise>>} A promise that is resolved\n * with a mapping from named destinations to references.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} of all the JavaScript strings in the name tree, or `null`\n * if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree (like getJavaScript);\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array} items\n */\n\n /**\n * @returns {Promise>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the raw data of the PDF document.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with an\n * {Array} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object} styles - {@link TextStyle} objects,\n * indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n *\n * NOTE: This option may be partially, or completely, ignored when the\n * `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n * with user defined ones in order to improve readability in high contrast\n * mode.\n * @property {Promise} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n /** @type {PDFObjects} */\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this._bitmaps = new Set();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array} An array of the visible portion of the PDF page in\n * user space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n if (!promise) {\n promise = this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n }\n return promise;\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n this._pageIndex\n ));\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n }) {\n this._stats?.time(\"Overall\");\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage\n );\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance =\n canvasFactory ||\n new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return (this._structTreePromise ||= this._transport.getStructTree(\n this._pageIndex\n ));\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n this._stats?.timeEnd(\"Page Request\");\n\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n intentState.displayReadyCapability?.resolve(transparency);\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({ renderingIntent, cacheKey, annotationStorageMap }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap,\n }\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n #listeners = [];\n\n #deferred = Promise.resolve();\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers),\n };\n\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this.#listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this.#listeners.indexOf(listener);\n this.#listeners.splice(i, 1);\n }\n\n terminate() {\n this.#listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let { workerSrc } = PDFWorker;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n // Ensure that we can use `postMessage` transfers.\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch (e) {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n PDFWorkerUtil.fallbackWorkerSrc !== null\n ) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a ` + + - + + @@ -44,27 +43,27 @@ See https://github.com/adobe-type-tools/cmap-resources
      - - - -
      - @@ -85,29 +84,31 @@ See https://github.com/adobe-type-tools/cmap-resources
      + + @@ -132,108 +141,116 @@ See https://github.com/adobe-type-tools/cmap-resources + + @@ -242,80 +259,84 @@ See https://github.com/adobe-type-tools/cmap-resources
      -
      -
      -
      -
      - + + +
      - - - - - - -
      -
      - + + -
      - + + + +
      + +
      -
      -
      - + + + + + + + + + + + + +
      @@ -337,90 +358,133 @@ See https://github.com/adobe-type-tools/cmap-resources
      - +
      - - + +
      - File name: + File name:

      -

      - File size: + File size:

      -

      - Title: + Title:

      -

      - Author: + Author:

      -

      - Subject: + Subject:

      -

      - Keywords: + Keywords:

      -

      - Creation Date: + Creation Date:

      -

      - Modification Date: + Modification Date:

      -

      - Creator: + Creator:

      -

      - PDF Producer: + PDF Producer:

      -

      - PDF Version: + PDF Version:

      -

      - Page Count: + Page Count:

      -

      - Page Size: + Page Size:

      -

      - Fast Web View: + Fast Web View:

      -

      - + +
      +
      + +
      +
      + Choose an option + + Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. + +
      +
      +
      +
      + + +
      +
      + + Aim for 1-2 sentences that describe the subject, setting, or actions. + +
      +
      +
      + +
      +
      +
      +
      +
      + + +
      +
      + + This is used for ornamental images, like borders or watermarks. + +
      +
      +
      +
      + + +
      - Preparing document for printing… + Preparing document for printing…
      - 0% + 0%
      - +
      diff --git a/src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/web/viewer.js b/src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs similarity index 52% rename from src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/web/viewer.js rename to src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs index 4b50b884fcd62ab29dfcb66ff481b57fc95fa893..e9041cadd0b46e0a0d44c6f96b887a01947432e2 100644 --- a/src/main/resources/META-INF/resources/file/preview/static/pdfjs/3.0.279/web/viewer.js +++ b/src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in this page * - * Copyright 2022 Mozilla Foundation + * Copyright 2023 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,1356 +20,2052 @@ * JavaScript code in this page */ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.AutoPrintRegExp = void 0; -exports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes; -exports.apiPageModeToSidebarView = apiPageModeToSidebarView; -exports.approximateFraction = approximateFraction; -exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; -exports.binarySearchFirstItem = binarySearchFirstItem; -exports.docStyle = void 0; -exports.getActiveOrFocusedElement = getActiveOrFocusedElement; -exports.getPageSizeInches = getPageSizeInches; -exports.getVisibleElements = getVisibleElements; -exports.isPortraitOrientation = isPortraitOrientation; -exports.isValidRotation = isValidRotation; -exports.isValidScrollMode = isValidScrollMode; -exports.isValidSpreadMode = isValidSpreadMode; -exports.noContextMenuHandler = noContextMenuHandler; -exports.normalizeWheelEventDelta = normalizeWheelEventDelta; -exports.normalizeWheelEventDirection = normalizeWheelEventDirection; -exports.parseQueryString = parseQueryString; -exports.removeNullCharacters = removeNullCharacters; -exports.roundToDivide = roundToDivide; -exports.scrollIntoView = scrollIntoView; -exports.watchScroll = watchScroll; -const DEFAULT_SCALE_VALUE = "auto"; -exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; -const DEFAULT_SCALE = 1.0; -exports.DEFAULT_SCALE = DEFAULT_SCALE; -const DEFAULT_SCALE_DELTA = 1.1; -exports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA; -const MIN_SCALE = 0.1; -exports.MIN_SCALE = MIN_SCALE; -const MAX_SCALE = 10.0; -exports.MAX_SCALE = MAX_SCALE; -const UNKNOWN_SCALE = 0; -exports.UNKNOWN_SCALE = UNKNOWN_SCALE; -const MAX_AUTO_SCALE = 1.25; -exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; -const SCROLLBAR_PADDING = 40; -exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; -const VERTICAL_PADDING = 5; -exports.VERTICAL_PADDING = VERTICAL_PADDING; -const RenderingStates = { - INITIAL: 0, - RUNNING: 1, - PAUSED: 2, - FINISHED: 3 -}; -exports.RenderingStates = RenderingStates; -const PresentationModeState = { - UNKNOWN: 0, - NORMAL: 1, - CHANGING: 2, - FULLSCREEN: 3 -}; -exports.PresentationModeState = PresentationModeState; -const SidebarView = { - UNKNOWN: -1, - NONE: 0, - THUMBS: 1, - OUTLINE: 2, - ATTACHMENTS: 3, - LAYERS: 4 -}; -exports.SidebarView = SidebarView; -const RendererType = { - CANVAS: "canvas", - SVG: "svg" -}; -exports.RendererType = RendererType; -const TextLayerMode = { - DISABLE: 0, - ENABLE: 1 -}; -exports.TextLayerMode = TextLayerMode; -const ScrollMode = { - UNKNOWN: -1, - VERTICAL: 0, - HORIZONTAL: 1, - WRAPPED: 2, - PAGE: 3 -}; -exports.ScrollMode = ScrollMode; -const SpreadMode = { - UNKNOWN: -1, - NONE: 0, - ODD: 1, - EVEN: 2 -}; -exports.SpreadMode = SpreadMode; -const AutoPrintRegExp = /\bprint\s*\(/; -exports.AutoPrintRegExp = AutoPrintRegExp; -class OutputScale { - constructor() { - const pixelRatio = window.devicePixelRatio || 1; - this.sx = pixelRatio; - this.sy = pixelRatio; +/******/ var __webpack_modules__ = ({ + +/***/ 8759: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + FluentBundle: () => (/* reexport */ FluentBundle), + FluentResource: () => (/* reexport */ FluentResource) +}); + +// UNUSED EXPORTS: FluentDateTime, FluentNone, FluentNumber, FluentType + +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/types.js +class FluentType { + constructor(value) { + this.value = value; } - get scaled() { - return this.sx !== 1 || this.sy !== 1; + valueOf() { + return this.value; } } -exports.OutputScale = OutputScale; -function scrollIntoView(element, spot, scrollMatches = false) { - let parent = element.offsetParent; - if (!parent) { - console.error("offsetParent is not set -- cannot scroll"); - return; +class FluentNone extends FluentType { + constructor(value = "???") { + super(value); } - let offsetY = element.offsetTop + element.clientTop; - let offsetX = element.offsetLeft + element.clientLeft; - while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { - offsetY += parent.offsetTop; - offsetX += parent.offsetLeft; - parent = parent.offsetParent; - if (!parent) { - return; - } + toString(scope) { + return `{${this.value}}`; } - if (spot) { - if (spot.top !== undefined) { - offsetY += spot.top; - } - if (spot.left !== undefined) { - offsetX += spot.left; - parent.scrollLeft = offsetX; +} +class FluentNumber extends FluentType { + constructor(value, opts = {}) { + super(value); + this.opts = opts; + } + toString(scope) { + try { + const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts); + return nf.format(this.value); + } catch (err) { + scope.reportError(err); + return this.value.toString(10); } } - parent.scrollTop = offsetY; } -function watchScroll(viewAreaElement, callback) { - const debounceScroll = function (evt) { - if (rAF) { - return; +class FluentDateTime extends FluentType { + constructor(value, opts = {}) { + super(value); + this.opts = opts; + } + toString(scope) { + try { + const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts); + return dtf.format(this.value); + } catch (err) { + scope.reportError(err); + return new Date(this.value).toISOString(); } - rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { - rAF = null; - const currentX = viewAreaElement.scrollLeft; - const lastX = state.lastX; - if (currentX !== lastX) { - state.right = currentX > lastX; - } - state.lastX = currentX; - const currentY = viewAreaElement.scrollTop; - const lastY = state.lastY; - if (currentY !== lastY) { - state.down = currentY > lastY; - } - state.lastY = currentY; - callback(state); - }); - }; - const state = { - right: true, - down: true, - lastX: viewAreaElement.scrollLeft, - lastY: viewAreaElement.scrollTop, - _eventHandler: debounceScroll - }; - let rAF = null; - viewAreaElement.addEventListener("scroll", debounceScroll, true); - return state; -} -function parseQueryString(query) { - const params = new Map(); - for (const [key, value] of new URLSearchParams(query)) { - params.set(key.toLowerCase(), value); } - return params; } -const NullCharactersRegExp = /\x00/g; -const InvisibleCharactersRegExp = /[\x01-\x1F]/g; -function removeNullCharacters(str, replaceInvisible = false) { - if (typeof str !== "string") { - console.error(`The argument must be a string.`); - return str; +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resolver.js + +const MAX_PLACEABLES = 100; +const FSI = "\u2068"; +const PDI = "\u2069"; +function match(scope, selector, key) { + if (key === selector) { + return true; } - if (replaceInvisible) { - str = str.replace(InvisibleCharactersRegExp, " "); + if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) { + return true; } - return str.replace(NullCharactersRegExp, ""); -} -function binarySearchFirstItem(items, condition, start = 0) { - let minIndex = start; - let maxIndex = items.length - 1; - if (maxIndex < 0 || !condition(items[maxIndex])) { - return items.length; + if (selector instanceof FluentNumber && typeof key === "string") { + let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value); + if (key === category) { + return true; + } } - if (condition(items[minIndex])) { - return minIndex; + return false; +} +function getDefault(scope, variants, star) { + if (variants[star]) { + return resolvePattern(scope, variants[star].value); } - while (minIndex < maxIndex) { - const currentIndex = minIndex + maxIndex >> 1; - const currentItem = items[currentIndex]; - if (condition(currentItem)) { - maxIndex = currentIndex; + scope.reportError(new RangeError("No default")); + return new FluentNone(); +} +function getArguments(scope, args) { + const positional = []; + const named = Object.create(null); + for (const arg of args) { + if (arg.type === "narg") { + named[arg.name] = resolveExpression(scope, arg.value); } else { - minIndex = currentIndex + 1; + positional.push(resolveExpression(scope, arg)); } } - return minIndex; + return { + positional, + named + }; } -function approximateFraction(x) { - if (Math.floor(x) === x) { - return [x, 1]; - } - const xinv = 1 / x; - const limit = 8; - if (xinv > limit) { - return [1, limit]; - } else if (Math.floor(xinv) === xinv) { - return [1, xinv]; +function resolveExpression(scope, expr) { + switch (expr.type) { + case "str": + return expr.value; + case "num": + return new FluentNumber(expr.value, { + minimumFractionDigits: expr.precision + }); + case "var": + return resolveVariableReference(scope, expr); + case "mesg": + return resolveMessageReference(scope, expr); + case "term": + return resolveTermReference(scope, expr); + case "func": + return resolveFunctionReference(scope, expr); + case "select": + return resolveSelectExpression(scope, expr); + default: + return new FluentNone(); } - const x_ = x > 1 ? xinv : x; - let a = 0, - b = 1, - c = 1, - d = 1; - while (true) { - const p = a + c, - q = b + d; - if (q > limit) { - break; - } - if (x_ <= p / q) { - c = p; - d = q; +} +function resolveVariableReference(scope, { + name +}) { + let arg; + if (scope.params) { + if (Object.prototype.hasOwnProperty.call(scope.params, name)) { + arg = scope.params[name]; } else { - a = p; - b = q; + return new FluentNone(`$${name}`); } - } - let result; - if (x_ - a / b < c / d - x_) { - result = x_ === x ? [a, b] : [b, a]; + } else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) { + arg = scope.args[name]; } else { - result = x_ === x ? [c, d] : [d, c]; + scope.reportError(new ReferenceError(`Unknown variable: $${name}`)); + return new FluentNone(`$${name}`); + } + if (arg instanceof FluentType) { + return arg; + } + switch (typeof arg) { + case "string": + return arg; + case "number": + return new FluentNumber(arg); + case "object": + if (arg instanceof Date) { + return new FluentDateTime(arg.getTime()); + } + default: + scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`)); + return new FluentNone(`$${name}`); } - return result; -} -function roundToDivide(x, div) { - const r = x % div; - return r === 0 ? x : Math.round(x - r + div); } -function getPageSizeInches({ - view, - userUnit, - rotate +function resolveMessageReference(scope, { + name, + attr }) { - const [x1, y1, x2, y2] = view; - const changeOrientation = rotate % 180 !== 0; - const width = (x2 - x1) / 72 * userUnit; - const height = (y2 - y1) / 72 * userUnit; - return { - width: changeOrientation ? height : width, - height: changeOrientation ? width : height - }; -} -function backtrackBeforeAllVisibleElements(index, views, top) { - if (index < 2) { - return index; - } - let elt = views[index].div; - let pageTop = elt.offsetTop + elt.clientTop; - if (pageTop >= top) { - elt = views[index - 1].div; - pageTop = elt.offsetTop + elt.clientTop; + const message = scope.bundle._messages.get(name); + if (!message) { + scope.reportError(new ReferenceError(`Unknown message: ${name}`)); + return new FluentNone(name); } - for (let i = index - 2; i >= 0; --i) { - elt = views[i].div; - if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { - break; + if (attr) { + const attribute = message.attributes[attr]; + if (attribute) { + return resolvePattern(scope, attribute); } - index = i; + scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); + return new FluentNone(`${name}.${attr}`); } - return index; + if (message.value) { + return resolvePattern(scope, message.value); + } + scope.reportError(new ReferenceError(`No value: ${name}`)); + return new FluentNone(name); } -function getVisibleElements({ - scrollEl, - views, - sortByVisibility = false, - horizontal = false, - rtl = false +function resolveTermReference(scope, { + name, + attr, + args }) { - const top = scrollEl.scrollTop, - bottom = top + scrollEl.clientHeight; - const left = scrollEl.scrollLeft, - right = left + scrollEl.clientWidth; - function isElementBottomAfterViewTop(view) { - const element = view.div; - const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; - return elementBottom > top; + const id = `-${name}`; + const term = scope.bundle._terms.get(id); + if (!term) { + scope.reportError(new ReferenceError(`Unknown term: ${id}`)); + return new FluentNone(id); + } + if (attr) { + const attribute = term.attributes[attr]; + if (attribute) { + scope.params = getArguments(scope, args).named; + const resolved = resolvePattern(scope, attribute); + scope.params = null; + return resolved; + } + scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); + return new FluentNone(`${id}.${attr}`); + } + scope.params = getArguments(scope, args).named; + const resolved = resolvePattern(scope, term.value); + scope.params = null; + return resolved; +} +function resolveFunctionReference(scope, { + name, + args +}) { + let func = scope.bundle._functions[name]; + if (!func) { + scope.reportError(new ReferenceError(`Unknown function: ${name}()`)); + return new FluentNone(`${name}()`); } - function isElementNextAfterViewHorizontally(view) { - const element = view.div; - const elementLeft = element.offsetLeft + element.clientLeft; - const elementRight = elementLeft + element.clientWidth; - return rtl ? elementLeft < right : elementRight > left; + if (typeof func !== "function") { + scope.reportError(new TypeError(`Function ${name}() is not callable`)); + return new FluentNone(`${name}()`); } - const visible = [], - ids = new Set(), - numViews = views.length; - let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); - if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { - firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + try { + let resolved = getArguments(scope, args); + return func(resolved.positional, resolved.named); + } catch (err) { + scope.reportError(err); + return new FluentNone(`${name}()`); } - let lastEdge = horizontal ? right : -1; - for (let i = firstVisibleElementInd; i < numViews; i++) { - const view = views[i], - element = view.div; - const currentWidth = element.offsetLeft + element.clientLeft; - const currentHeight = element.offsetTop + element.clientTop; - const viewWidth = element.clientWidth, - viewHeight = element.clientHeight; - const viewRight = currentWidth + viewWidth; - const viewBottom = currentHeight + viewHeight; - if (lastEdge === -1) { - if (viewBottom >= bottom) { - lastEdge = viewBottom; - } - } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { - break; - } - if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { - continue; - } - const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); - const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); - const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, - fractionWidth = (viewWidth - hiddenWidth) / viewWidth; - const percent = fractionHeight * fractionWidth * 100 | 0; - visible.push({ - id: view.id, - x: currentWidth, - y: currentHeight, - view, - percent, - widthPercent: fractionWidth * 100 | 0 - }); - ids.add(view.id); +} +function resolveSelectExpression(scope, { + selector, + variants, + star +}) { + let sel = resolveExpression(scope, selector); + if (sel instanceof FluentNone) { + return getDefault(scope, variants, star); } - const first = visible[0], - last = visible.at(-1); - if (sortByVisibility) { - visible.sort(function (a, b) { - const pc = a.percent - b.percent; - if (Math.abs(pc) > 0.001) { - return -pc; - } - return a.id - b.id; - }); + for (const variant of variants) { + const key = resolveExpression(scope, variant.key); + if (match(scope, sel, key)) { + return resolvePattern(scope, variant.value); + } } - return { - first, - last, - views: visible, - ids - }; + return getDefault(scope, variants, star); } -function noContextMenuHandler(evt) { - evt.preventDefault(); -} -function normalizeWheelEventDirection(evt) { - let delta = Math.hypot(evt.deltaX, evt.deltaY); - const angle = Math.atan2(evt.deltaY, evt.deltaX); - if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { - delta = -delta; +function resolveComplexPattern(scope, ptn) { + if (scope.dirty.has(ptn)) { + scope.reportError(new RangeError("Cyclic reference")); + return new FluentNone(); } - return delta; -} -function normalizeWheelEventDelta(evt) { - let delta = normalizeWheelEventDirection(evt); - const MOUSE_DOM_DELTA_PIXEL_MODE = 0; - const MOUSE_DOM_DELTA_LINE_MODE = 1; - const MOUSE_PIXELS_PER_LINE = 30; - const MOUSE_LINES_PER_PAGE = 30; - if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { - delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; - } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) { - delta /= MOUSE_LINES_PER_PAGE; + scope.dirty.add(ptn); + const result = []; + const useIsolating = scope.bundle._useIsolating && ptn.length > 1; + for (const elem of ptn) { + if (typeof elem === "string") { + result.push(scope.bundle._transform(elem)); + continue; + } + scope.placeables++; + if (scope.placeables > MAX_PLACEABLES) { + scope.dirty.delete(ptn); + throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`); + } + if (useIsolating) { + result.push(FSI); + } + result.push(resolveExpression(scope, elem).toString(scope)); + if (useIsolating) { + result.push(PDI); + } } - return delta; -} -function isValidRotation(angle) { - return Number.isInteger(angle) && angle % 90 === 0; -} -function isValidScrollMode(mode) { - return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; -} -function isValidSpreadMode(mode) { - return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; -} -function isPortraitOrientation(size) { - return size.width <= size.height; -} -const animationStarted = new Promise(function (resolve) { - window.requestAnimationFrame(resolve); -}); -exports.animationStarted = animationStarted; -const docStyle = document.documentElement.style; -exports.docStyle = docStyle; -function clamp(v, min, max) { - return Math.min(Math.max(v, min), max); + scope.dirty.delete(ptn); + return result.join(""); } -class ProgressBar { - #classList = null; - #percent = 0; - #visible = true; - constructor(id) { - const bar = document.getElementById(id); - this.#classList = bar.classList; +function resolvePattern(scope, value) { + if (typeof value === "string") { + return scope.bundle._transform(value); } - get percent() { - return this.#percent; + return resolveComplexPattern(scope, value); +} +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/scope.js +class Scope { + constructor(bundle, errors, args) { + this.dirty = new WeakSet(); + this.params = null; + this.placeables = 0; + this.bundle = bundle; + this.errors = errors; + this.args = args; } - set percent(val) { - this.#percent = clamp(val, 0, 100); - if (isNaN(val)) { - this.#classList.add("indeterminate"); - return; + reportError(error) { + if (!this.errors || !(error instanceof Error)) { + throw error; } - this.#classList.remove("indeterminate"); - docStyle.setProperty("--progressBar-percent", `${this.#percent}%`); + this.errors.push(error); } - setWidth(viewer) { - if (!viewer) { - return; - } - const container = viewer.parentNode; - const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; - if (scrollbarWidth > 0) { - docStyle.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); + memoizeIntlObject(ctor, opts) { + let cache = this.bundle._intls.get(ctor); + if (!cache) { + cache = {}; + this.bundle._intls.set(ctor, cache); } - } - hide() { - if (!this.#visible) { - return; + let id = JSON.stringify(opts); + if (!cache[id]) { + cache[id] = new ctor(this.bundle.locales, opts); } - this.#visible = false; - this.#classList.add("hidden"); + return cache[id]; } - show() { - if (this.#visible) { - return; +} +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/builtins.js + +function values(opts, allowed) { + const unwrapped = Object.create(null); + for (const [name, opt] of Object.entries(opts)) { + if (allowed.includes(name)) { + unwrapped[name] = opt.valueOf(); } - this.#visible = true; - this.#classList.remove("hidden"); } + return unwrapped; } -exports.ProgressBar = ProgressBar; -function getActiveOrFocusedElement() { - let curRoot = document; - let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); - while (curActiveOrFocused?.shadowRoot) { - curRoot = curActiveOrFocused.shadowRoot; - curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); +const NUMBER_ALLOWED = ["unitDisplay", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"]; +function NUMBER(args, opts) { + let arg = args[0]; + if (arg instanceof FluentNone) { + return new FluentNone(`NUMBER(${arg.valueOf()})`); } - return curActiveOrFocused; + if (arg instanceof FluentNumber) { + return new FluentNumber(arg.valueOf(), { + ...arg.opts, + ...values(opts, NUMBER_ALLOWED) + }); + } + if (arg instanceof FluentDateTime) { + return new FluentNumber(arg.valueOf(), { + ...values(opts, NUMBER_ALLOWED) + }); + } + throw new TypeError("Invalid argument to NUMBER"); } -function apiPageLayoutToViewerModes(layout) { - let scrollMode = ScrollMode.VERTICAL, - spreadMode = SpreadMode.NONE; - switch (layout) { - case "SinglePage": - scrollMode = ScrollMode.PAGE; - break; - case "OneColumn": - break; - case "TwoPageLeft": - scrollMode = ScrollMode.PAGE; - case "TwoColumnLeft": - spreadMode = SpreadMode.ODD; - break; - case "TwoPageRight": - scrollMode = ScrollMode.PAGE; - case "TwoColumnRight": - spreadMode = SpreadMode.EVEN; - break; +const DATETIME_ALLOWED = ["dateStyle", "timeStyle", "fractionalSecondDigits", "dayPeriod", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"]; +function DATETIME(args, opts) { + let arg = args[0]; + if (arg instanceof FluentNone) { + return new FluentNone(`DATETIME(${arg.valueOf()})`); } - return { - scrollMode, - spreadMode - }; + if (arg instanceof FluentDateTime) { + return new FluentDateTime(arg.valueOf(), { + ...arg.opts, + ...values(opts, DATETIME_ALLOWED) + }); + } + if (arg instanceof FluentNumber) { + return new FluentDateTime(arg.valueOf(), { + ...values(opts, DATETIME_ALLOWED) + }); + } + throw new TypeError("Invalid argument to DATETIME"); } -function apiPageModeToSidebarView(mode) { - switch (mode) { - case "UseNone": - return SidebarView.NONE; - case "UseThumbs": - return SidebarView.THUMBS; - case "UseOutlines": - return SidebarView.OUTLINE; - case "UseAttachments": - return SidebarView.ATTACHMENTS; - case "UseOC": - return SidebarView.LAYERS; +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/memoizer.js +const cache = new Map(); +function getMemoizerForLocale(locales) { + const stringLocale = Array.isArray(locales) ? locales.join(" ") : locales; + let memoizer = cache.get(stringLocale); + if (memoizer === undefined) { + memoizer = new Map(); + cache.set(stringLocale, memoizer); } - return SidebarView.NONE; + return memoizer; } +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/bundle.js -/***/ }), -/* 2 */ -/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0; -const compatibilityParams = Object.create(null); -exports.compatibilityParams = compatibilityParams; -{ - const userAgent = navigator.userAgent || ""; - const platform = navigator.platform || ""; - const maxTouchPoints = navigator.maxTouchPoints || 1; - const isAndroid = /Android/.test(userAgent); - const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; - (function checkCanvasSizeLimitation() { - if (isIOS || isAndroid) { - compatibilityParams.maxCanvasPixels = 5242880; + +class FluentBundle { + constructor(locales, { + functions, + useIsolating = true, + transform = v => v + } = {}) { + this._terms = new Map(); + this._messages = new Map(); + this.locales = Array.isArray(locales) ? locales : [locales]; + this._functions = { + NUMBER: NUMBER, + DATETIME: DATETIME, + ...functions + }; + this._useIsolating = useIsolating; + this._transform = transform; + this._intls = getMemoizerForLocale(locales); + } + hasMessage(id) { + return this._messages.has(id); + } + getMessage(id) { + return this._messages.get(id); + } + addResource(res, { + allowOverrides = false + } = {}) { + const errors = []; + for (let i = 0; i < res.body.length; i++) { + let entry = res.body[i]; + if (entry.id.startsWith("-")) { + if (allowOverrides === false && this._terms.has(entry.id)) { + errors.push(new Error(`Attempt to override an existing term: "${entry.id}"`)); + continue; + } + this._terms.set(entry.id, entry); + } else { + if (allowOverrides === false && this._messages.has(entry.id)) { + errors.push(new Error(`Attempt to override an existing message: "${entry.id}"`)); + continue; + } + this._messages.set(entry.id, entry); + } } - })(); -} -const OptionKind = { - VIEWER: 0x02, - API: 0x04, - WORKER: 0x08, - PREFERENCE: 0x80 -}; -exports.OptionKind = OptionKind; -const defaultOptions = { - annotationEditorMode: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - annotationMode: { - value: 2, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cursorToolOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - defaultZoomValue: { - value: "", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - disableHistory: { - value: false, - kind: OptionKind.VIEWER - }, - disablePageLabels: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePermissions: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePrintAutoRotate: { - value: true, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableScripting: { - value: true, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - externalLinkRel: { - value: "noopener noreferrer nofollow", - kind: OptionKind.VIEWER - }, - externalLinkTarget: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - historyUpdateUrl: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - ignoreDestinationZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - imageResourcesPath: { - value: "./images/", - kind: OptionKind.VIEWER - }, - maxCanvasPixels: { - value: 16777216, - kind: OptionKind.VIEWER - }, - forcePageColors: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pageColorsBackground: { - value: "Canvas", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pageColorsForeground: { - value: "CanvasText", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pdfBugEnabled: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - printResolution: { - value: 150, - kind: OptionKind.VIEWER - }, - sidebarViewOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - scrollModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - spreadModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - textLayerMode: { - value: 1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - useOnlyCssZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - viewerCssTheme: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - viewOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cMapPacked: { - value: true, - kind: OptionKind.API - }, - cMapUrl: { - value: "../web/cmaps/", - kind: OptionKind.API - }, - disableAutoFetch: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableFontFace: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableRange: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableStream: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - docBaseUrl: { - value: "", - kind: OptionKind.API - }, - enableXfa: { - value: true, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - fontExtraProperties: { - value: false, - kind: OptionKind.API - }, - isEvalSupported: { - value: true, - kind: OptionKind.API - }, - isOffscreenCanvasSupported: { - value: true, - kind: OptionKind.API - }, - maxImageSize: { - value: -1, - kind: OptionKind.API - }, - pdfBug: { - value: false, - kind: OptionKind.API - }, - standardFontDataUrl: { - value: "../web/standard_fonts/", - kind: OptionKind.API - }, - verbosity: { - value: 1, - kind: OptionKind.API - }, - workerPort: { - value: null, - kind: OptionKind.WORKER - }, - workerSrc: { - value: "../build/pdf.worker.js", - kind: OptionKind.WORKER - } -}; -{ - defaultOptions.defaultUrl = { - value: "compressed.tracemonkey-pldi-09.pdf", - kind: OptionKind.VIEWER - }; - defaultOptions.disablePreferences = { - value: false, - kind: OptionKind.VIEWER - }; - defaultOptions.locale = { - value: navigator.language || "en-US", - kind: OptionKind.VIEWER - }; - defaultOptions.renderer = { - value: "canvas", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }; - defaultOptions.sandboxBundleSrc = { - value: "../build/pdf.sandbox.js", - kind: OptionKind.VIEWER - }; -} -const userOptions = Object.create(null); -class AppOptions { - constructor() { - throw new Error("Cannot initialize AppOptions."); + return errors; } - static get(name) { - const userOption = userOptions[name]; - if (userOption !== undefined) { - return userOption; + formatPattern(pattern, args = null, errors = null) { + if (typeof pattern === "string") { + return this._transform(pattern); } - const defaultOption = defaultOptions[name]; - if (defaultOption !== undefined) { - return compatibilityParams[name] ?? defaultOption.value; + let scope = new Scope(this, errors, args); + try { + let value = resolveComplexPattern(scope, pattern); + return value.toString(scope); + } catch (err) { + if (scope.errors && err instanceof Error) { + scope.errors.push(err); + return new FluentNone().toString(scope); + } + throw err; + } + } +} +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resource.js +const RE_MESSAGE_START = /^(-?[a-zA-Z][\w-]*) *= */gm; +const RE_ATTRIBUTE_START = /\.([a-zA-Z][\w-]*) *= */y; +const RE_VARIANT_START = /\*?\[/y; +const RE_NUMBER_LITERAL = /(-?[0-9]+(?:\.([0-9]+))?)/y; +const RE_IDENTIFIER = /([a-zA-Z][\w-]*)/y; +const RE_REFERENCE = /([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y; +const RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/; +const RE_TEXT_RUN = /([^{}\n\r]+)/y; +const RE_STRING_RUN = /([^\\"\n\r]*)/y; +const RE_STRING_ESCAPE = /\\([\\"])/y; +const RE_UNICODE_ESCAPE = /\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y; +const RE_LEADING_NEWLINES = /^\n+/; +const RE_TRAILING_SPACES = / +$/; +const RE_BLANK_LINES = / *\r?\n/g; +const RE_INDENT = /( *)$/; +const TOKEN_BRACE_OPEN = /{\s*/y; +const TOKEN_BRACE_CLOSE = /\s*}/y; +const TOKEN_BRACKET_OPEN = /\[\s*/y; +const TOKEN_BRACKET_CLOSE = /\s*] */y; +const TOKEN_PAREN_OPEN = /\s*\(\s*/y; +const TOKEN_ARROW = /\s*->\s*/y; +const TOKEN_COLON = /\s*:\s*/y; +const TOKEN_COMMA = /\s*,?\s*/y; +const TOKEN_BLANK = /\s+/y; +class FluentResource { + constructor(source) { + this.body = []; + RE_MESSAGE_START.lastIndex = 0; + let cursor = 0; + while (true) { + let next = RE_MESSAGE_START.exec(source); + if (next === null) { + break; + } + cursor = RE_MESSAGE_START.lastIndex; + try { + this.body.push(parseMessage(next[1])); + } catch (err) { + if (err instanceof SyntaxError) { + continue; + } + throw err; + } } - return undefined; - } - static getAll(kind = null) { - const options = Object.create(null); - for (const name in defaultOptions) { - const defaultOption = defaultOptions[name]; - if (kind) { - if ((kind & defaultOption.kind) === 0) { + function test(re) { + re.lastIndex = cursor; + return re.test(source); + } + function consumeChar(char, errorClass) { + if (source[cursor] === char) { + cursor++; + return true; + } + if (errorClass) { + throw new errorClass(`Expected ${char}`); + } + return false; + } + function consumeToken(re, errorClass) { + if (test(re)) { + cursor = re.lastIndex; + return true; + } + if (errorClass) { + throw new errorClass(`Expected ${re.toString()}`); + } + return false; + } + function match(re) { + re.lastIndex = cursor; + let result = re.exec(source); + if (result === null) { + throw new SyntaxError(`Expected ${re.toString()}`); + } + cursor = re.lastIndex; + return result; + } + function match1(re) { + return match(re)[1]; + } + function parseMessage(id) { + let value = parsePattern(); + let attributes = parseAttributes(); + if (value === null && Object.keys(attributes).length === 0) { + throw new SyntaxError("Expected message value or attributes"); + } + return { + id, + value, + attributes + }; + } + function parseAttributes() { + let attrs = Object.create(null); + while (test(RE_ATTRIBUTE_START)) { + let name = match1(RE_ATTRIBUTE_START); + let value = parsePattern(); + if (value === null) { + throw new SyntaxError("Expected attribute value"); + } + attrs[name] = value; + } + return attrs; + } + function parsePattern() { + let first; + if (test(RE_TEXT_RUN)) { + first = match1(RE_TEXT_RUN); + } + if (source[cursor] === "{" || source[cursor] === "}") { + return parsePatternElements(first ? [first] : [], Infinity); + } + let indent = parseIndent(); + if (indent) { + if (first) { + return parsePatternElements([first, indent], indent.length); + } + indent.value = trim(indent.value, RE_LEADING_NEWLINES); + return parsePatternElements([indent], indent.length); + } + if (first) { + return trim(first, RE_TRAILING_SPACES); + } + return null; + } + function parsePatternElements(elements = [], commonIndent) { + while (true) { + if (test(RE_TEXT_RUN)) { + elements.push(match1(RE_TEXT_RUN)); continue; } - if (kind === OptionKind.PREFERENCE) { - const value = defaultOption.value, - valueType = typeof value; - if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { - options[name] = value; - continue; + if (source[cursor] === "{") { + elements.push(parsePlaceable()); + continue; + } + if (source[cursor] === "}") { + throw new SyntaxError("Unbalanced closing brace"); + } + let indent = parseIndent(); + if (indent) { + elements.push(indent); + commonIndent = Math.min(commonIndent, indent.length); + continue; + } + break; + } + let lastIndex = elements.length - 1; + let lastElement = elements[lastIndex]; + if (typeof lastElement === "string") { + elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES); + } + let baked = []; + for (let element of elements) { + if (element instanceof Indent) { + element = element.value.slice(0, element.value.length - commonIndent); + } + if (element) { + baked.push(element); + } + } + return baked; + } + function parsePlaceable() { + consumeToken(TOKEN_BRACE_OPEN, SyntaxError); + let selector = parseInlineExpression(); + if (consumeToken(TOKEN_BRACE_CLOSE)) { + return selector; + } + if (consumeToken(TOKEN_ARROW)) { + let variants = parseVariants(); + consumeToken(TOKEN_BRACE_CLOSE, SyntaxError); + return { + type: "select", + selector, + ...variants + }; + } + throw new SyntaxError("Unclosed placeable"); + } + function parseInlineExpression() { + if (source[cursor] === "{") { + return parsePlaceable(); + } + if (test(RE_REFERENCE)) { + let [, sigil, name, attr = null] = match(RE_REFERENCE); + if (sigil === "$") { + return { + type: "var", + name + }; + } + if (consumeToken(TOKEN_PAREN_OPEN)) { + let args = parseArguments(); + if (sigil === "-") { + return { + type: "term", + name, + attr, + args + }; + } + if (RE_FUNCTION_NAME.test(name)) { + return { + type: "func", + name, + args + }; } - throw new Error(`Invalid type for preference: ${name}`); + throw new SyntaxError("Function names must be all upper-case"); + } + if (sigil === "-") { + return { + type: "term", + name, + attr, + args: [] + }; } + return { + type: "mesg", + name, + attr + }; + } + return parseLiteral(); + } + function parseArguments() { + let args = []; + while (true) { + switch (source[cursor]) { + case ")": + cursor++; + return args; + case undefined: + throw new SyntaxError("Unclosed argument list"); + } + args.push(parseArgument()); + consumeToken(TOKEN_COMMA); } - const userOption = userOptions[name]; - options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value; } - return options; - } - static set(name, value) { - userOptions[name] = value; - } - static setAll(options) { - for (const name in options) { - userOptions[name] = options[name]; + function parseArgument() { + let expr = parseInlineExpression(); + if (expr.type !== "mesg") { + return expr; + } + if (consumeToken(TOKEN_COLON)) { + return { + type: "narg", + name: expr.name, + value: parseLiteral() + }; + } + return expr; } - } - static remove(name) { - delete userOptions[name]; - } - static _hasUserOptions() { - return Object.keys(userOptions).length > 0; - } -} -exports.AppOptions = AppOptions; - -/***/ }), -/* 3 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0; -var _ui_utils = __webpack_require__(1); -const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; -const LinkTarget = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 + function parseVariants() { + let variants = []; + let count = 0; + let star; + while (test(RE_VARIANT_START)) { + if (consumeChar("*")) { + star = count; + } + let key = parseVariantKey(); + let value = parsePattern(); + if (value === null) { + throw new SyntaxError("Expected variant value"); + } + variants[count++] = { + key, + value + }; + } + if (count === 0) { + return null; + } + if (star === undefined) { + throw new SyntaxError("Expected default variant"); + } + return { + variants, + star + }; + } + function parseVariantKey() { + consumeToken(TOKEN_BRACKET_OPEN, SyntaxError); + let key; + if (test(RE_NUMBER_LITERAL)) { + key = parseNumberLiteral(); + } else { + key = { + type: "str", + value: match1(RE_IDENTIFIER) + }; + } + consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError); + return key; + } + function parseLiteral() { + if (test(RE_NUMBER_LITERAL)) { + return parseNumberLiteral(); + } + if (source[cursor] === '"') { + return parseStringLiteral(); + } + throw new SyntaxError("Invalid expression"); + } + function parseNumberLiteral() { + let [, value, fraction = ""] = match(RE_NUMBER_LITERAL); + let precision = fraction.length; + return { + type: "num", + value: parseFloat(value), + precision + }; + } + function parseStringLiteral() { + consumeChar('"', SyntaxError); + let value = ""; + while (true) { + value += match1(RE_STRING_RUN); + if (source[cursor] === "\\") { + value += parseEscapeSequence(); + continue; + } + if (consumeChar('"')) { + return { + type: "str", + value + }; + } + throw new SyntaxError("Unclosed string literal"); + } + } + function parseEscapeSequence() { + if (test(RE_STRING_ESCAPE)) { + return match1(RE_STRING_ESCAPE); + } + if (test(RE_UNICODE_ESCAPE)) { + let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE); + let codepoint = parseInt(codepoint4 || codepoint6, 16); + return codepoint <= 0xd7ff || 0xe000 <= codepoint ? String.fromCodePoint(codepoint) : "�"; + } + throw new SyntaxError("Unknown escape sequence"); + } + function parseIndent() { + let start = cursor; + consumeToken(TOKEN_BLANK); + switch (source[cursor]) { + case ".": + case "[": + case "*": + case "}": + case undefined: + return false; + case "{": + return makeIndent(source.slice(start, cursor)); + } + if (source[cursor - 1] === " ") { + return makeIndent(source.slice(start, cursor)); + } + return false; + } + function trim(text, re) { + return text.replace(re, ""); + } + function makeIndent(blank) { + let value = blank.replace(RE_BLANK_LINES, "\n"); + let length = RE_INDENT.exec(blank)[1].length; + return new Indent(value, length); + } + } +} +class Indent { + constructor(value, length) { + this.value = value; + this.length = length; + } +} +;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/index.js + + + + +/***/ }), + +/***/ 8275: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + DOMLocalization: () => (/* reexport */ DOMLocalization) +}); + +// UNUSED EXPORTS: Localization + +;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/overlay.js +const reOverlay = /<|&#?\w+;/; +const TEXT_LEVEL_ELEMENTS = { + "http://www.w3.org/1999/xhtml": ["em", "strong", "small", "s", "cite", "q", "dfn", "abbr", "data", "time", "code", "var", "samp", "kbd", "sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr"] }; -exports.LinkTarget = LinkTarget; -function addLinkAttributes(link, { - url, - target, - rel, - enabled = true -} = {}) { - if (!url || typeof url !== "string") { - throw new Error('A valid "url" parameter must provided.'); +const LOCALIZABLE_ATTRIBUTES = { + "http://www.w3.org/1999/xhtml": { + global: ["title", "aria-label", "aria-valuetext"], + a: ["download"], + area: ["download", "alt"], + input: ["alt", "placeholder"], + menuitem: ["label"], + menu: ["label"], + optgroup: ["label"], + option: ["label"], + track: ["label"], + img: ["alt"], + textarea: ["placeholder"], + th: ["abbr"] + }, + "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul": { + global: ["accesskey", "aria-label", "aria-valuetext", "label", "title", "tooltiptext"], + description: ["value"], + key: ["key", "keycode"], + label: ["value"], + textbox: ["placeholder", "value"] } - const urlNullRemoved = (0, _ui_utils.removeNullCharacters)(url); - if (enabled) { - link.href = link.title = urlNullRemoved; - } else { - link.href = ""; - link.title = `Disabled: ${urlNullRemoved}`; - link.onclick = () => { - return false; - }; +}; +function translateElement(element, translation) { + const { + value + } = translation; + if (typeof value === "string") { + if (element.localName === "title" && element.namespaceURI === "http://www.w3.org/1999/xhtml") { + element.textContent = value; + } else if (!reOverlay.test(value)) { + element.textContent = value; + } else { + const templateElement = element.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml", "template"); + templateElement.innerHTML = value; + overlayChildNodes(templateElement.content, element); + } } - let targetStr = ""; - switch (target) { - case LinkTarget.NONE: - break; - case LinkTarget.SELF: - targetStr = "_self"; - break; - case LinkTarget.BLANK: - targetStr = "_blank"; - break; - case LinkTarget.PARENT: - targetStr = "_parent"; - break; - case LinkTarget.TOP: - targetStr = "_top"; - break; + overlayAttributes(translation, element); +} +function overlayChildNodes(fromFragment, toElement) { + for (const childNode of fromFragment.childNodes) { + if (childNode.nodeType === childNode.TEXT_NODE) { + continue; + } + if (childNode.hasAttribute("data-l10n-name")) { + const sanitized = getNodeForNamedElement(toElement, childNode); + fromFragment.replaceChild(sanitized, childNode); + continue; + } + if (isElementAllowed(childNode)) { + const sanitized = createSanitizedElement(childNode); + fromFragment.replaceChild(sanitized, childNode); + continue; + } + console.warn(`An element of forbidden type "${childNode.localName}" was found in ` + "the translation. Only safe text-level elements and elements with " + "data-l10n-name are allowed."); + fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode); } - link.target = targetStr; - link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; + toElement.textContent = ""; + toElement.appendChild(fromFragment); } -class PDFLinkService { - #pagesRefCache = new Map(); - constructor({ - eventBus, - externalLinkTarget = null, - externalLinkRel = null, - ignoreDestinationZoom = false - } = {}) { - this.eventBus = eventBus; - this.externalLinkTarget = externalLinkTarget; - this.externalLinkRel = externalLinkRel; - this.externalLinkEnabled = true; - this._ignoreDestinationZoom = ignoreDestinationZoom; - this.baseUrl = null; - this.pdfDocument = null; - this.pdfViewer = null; - this.pdfHistory = null; +function hasAttribute(attributes, name) { + if (!attributes) { + return false; } - setDocument(pdfDocument, baseUrl = null) { - this.baseUrl = baseUrl; - this.pdfDocument = pdfDocument; - this.#pagesRefCache.clear(); + for (let attr of attributes) { + if (attr.name === name) { + return true; + } } - setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; + return false; +} +function overlayAttributes(fromElement, toElement) { + const explicitlyAllowed = toElement.hasAttribute("data-l10n-attrs") ? toElement.getAttribute("data-l10n-attrs").split(",").map(i => i.trim()) : null; + for (const attr of Array.from(toElement.attributes)) { + if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && !hasAttribute(fromElement.attributes, attr.name)) { + toElement.removeAttribute(attr.name); + } } - setHistory(pdfHistory) { - this.pdfHistory = pdfHistory; + if (!fromElement.attributes) { + return; } - get pagesCount() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; + for (const attr of Array.from(fromElement.attributes)) { + if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && toElement.getAttribute(attr.name) !== attr.value) { + toElement.setAttribute(attr.name, attr.value); + } } - get page() { - return this.pdfViewer.currentPageNumber; +} +function getNodeForNamedElement(sourceElement, translatedChild) { + const childName = translatedChild.getAttribute("data-l10n-name"); + const sourceChild = sourceElement.querySelector(`[data-l10n-name="${childName}"]`); + if (!sourceChild) { + console.warn(`An element named "${childName}" wasn't found in the source.`); + return createTextNodeFromTextContent(translatedChild); } - set page(value) { - this.pdfViewer.currentPageNumber = value; + if (sourceChild.localName !== translatedChild.localName) { + console.warn(`An element named "${childName}" was found in the translation ` + `but its type ${translatedChild.localName} didn't match the ` + `element found in the source (${sourceChild.localName}).`); + return createTextNodeFromTextContent(translatedChild); } - get rotation() { - return this.pdfViewer.pagesRotation; + sourceElement.removeChild(sourceChild); + const clone = sourceChild.cloneNode(false); + return shallowPopulateUsing(translatedChild, clone); +} +function createSanitizedElement(element) { + const clone = element.ownerDocument.createElement(element.localName); + return shallowPopulateUsing(element, clone); +} +function createTextNodeFromTextContent(element) { + return element.ownerDocument.createTextNode(element.textContent); +} +function isElementAllowed(element) { + const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI]; + return allowed && allowed.includes(element.localName); +} +function isAttrNameLocalizable(name, element, explicitlyAllowed = null) { + if (explicitlyAllowed && explicitlyAllowed.includes(name)) { + return true; } - set rotation(value) { - this.pdfViewer.pagesRotation = value; + const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI]; + if (!allowed) { + return false; } - #goToDestinationHelper(rawDest, namedDest = null, explicitDest) { - const destRef = explicitDest[0]; - let pageNumber; - if (typeof destRef === "object" && destRef !== null) { - pageNumber = this._cachedPageNumber(destRef); - if (!pageNumber) { - this.pdfDocument.getPageIndex(destRef).then(pageIndex => { - this.cachePageRef(pageIndex + 1, destRef); - this.#goToDestinationHelper(rawDest, namedDest, explicitDest); - }).catch(() => { - console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); - }); - return; - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } else { - console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); - return; + const attrName = name.toLowerCase(); + const elemName = element.localName; + if (allowed.global.includes(attrName)) { + return true; + } + if (!allowed[elemName]) { + return false; + } + if (allowed[elemName].includes(attrName)) { + return true; + } + if (element.namespaceURI === "http://www.w3.org/1999/xhtml" && elemName === "input" && attrName === "value") { + const type = element.type.toLowerCase(); + if (type === "submit" || type === "button" || type === "reset") { + return true; } - if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { - console.error(`PDFLinkService.#goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); - return; + } + return false; +} +function shallowPopulateUsing(fromElement, toElement) { + toElement.textContent = fromElement.textContent; + overlayAttributes(fromElement, toElement); + return toElement; +} +;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_iterable.mjs +class CachedIterable extends Array { + static from(iterable) { + if (iterable instanceof this) { + return iterable; } - if (this.pdfHistory) { - this.pdfHistory.pushCurrentPosition(); - this.pdfHistory.push({ - namedDest, - explicitDest, - pageNumber - }); + return new this(iterable); + } +} +;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_sync_iterable.mjs + +class CachedSyncIterable extends CachedIterable { + constructor(iterable) { + super(); + if (Symbol.iterator in Object(iterable)) { + this.iterator = iterable[Symbol.iterator](); + } else { + throw new TypeError("Argument must implement the iteration protocol."); } - this.pdfViewer.scrollPageIntoView({ - pageNumber, - destArray: explicitDest, - ignoreDestinationZoom: this._ignoreDestinationZoom - }); } - async goToDestination(dest) { - if (!this.pdfDocument) { - return; + [Symbol.iterator]() { + const cached = this; + let cur = 0; + return { + next() { + if (cached.length <= cur) { + cached.push(cached.iterator.next()); + } + return cached[cur++]; + } + }; + } + touchNext(count = 1) { + let idx = 0; + while (idx++ < count) { + const last = this[this.length - 1]; + if (last && last.done) { + break; + } + this.push(this.iterator.next()); } - let namedDest, explicitDest; - if (typeof dest === "string") { - namedDest = dest; - explicitDest = await this.pdfDocument.getDestination(dest); + return this[this.length - 1]; + } +} +;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_async_iterable.mjs + +class CachedAsyncIterable extends CachedIterable { + constructor(iterable) { + super(); + if (Symbol.asyncIterator in Object(iterable)) { + this.iterator = iterable[Symbol.asyncIterator](); + } else if (Symbol.iterator in Object(iterable)) { + this.iterator = iterable[Symbol.iterator](); } else { - namedDest = null; - explicitDest = await dest; - } - if (!Array.isArray(explicitDest)) { - console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); - return; + throw new TypeError("Argument must implement the iteration protocol."); } - this.#goToDestinationHelper(dest, namedDest, explicitDest); } - goToPage(val) { - if (!this.pdfDocument) { - return; + [Symbol.asyncIterator]() { + const cached = this; + let cur = 0; + return { + async next() { + if (cached.length <= cur) { + cached.push(cached.iterator.next()); + } + return cached[cur++]; + } + }; + } + async touchNext(count = 1) { + let idx = 0; + while (idx++ < count) { + const last = this[this.length - 1]; + if (last && (await last).done) { + break; + } + this.push(this.iterator.next()); } - const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; - if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { - console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); - return; + return this[this.length - 1]; + } +} +;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/index.mjs + + +;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/localization.js + +class Localization { + constructor(resourceIds = [], generateBundles) { + this.resourceIds = resourceIds; + this.generateBundles = generateBundles; + this.onChange(true); + } + addResourceIds(resourceIds, eager = false) { + this.resourceIds.push(...resourceIds); + this.onChange(eager); + return this.resourceIds.length; + } + removeResourceIds(resourceIds) { + this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r)); + this.onChange(); + return this.resourceIds.length; + } + async formatWithFallback(keys, method) { + const translations = []; + let hasAtLeastOneBundle = false; + for await (const bundle of this.bundles) { + hasAtLeastOneBundle = true; + const missingIds = keysFromBundle(method, bundle, keys, translations); + if (missingIds.size === 0) { + break; + } + if (typeof console !== "undefined") { + const locale = bundle.locales[0]; + const ids = Array.from(missingIds).join(", "); + console.warn(`[fluent] Missing translations in ${locale}: ${ids}`); + } } - if (this.pdfHistory) { - this.pdfHistory.pushCurrentPosition(); - this.pdfHistory.pushPage(pageNumber); + if (!hasAtLeastOneBundle && typeof console !== "undefined") { + console.warn(`[fluent] Request for keys failed because no resource bundles got generated. + keys: ${JSON.stringify(keys)}. + resourceIds: ${JSON.stringify(this.resourceIds)}.`); } - this.pdfViewer.scrollPageIntoView({ - pageNumber - }); + return translations; } - addLinkAttributes(link, url, newWindow = false) { - addLinkAttributes(link, { - url, - target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget, - rel: this.externalLinkRel, - enabled: this.externalLinkEnabled - }); + formatMessages(keys) { + return this.formatWithFallback(keys, messageFromBundle); } - getDestinationHash(dest) { - if (typeof dest === "string") { - if (dest.length > 0) { - return this.getAnchorUrl("#" + escape(dest)); - } - } else if (Array.isArray(dest)) { - const str = JSON.stringify(dest); - if (str.length > 0) { - return this.getAnchorUrl("#" + escape(str)); - } + formatValues(keys) { + return this.formatWithFallback(keys, valueFromBundle); + } + async formatValue(id, args) { + const [val] = await this.formatValues([{ + id, + args + }]); + return val; + } + handleEvent() { + this.onChange(); + } + onChange(eager = false) { + this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds)); + if (eager) { + this.bundles.touchNext(2); } - return this.getAnchorUrl(""); } - getAnchorUrl(anchor) { - return (this.baseUrl || "") + anchor; +} +function valueFromBundle(bundle, errors, message, args) { + if (message.value) { + return bundle.formatPattern(message.value, args, errors); } - setHash(hash) { - if (!this.pdfDocument) { + return null; +} +function messageFromBundle(bundle, errors, message, args) { + const formatted = { + value: null, + attributes: null + }; + if (message.value) { + formatted.value = bundle.formatPattern(message.value, args, errors); + } + let attrNames = Object.keys(message.attributes); + if (attrNames.length > 0) { + formatted.attributes = new Array(attrNames.length); + for (let [i, name] of attrNames.entries()) { + let value = bundle.formatPattern(message.attributes[name], args, errors); + formatted.attributes[i] = { + name, + value + }; + } + } + return formatted; +} +function keysFromBundle(method, bundle, keys, translations) { + const messageErrors = []; + const missingIds = new Set(); + keys.forEach(({ + id, + args + }, i) => { + if (translations[i] !== undefined) { return; } - let pageNumber, dest; - if (hash.includes("=")) { - const params = (0, _ui_utils.parseQueryString)(hash); - if (params.has("search")) { - this.eventBus.dispatch("findfromurlhash", { - source: this, - query: params.get("search").replace(/"/g, ""), - phraseSearch: params.get("phrase") === "true" - }); - } - if (params.has("page")) { - pageNumber = params.get("page") | 0 || 1; - } - if (params.has("zoom")) { - const zoomArgs = params.get("zoom").split(","); - const zoomArg = zoomArgs[0]; - const zoomArgNumber = parseFloat(zoomArg); - if (!zoomArg.includes("Fit")) { - dest = [null, { - name: "XYZ" - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; - } else { - if (zoomArg === "Fit" || zoomArg === "FitB") { - dest = [null, { - name: zoomArg - }]; - } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { - dest = [null, { - name: zoomArg - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; - } else if (zoomArg === "FitR") { - if (zoomArgs.length !== 5) { - console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); - } else { - dest = [null, { - name: zoomArg - }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; - } - } else { - console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); - } - } - } - if (dest) { - this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber || this.page, - destArray: dest, - allowNegativeOffset: true - }); - } else if (pageNumber) { - this.page = pageNumber; + let message = bundle.getMessage(id); + if (message) { + messageErrors.length = 0; + translations[i] = method(bundle, messageErrors, message, args); + if (messageErrors.length > 0 && typeof console !== "undefined") { + const locale = bundle.locales[0]; + const errors = messageErrors.join(", "); + console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`); } - if (params.has("pagemode")) { - this.eventBus.dispatch("pagemode", { - source: this, - mode: params.get("pagemode") - }); + } else { + missingIds.add(id); + } + }); + return missingIds; +} +;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/dom_localization.js + + +const L10NID_ATTR_NAME = "data-l10n-id"; +const L10NARGS_ATTR_NAME = "data-l10n-args"; +const L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`; +class DOMLocalization extends Localization { + constructor(resourceIds, generateBundles) { + super(resourceIds, generateBundles); + this.roots = new Set(); + this.pendingrAF = null; + this.pendingElements = new Set(); + this.windowElement = null; + this.mutationObserver = null; + this.observerConfig = { + attributes: true, + characterData: false, + childList: true, + subtree: true, + attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME] + }; + } + onChange(eager = false) { + super.onChange(eager); + if (this.roots) { + this.translateRoots(); + } + } + setAttributes(element, id, args) { + element.setAttribute(L10NID_ATTR_NAME, id); + if (args) { + element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args)); + } else { + element.removeAttribute(L10NARGS_ATTR_NAME); + } + return element; + } + getAttributes(element) { + return { + id: element.getAttribute(L10NID_ATTR_NAME), + args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) + }; + } + connectRoot(newRoot) { + for (const root of this.roots) { + if (root === newRoot || root.contains(newRoot) || newRoot.contains(root)) { + throw new Error("Cannot add a root that overlaps with existing root."); } - if (params.has("nameddest")) { - this.goToDestination(params.get("nameddest")); + } + if (this.windowElement) { + if (this.windowElement !== newRoot.ownerDocument.defaultView) { + throw new Error(`Cannot connect a root: + DOMLocalization already has a root from a different window.`); } } else { - dest = unescape(hash); - try { - dest = JSON.parse(dest); - if (!Array.isArray(dest)) { - dest = dest.toString(); - } - } catch (ex) {} - if (typeof dest === "string" || PDFLinkService.#isValidExplicitDestination(dest)) { - this.goToDestination(dest); - return; - } - console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + this.windowElement = newRoot.ownerDocument.defaultView; + this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations)); + } + this.roots.add(newRoot); + this.mutationObserver.observe(newRoot, this.observerConfig); + } + disconnectRoot(root) { + this.roots.delete(root); + this.pauseObserving(); + if (this.roots.size === 0) { + this.mutationObserver = null; + this.windowElement = null; + this.pendingrAF = null; + this.pendingElements.clear(); + return true; } + this.resumeObserving(); + return false; } - executeNamedAction(action) { - switch (action) { - case "GoBack": - this.pdfHistory?.back(); - break; - case "GoForward": - this.pdfHistory?.forward(); - break; - case "NextPage": - this.pdfViewer.nextPage(); - break; - case "PrevPage": - this.pdfViewer.previousPage(); - break; - case "LastPage": - this.page = this.pagesCount; - break; - case "FirstPage": - this.page = 1; - break; - default: - break; + translateRoots() { + const roots = Array.from(this.roots); + return Promise.all(roots.map(root => this.translateFragment(root))); + } + pauseObserving() { + if (!this.mutationObserver) { + return; } - this.eventBus.dispatch("namedaction", { - source: this, - action - }); + this.translateMutations(this.mutationObserver.takeRecords()); + this.mutationObserver.disconnect(); } - async executeSetOCGState(action) { - const pdfDocument = this.pdfDocument; - const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; - if (pdfDocument !== this.pdfDocument) { + resumeObserving() { + if (!this.mutationObserver) { return; } - let operator; - for (const elem of action.state) { - switch (elem) { - case "ON": - case "OFF": - case "Toggle": - operator = elem; - continue; - } - switch (operator) { - case "ON": - optionalContentConfig.setVisibility(elem, true); - break; - case "OFF": - optionalContentConfig.setVisibility(elem, false); + for (const root of this.roots) { + this.mutationObserver.observe(root, this.observerConfig); + } + } + translateMutations(mutations) { + for (const mutation of mutations) { + switch (mutation.type) { + case "attributes": + if (mutation.target.hasAttribute("data-l10n-id")) { + this.pendingElements.add(mutation.target); + } break; - case "Toggle": - const group = optionalContentConfig.getGroup(elem); - if (group) { - optionalContentConfig.setVisibility(elem, !group.visible); + case "childList": + for (const addedNode of mutation.addedNodes) { + if (addedNode.nodeType === addedNode.ELEMENT_NODE) { + if (addedNode.childElementCount) { + for (const element of this.getTranslatables(addedNode)) { + this.pendingElements.add(element); + } + } else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) { + this.pendingElements.add(addedNode); + } + } } break; } } - this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + if (this.pendingElements.size > 0) { + if (this.pendingrAF === null) { + this.pendingrAF = this.windowElement.requestAnimationFrame(() => { + this.translateElements(Array.from(this.pendingElements)); + this.pendingElements.clear(); + this.pendingrAF = null; + }); + } + } } - cachePageRef(pageNum, pageRef) { - if (!pageRef) { - return; + translateFragment(frag) { + return this.translateElements(this.getTranslatables(frag)); + } + async translateElements(elements) { + if (!elements.length) { + return undefined; } - const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; - this.#pagesRefCache.set(refStr, pageNum); + const keys = elements.map(this.getKeysForElement); + const translations = await this.formatMessages(keys); + return this.applyTranslations(elements, translations); } - _cachedPageNumber(pageRef) { - if (!pageRef) { - return null; + applyTranslations(elements, translations) { + this.pauseObserving(); + for (let i = 0; i < elements.length; i++) { + if (translations[i] !== undefined) { + translateElement(elements[i], translations[i]); + } } - const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; - return this.#pagesRefCache.get(refStr) || null; + this.resumeObserving(); } - isPageVisible(pageNumber) { - return this.pdfViewer.isPageVisible(pageNumber); + getTranslatables(element) { + const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY)); + if (typeof element.hasAttribute === "function" && element.hasAttribute(L10NID_ATTR_NAME)) { + nodes.push(element); + } + return nodes; } - isPageCached(pageNumber) { - return this.pdfViewer.isPageCached(pageNumber); + getKeysForElement(element) { + return { + id: element.getAttribute(L10NID_ATTR_NAME), + args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) + }; } - static #isValidExplicitDestination(dest) { - if (!Array.isArray(dest)) { - return false; - } - const destLength = dest.length; - if (destLength < 2) { - return false; +} +;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/index.js + + + +/***/ }), + +/***/ 631: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AltTextManager: () => (/* binding */ AltTextManager) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +class AltTextManager { + #boundUpdateUIState = this.#updateUIState.bind(this); + #boundSetPosition = this.#setPosition.bind(this); + #boundOnClick = this.#onClick.bind(this); + #currentEditor = null; + #cancelButton; + #dialog; + #eventBus; + #hasUsedPointer = false; + #optionDescription; + #optionDecorative; + #overlayManager; + #saveButton; + #textarea; + #uiManager; + #previousAltText = null; + #svgElement = null; + #rectElement = null; + #container; + #telemetryData = null; + constructor({ + dialog, + optionDescription, + optionDecorative, + textarea, + cancelButton, + saveButton + }, container, overlayManager, eventBus) { + this.#dialog = dialog; + this.#optionDescription = optionDescription; + this.#optionDecorative = optionDecorative; + this.#textarea = textarea; + this.#cancelButton = cancelButton; + this.#saveButton = saveButton; + this.#overlayManager = overlayManager; + this.#eventBus = eventBus; + this.#container = container; + dialog.addEventListener("close", this.#close.bind(this)); + dialog.addEventListener("contextmenu", event => { + if (event.target !== this.#textarea) { + event.preventDefault(); + } + }); + cancelButton.addEventListener("click", this.#finish.bind(this)); + saveButton.addEventListener("click", this.#save.bind(this)); + optionDescription.addEventListener("change", this.#boundUpdateUIState); + optionDecorative.addEventListener("change", this.#boundUpdateUIState); + this.#overlayManager.register(dialog); + } + get _elements() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_elements", [this.#optionDescription, this.#optionDecorative, this.#textarea, this.#saveButton, this.#cancelButton]); + } + #createSVGElement() { + if (this.#svgElement) { + return; + } + const svgFactory = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.DOMSVGFactory(); + const svg = this.#svgElement = svgFactory.createElement("svg"); + svg.setAttribute("width", "0"); + svg.setAttribute("height", "0"); + const defs = svgFactory.createElement("defs"); + svg.append(defs); + const mask = svgFactory.createElement("mask"); + defs.append(mask); + mask.setAttribute("id", "alttext-manager-mask"); + mask.setAttribute("maskContentUnits", "objectBoundingBox"); + let rect = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "white"); + rect.setAttribute("width", "1"); + rect.setAttribute("height", "1"); + rect.setAttribute("x", "0"); + rect.setAttribute("y", "0"); + rect = this.#rectElement = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "black"); + this.#dialog.append(svg); + } + async editAltText(uiManager, editor) { + if (this.#currentEditor || !editor) { + return; + } + this.#createSVGElement(); + this.#hasUsedPointer = false; + for (const element of this._elements) { + element.addEventListener("click", this.#boundOnClick); } - const page = dest[0]; - if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { - return false; + const { + altText, + decorative + } = editor.altTextData; + if (decorative === true) { + this.#optionDecorative.checked = true; + this.#optionDescription.checked = false; + } else { + this.#optionDecorative.checked = false; + this.#optionDescription.checked = true; } - const zoom = dest[1]; - if (!(typeof zoom === "object" && typeof zoom.name === "string")) { - return false; + this.#previousAltText = this.#textarea.value = altText?.trim() || ""; + this.#updateUIState(); + this.#currentEditor = editor; + this.#uiManager = uiManager; + this.#uiManager.removeEditListeners(); + this.#eventBus._on("resize", this.#boundSetPosition); + try { + await this.#overlayManager.open(this.#dialog); + this.#setPosition(); + } catch (ex) { + this.#close(); + throw ex; } - let allowNull = true; - switch (zoom.name) { - case "XYZ": - if (destLength !== 5) { - return false; - } - break; - case "Fit": - case "FitB": - return destLength === 2; - case "FitH": - case "FitBH": - case "FitV": - case "FitBV": - if (destLength !== 3) { - return false; - } - break; - case "FitR": - if (destLength !== 6) { - return false; - } - allowNull = false; - break; - default: - return false; + } + #setPosition() { + if (!this.#currentEditor) { + return; } - for (let i = 2; i < destLength; i++) { - const param = dest[i]; - if (!(typeof param === "number" || allowNull && param === null)) { - return false; + const dialog = this.#dialog; + const { + style + } = dialog; + const { + x: containerX, + y: containerY, + width: containerW, + height: containerH + } = this.#container.getBoundingClientRect(); + const { + innerWidth: windowW, + innerHeight: windowH + } = window; + const { + width: dialogW, + height: dialogH + } = dialog.getBoundingClientRect(); + const { + x, + y, + width, + height + } = this.#currentEditor.getClientDimensions(); + const MARGIN = 10; + const isLTR = this.#uiManager.direction === "ltr"; + const xs = Math.max(x, containerX); + const xe = Math.min(x + width, containerX + containerW); + const ys = Math.max(y, containerY); + const ye = Math.min(y + height, containerY + containerH); + this.#rectElement.setAttribute("width", `${(xe - xs) / windowW}`); + this.#rectElement.setAttribute("height", `${(ye - ys) / windowH}`); + this.#rectElement.setAttribute("x", `${xs / windowW}`); + this.#rectElement.setAttribute("y", `${ys / windowH}`); + let left = null; + let top = Math.max(y, 0); + top += Math.min(windowH - (top + dialogH), 0); + if (isLTR) { + if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } else if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } + if (left === null) { + top = null; + left = Math.max(x, 0); + left += Math.min(windowW - (left + dialogW), 0); + if (y > dialogH + MARGIN) { + top = y - dialogH - MARGIN; + } else if (y + height + MARGIN + dialogH < windowH) { + top = y + height + MARGIN; + } + } + if (top !== null) { + dialog.classList.add("positioned"); + if (isLTR) { + style.left = `${left}px`; + } else { + style.right = `${windowW - left - dialogW}px`; } + style.top = `${top}px`; + } else { + dialog.classList.remove("positioned"); + style.left = ""; + style.top = ""; } - return true; - } -} -exports.PDFLinkService = PDFLinkService; -class SimpleLinkService { - constructor() { - this.externalLinkEnabled = true; - } - get pagesCount() { - return 0; } - get page() { - return 0; + #finish() { + if (this.#overlayManager.active === this.#dialog) { + this.#overlayManager.close(this.#dialog); + } } - set page(value) {} - get rotation() { - return 0; - } - set rotation(value) {} - async goToDestination(dest) {} - goToPage(val) {} - addLinkAttributes(link, url, newWindow = false) { - addLinkAttributes(link, { - url, - enabled: this.externalLinkEnabled + #close() { + this.#eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + subtype: this.#currentEditor.editorType, + data: this.#telemetryData || { + action: "alt_text_cancel", + alt_text_keyboard: !this.#hasUsedPointer + } + } }); + this.#telemetryData = null; + this.#removeOnClickListeners(); + this.#uiManager?.addEditListeners(); + this.#eventBus._off("resize", this.#boundSetPosition); + this.#currentEditor.altTextFinish(); + this.#currentEditor = null; + this.#uiManager = null; } - getDestinationHash(dest) { - return "#"; + #updateUIState() { + this.#textarea.disabled = this.#optionDecorative.checked; + } + #save() { + const altText = this.#textarea.value.trim(); + const decorative = this.#optionDecorative.checked; + this.#currentEditor.altTextData = { + altText, + decorative + }; + this.#telemetryData = { + action: "alt_text_save", + alt_text_description: !!altText, + alt_text_edit: !!this.#previousAltText && this.#previousAltText !== altText, + alt_text_decorative: decorative, + alt_text_keyboard: !this.#hasUsedPointer + }; + this.#finish(); } - getAnchorUrl(hash) { - return "#"; + #onClick(evt) { + if (evt.detail === 0) { + return; + } + this.#hasUsedPointer = true; + this.#removeOnClickListeners(); } - setHash(hash) {} - executeNamedAction(action) {} - executeSetOCGState(action) {} - cachePageRef(pageNum, pageRef) {} - isPageVisible(pageNumber) { - return true; + #removeOnClickListeners() { + for (const element of this._elements) { + element.removeEventListener("click", this.#boundOnClick); + } } - isPageCached(pageNumber) { - return true; + destroy() { + this.#uiManager = null; + this.#finish(); + this.#svgElement?.remove(); + this.#svgElement = this.#rectElement = null; } } -exports.SimpleLinkService = SimpleLinkService; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 4 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); -var _app_options = __webpack_require__(2); -var _event_utils = __webpack_require__(6); -var _pdf_cursor_tools = __webpack_require__(7); -var _pdf_link_service = __webpack_require__(3); -var _annotation_editor_params = __webpack_require__(9); -var _overlay_manager = __webpack_require__(10); -var _password_prompt = __webpack_require__(11); -var _pdf_attachment_viewer = __webpack_require__(12); -var _pdf_document_properties = __webpack_require__(14); -var _pdf_find_bar = __webpack_require__(15); -var _pdf_find_controller = __webpack_require__(16); -var _pdf_history = __webpack_require__(18); -var _pdf_layer_viewer = __webpack_require__(19); -var _pdf_outline_viewer = __webpack_require__(20); -var _pdf_presentation_mode = __webpack_require__(21); -var _pdf_rendering_queue = __webpack_require__(22); -var _pdf_scripting_manager = __webpack_require__(23); -var _pdf_sidebar = __webpack_require__(24); -var _pdf_sidebar_resizer = __webpack_require__(25); -var _pdf_thumbnail_viewer = __webpack_require__(26); -var _pdf_viewer = __webpack_require__(28); -var _secondary_toolbar = __webpack_require__(38); -var _toolbar = __webpack_require__(39); -var _view_history = __webpack_require__(40); -const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; -const FORCE_PAGES_LOADED_TIMEOUT = 10000; -const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; -const ViewOnLoad = { - UNKNOWN: -1, - PREVIOUS: 0, - INITIAL: 1 -}; -const ViewerCssTheme = { - AUTOMATIC: 0, - LIGHT: 1, - DARK: 2 -}; -const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; -const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; -class DefaultExternalServices { - constructor() { - throw new Error("Cannot initialize DefaultExternalServices."); + +/***/ 2640: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AnnotationEditorLayerBuilder: () => (/* binding */ AnnotationEditorLayerBuilder) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var web_l10n_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7910); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_1__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + +class AnnotationEditorLayerBuilder { + #annotationLayer = null; + #drawLayer = null; + #textLayer = null; + #uiManager; + constructor(options) { + this.pageDiv = options.pageDiv; + this.pdfPage = options.pdfPage; + this.accessibilityManager = options.accessibilityManager; + this.l10n = options.l10n || web_l10n_utils__WEBPACK_IMPORTED_MODULE_1__.NullL10n; + this.annotationEditorLayer = null; + this.div = null; + this._cancelled = false; + this.#uiManager = options.uiManager; + this.#annotationLayer = options.annotationLayer || null; + this.#textLayer = options.textLayer || null; + this.#drawLayer = options.drawLayer || null; } - static updateFindControlState(data) {} - static updateFindMatchesCount(data) {} - static initPassiveLoading(callbacks) {} - static reportTelemetry(data) {} - static createDownloadManager(options) { - throw new Error("Not implemented: createDownloadManager"); + async render(viewport, intent = "display") { + if (intent !== "display") { + return; + } + if (this._cancelled) { + return; + } + const clonedViewport = viewport.clone({ + dontFlip: true + }); + if (this.div) { + this.annotationEditorLayer.update({ + viewport: clonedViewport + }); + this.show(); + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationEditorLayer"; + div.tabIndex = 0; + div.hidden = true; + div.dir = this.#uiManager.direction; + this.pageDiv.append(div); + this.annotationEditorLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorLayer({ + uiManager: this.#uiManager, + div, + accessibilityManager: this.accessibilityManager, + pageIndex: this.pdfPage.pageNumber - 1, + l10n: this.l10n, + viewport: clonedViewport, + annotationLayer: this.#annotationLayer, + textLayer: this.#textLayer, + drawLayer: this.#drawLayer + }); + const parameters = { + viewport: clonedViewport, + div, + annotations: null, + intent + }; + this.annotationEditorLayer.render(parameters); + this.show(); } - static createPreferences() { - throw new Error("Not implemented: createPreferences"); + cancel() { + this._cancelled = true; + if (!this.div) { + return; + } + this.pageDiv = null; + this.annotationEditorLayer.destroy(); + this.div.remove(); } - static createL10n(options) { - throw new Error("Not implemented: createL10n"); + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; } - static createScripting(options) { - throw new Error("Not implemented: createScripting"); + show() { + if (!this.div || this.annotationEditorLayer.isEmpty) { + return; + } + this.div.hidden = false; + } +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 1296: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AnnotationEditorParams: () => (/* binding */ AnnotationEditorParams) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +class AnnotationEditorParams { + constructor(options, eventBus) { + this.eventBus = eventBus; + this.#bindListeners(options); } - static get supportsIntegratedFind() { - return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); + #bindListeners({ + editorFreeTextFontSize, + editorFreeTextColor, + editorInkColor, + editorInkThickness, + editorInkOpacity, + editorStampAddImage + }) { + const dispatchEvent = (typeStr, value) => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType[typeStr], + value + }); + }; + editorFreeTextFontSize.addEventListener("input", function () { + dispatchEvent("FREETEXT_SIZE", this.valueAsNumber); + }); + editorFreeTextColor.addEventListener("input", function () { + dispatchEvent("FREETEXT_COLOR", this.value); + }); + editorInkColor.addEventListener("input", function () { + dispatchEvent("INK_COLOR", this.value); + }); + editorInkThickness.addEventListener("input", function () { + dispatchEvent("INK_THICKNESS", this.valueAsNumber); + }); + editorInkOpacity.addEventListener("input", function () { + dispatchEvent("INK_OPACITY", this.valueAsNumber); + }); + editorStampAddImage.addEventListener("click", () => { + dispatchEvent("CREATE"); + }); + this.eventBus._on("annotationeditorparamschanged", evt => { + for (const [type, value] of evt.details) { + switch (type) { + case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.FREETEXT_SIZE: + editorFreeTextFontSize.value = value; + break; + case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.FREETEXT_COLOR: + editorFreeTextColor.value = value; + break; + case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_COLOR: + editorInkColor.value = value; + break; + case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_THICKNESS: + editorInkThickness.value = value; + break; + case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_OPACITY: + editorInkOpacity.value = value; + break; + } + } + }); } - static get supportsDocumentFonts() { - return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 6735: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AnnotationLayerBuilder: () => (/* binding */ AnnotationLayerBuilder) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + +class AnnotationLayerBuilder { + #onPresentationModeChanged = null; + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderForms = true, + enableScripting = false, + hasJSActionsPromise = null, + fieldObjectsPromise = null, + annotationCanvasMap = null, + accessibilityManager = null + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderForms = renderForms; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false); + this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null); + this._annotationCanvasMap = annotationCanvasMap; + this._accessibilityManager = accessibilityManager; + this.annotationLayer = null; + this.div = null; + this._cancelled = false; + this._eventBus = linkService.eventBus; } - static get supportedMouseWheelZoomModifierKeys() { - return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { - ctrlKey: true, - metaKey: true + async render(viewport, intent = "display") { + if (this.div) { + if (this._cancelled || !this.annotationLayer) { + return; + } + this.annotationLayer.update({ + viewport: viewport.clone({ + dontFlip: true + }) + }); + return; + } + const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise, this._fieldObjectsPromise]); + if (this._cancelled) { + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationLayer"; + this.pageDiv.append(div); + if (annotations.length === 0) { + this.hide(); + return; + } + this.annotationLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationLayer({ + div, + accessibilityManager: this._accessibilityManager, + annotationCanvasMap: this._annotationCanvasMap, + page: this.pdfPage, + viewport: viewport.clone({ + dontFlip: true + }) + }); + await this.annotationLayer.render({ + annotations, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + fieldObjects }); + if (this.linkService.isInPresentationMode) { + this.#updatePresentationModeState(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN); + } + if (!this.#onPresentationModeChanged) { + this.#onPresentationModeChanged = evt => { + this.#updatePresentationModeState(evt.state); + }; + this._eventBus?._on("presentationmodechanged", this.#onPresentationModeChanged); + } } - static get isInAutomation() { - return (0, _pdfjsLib.shadow)(this, "isInAutomation", false); + cancel() { + this._cancelled = true; + if (this.#onPresentationModeChanged) { + this._eventBus?._off("presentationmodechanged", this.#onPresentationModeChanged); + this.#onPresentationModeChanged = null; + } } - static updateEditorStates(data) { - throw new Error("Not implemented: updateEditorStates"); + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + #updatePresentationModeState(state) { + if (!this.div) { + return; + } + let disableFormElements = false; + switch (state) { + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN: + disableFormElements = true; + break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL: + break; + default: + return; + } + for (const section of this.div.childNodes) { + if (section.hasAttribute("data-internal-link")) { + continue; + } + section.inert = disableFormElements; + } } } -exports.DefaultExternalServices = DefaultExternalServices; -const PDFViewerApplication = { - initialBookmark: document.location.hash.substring(1), - _initializedCapability: (0, _pdfjsLib.createPromiseCapability)(), - appConfig: null, - pdfDocument: null, - pdfLoadingTask: null, - printService: null, + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 39: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DefaultExternalServices: () => (/* binding */ DefaultExternalServices), +/* harmony export */ PDFPrintServiceFactory: () => (/* binding */ PDFPrintServiceFactory), +/* harmony export */ PDFViewerApplication: () => (/* binding */ PDFViewerApplication) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8961); +/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6554); +/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3234); +/* harmony import */ var web_alt_text_manager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(631); +/* harmony import */ var web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1296); +/* harmony import */ var _overlay_manager_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(1996); +/* harmony import */ var _password_prompt_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6329); +/* harmony import */ var web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(716); +/* harmony import */ var web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(3611); +/* harmony import */ var web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(6312); +/* harmony import */ var web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1795); +/* harmony import */ var _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(3557); +/* harmony import */ var _pdf_history_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(6418); +/* harmony import */ var web_pdf_layer_viewer__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(3706); +/* harmony import */ var web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(1141); +/* harmony import */ var web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(323); +/* harmony import */ var _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(5119); +/* harmony import */ var _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(2599); +/* harmony import */ var web_pdf_sidebar__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(4487); +/* harmony import */ var web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(3510); +/* harmony import */ var _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(9290); +/* harmony import */ var web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(1544); +/* harmony import */ var web_toolbar__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(276); +/* harmony import */ var _view_history_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(1096); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__, web_alt_text_manager__WEBPACK_IMPORTED_MODULE_5__, web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_6__, _password_prompt_js__WEBPACK_IMPORTED_MODULE_7__, web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_8__, web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_9__, web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_10__, web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_11__, _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_12__, web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_15__, web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_16__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_17__, _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_18__, web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_20__, _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_21__, web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_22__, web_toolbar__WEBPACK_IMPORTED_MODULE_23__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__, web_alt_text_manager__WEBPACK_IMPORTED_MODULE_5__, web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_6__, _password_prompt_js__WEBPACK_IMPORTED_MODULE_7__, web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_8__, web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_9__, web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_10__, web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_11__, _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_12__, web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_15__, web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_16__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_17__, _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_18__, web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_20__, _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_21__, web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_22__, web_toolbar__WEBPACK_IMPORTED_MODULE_23__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + + + + + + + + + + + + + + + + + + + + + + + + + +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ViewOnLoad = { + UNKNOWN: -1, + PREVIOUS: 0, + INITIAL: 1 +}; +class DefaultExternalServices { + constructor() { + throw new Error("Cannot initialize DefaultExternalServices."); + } + static updateFindControlState(data) {} + static updateFindMatchesCount(data) {} + static initPassiveLoading(callbacks) {} + static reportTelemetry(data) {} + static createDownloadManager() { + throw new Error("Not implemented: createDownloadManager"); + } + static createPreferences() { + throw new Error("Not implemented: createPreferences"); + } + static async createL10n() { + throw new Error("Not implemented: createL10n"); + } + static createScripting() { + throw new Error("Not implemented: createScripting"); + } + static updateEditorStates(data) { + throw new Error("Not implemented: updateEditorStates"); + } + static getNimbusExperimentData() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "getNimbusExperimentData", Promise.resolve(null)); + } +} +const PDFViewerApplication = { + initialBookmark: document.location.hash.substring(1), + _initializedCapability: new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(), + appConfig: null, + pdfDocument: null, + pdfLoadingTask: null, + printService: null, pdfViewer: null, pdfThumbnailViewer: null, pdfRenderingQueue: null, @@ -1378,7 +2074,6 @@ const PDFViewerApplication = { pdfLinkService: null, pdfHistory: null, pdfSidebar: null, - pdfSidebarResizer: null, pdfOutlineViewer: null, pdfAttachmentViewer: null, pdfLayerViewer: null, @@ -1406,50 +2101,53 @@ const PDFViewerApplication = { _contentDispositionFilename: null, _contentLength: null, _saveInProgress: false, - _docStats: null, _wheelUnusedTicks: 0, + _wheelUnusedFactor: 1, + _touchUnusedTicks: 0, + _touchUnusedFactor: 1, _PDFBug: null, _hasAnnotationEditors: false, _title: document.title, _printAnnotationStoragePromise: null, + _touchInfo: null, + _isCtrlKeyDown: false, + _nimbusDataPromise: null, async initialize(appConfig) { - this.preferences = this.externalServices.createPreferences(); + let l10nPromise; this.appConfig = appConfig; - await this._readPreferences(); - await this._parseHashParameters(); - this._forceCssTheme(); - await this._initializeL10n(); - if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdf_link_service.LinkTarget.NONE) { - _app_options.AppOptions.set("externalLinkTarget", _pdf_link_service.LinkTarget.TOP); + try { + await this.preferences.initializedPromise; + } catch (ex) { + console.error(`initialize: "${ex.message}".`); + } + if (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pdfBugEnabled")) { + await this._parseHashParams(); + } + let mode; + switch (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("viewerCssTheme")) { + case 1: + mode = "is-light"; + break; + case 2: + mode = "is-dark"; + break; + } + if (mode) { + document.documentElement.classList.add(mode); + } + l10nPromise = this.externalServices.createL10n(); + this.l10n = await l10nPromise; + document.getElementsByTagName("html")[0].dir = this.l10n.getDirection(); + this.l10n.translate(appConfig.appContainer || document.documentElement); + if (this.isViewerEmbedded && _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkTarget") === _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__.LinkTarget.NONE) { + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("externalLinkTarget", _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__.LinkTarget.TOP); } await this._initializeViewerComponents(); this.bindEvents(); this.bindWindowEvents(); - const appContainer = appConfig.appContainer || document.documentElement; - this.l10n.translate(appContainer).then(() => { - this.eventBus.dispatch("localized", { - source: this - }); - }); this._initializedCapability.resolve(); }, - async _readPreferences() { - if (_app_options.AppOptions.get("disablePreferences")) { - return; - } - if (_app_options.AppOptions._hasUserOptions()) { - console.warn("_readPreferences: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); - } - try { - _app_options.AppOptions.setAll(await this.preferences.getAll()); - } catch (reason) { - console.error(`_readPreferences: "${reason?.message}".`); - } - }, - async _parseHashParameters() { - if (!_app_options.AppOptions.get("pdfBugEnabled")) { - return; - } + async _parseHashParams() { const hash = document.location.hash.substring(1); if (!hash) { return; @@ -1458,36 +2156,36 @@ const PDFViewerApplication = { mainContainer, viewerContainer } = this.appConfig, - params = (0, _ui_utils.parseQueryString)(hash); + params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); if (params.get("disableworker") === "true") { try { await loadFakeWorker(); } catch (ex) { - console.error(`_parseHashParameters: "${ex.message}".`); + console.error(`_parseHashParams: "${ex.message}".`); } } if (params.has("disablerange")) { - _app_options.AppOptions.set("disableRange", params.get("disablerange") === "true"); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableRange", params.get("disablerange") === "true"); } if (params.has("disablestream")) { - _app_options.AppOptions.set("disableStream", params.get("disablestream") === "true"); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableStream", params.get("disablestream") === "true"); } if (params.has("disableautofetch")) { - _app_options.AppOptions.set("disableAutoFetch", params.get("disableautofetch") === "true"); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableAutoFetch", params.get("disableautofetch") === "true"); } if (params.has("disablefontface")) { - _app_options.AppOptions.set("disableFontFace", params.get("disablefontface") === "true"); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableFontFace", params.get("disablefontface") === "true"); } if (params.has("disablehistory")) { - _app_options.AppOptions.set("disableHistory", params.get("disablehistory") === "true"); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableHistory", params.get("disablehistory") === "true"); } if (params.has("verbosity")) { - _app_options.AppOptions.set("verbosity", params.get("verbosity") | 0); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("verbosity", params.get("verbosity") | 0); } if (params.has("textlayer")) { switch (params.get("textlayer")) { case "off": - _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("textLayerMode", _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.TextLayerMode.DISABLE); break; case "visible": case "shadow": @@ -1497,197 +2195,263 @@ const PDFViewerApplication = { await loadPDFBug(this); this._PDFBug.loadCSS(); } catch (ex) { - console.error(`_parseHashParameters: "${ex.message}".`); + console.error(`_parseHashParams: "${ex.message}".`); } break; } } if (params.has("pdfbug")) { - _app_options.AppOptions.set("pdfBug", true); - _app_options.AppOptions.set("fontExtraProperties", true); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("pdfBug", true); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("fontExtraProperties", true); const enabled = params.get("pdfbug").split(","); try { await loadPDFBug(this); - this._PDFBug.init({ - OPS: _pdfjsLib.OPS - }, mainContainer, enabled); + this._PDFBug.init(mainContainer, enabled); } catch (ex) { - console.error(`_parseHashParameters: "${ex.message}".`); + console.error(`_parseHashParams: "${ex.message}".`); } } if (params.has("locale")) { - _app_options.AppOptions.set("locale", params.get("locale")); - } - }, - async _initializeL10n() { - this.l10n = this.externalServices.createL10n({ - locale: _app_options.AppOptions.get("locale") - }); - const dir = await this.l10n.getDirection(); - document.getElementsByTagName("html")[0].dir = dir; - }, - _forceCssTheme() { - const cssTheme = _app_options.AppOptions.get("viewerCssTheme"); - if (cssTheme === ViewerCssTheme.AUTOMATIC || !Object.values(ViewerCssTheme).includes(cssTheme)) { - return; - } - try { - const styleSheet = document.styleSheets[0]; - const cssRules = styleSheet?.cssRules || []; - for (let i = 0, ii = cssRules.length; i < ii; i++) { - const rule = cssRules[i]; - if (rule instanceof CSSMediaRule && rule.media?.[0] === "(prefers-color-scheme: dark)") { - if (cssTheme === ViewerCssTheme.LIGHT) { - styleSheet.deleteRule(i); - return; - } - const darkRules = /^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.exec(rule.cssText); - if (darkRules?.[1]) { - styleSheet.deleteRule(i); - styleSheet.insertRule(darkRules[1], i); - } - return; - } - } - } catch (reason) { - console.error(`_forceCssTheme: "${reason?.message}".`); + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("locale", params.get("locale")); } }, async _initializeViewerComponents() { const { appConfig, - externalServices + externalServices, + l10n } = this; - const eventBus = externalServices.isInAutomation ? new _event_utils.AutomationEventBus() : new _event_utils.EventBus(); + const eventBus = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("isInAutomation") ? new _event_utils_js__WEBPACK_IMPORTED_MODULE_3__.AutomationEventBus() : new _event_utils_js__WEBPACK_IMPORTED_MODULE_3__.EventBus(); this.eventBus = eventBus; - this.overlayManager = new _overlay_manager.OverlayManager(); - const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.overlayManager = new _overlay_manager_js__WEBPACK_IMPORTED_MODULE_24__.OverlayManager(); + const pdfRenderingQueue = new _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_17__.PDFRenderingQueue(); pdfRenderingQueue.onIdle = this._cleanup.bind(this); this.pdfRenderingQueue = pdfRenderingQueue; - const pdfLinkService = new _pdf_link_service.PDFLinkService({ + const pdfLinkService = new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__.PDFLinkService({ eventBus, - externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), - externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), - ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") + externalLinkTarget: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkTarget"), + externalLinkRel: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("ignoreDestinationZoom") }); this.pdfLinkService = pdfLinkService; const downloadManager = externalServices.createDownloadManager(); this.downloadManager = downloadManager; - const findController = new _pdf_find_controller.PDFFindController({ + const findController = new _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_12__.PDFFindController({ linkService: pdfLinkService, - eventBus + eventBus, + updateMatchesCountOnProgress: true }); this.findController = findController; - const pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({ + const pdfScriptingManager = new _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_18__.PDFScriptingManager({ eventBus, - sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"), - scriptingFactory: externalServices, - docPropertiesLookup: this._scriptingDocProperties.bind(this) + externalServices, + docProperties: this._scriptingDocProperties.bind(this) }); this.pdfScriptingManager = pdfScriptingManager; const container = appConfig.mainContainer, viewer = appConfig.viewerContainer; - const annotationEditorMode = _app_options.AppOptions.get("annotationEditorMode"); - const pageColors = _app_options.AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { - background: _app_options.AppOptions.get("pageColorsBackground"), - foreground: _app_options.AppOptions.get("pageColorsForeground") + const annotationEditorMode = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("annotationEditorMode"); + const isOffscreenCanvasSupported = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("isOffscreenCanvasSupported") && pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.FeatureTest.isOffscreenCanvasSupported; + const pageColors = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { + background: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pageColorsBackground"), + foreground: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pageColorsForeground") } : null; - this.pdfViewer = new _pdf_viewer.PDFViewer({ + const altTextManager = appConfig.altTextDialog ? new web_alt_text_manager__WEBPACK_IMPORTED_MODULE_5__.AltTextManager(appConfig.altTextDialog, container, this.overlayManager, eventBus) : null; + const pdfViewer = new _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_21__.PDFViewer({ container, viewer, eventBus, renderingQueue: pdfRenderingQueue, linkService: pdfLinkService, downloadManager, + altTextManager, findController, - scriptingManager: _app_options.AppOptions.get("enableScripting") && pdfScriptingManager, - renderer: _app_options.AppOptions.get("renderer"), - l10n: this.l10n, - textLayerMode: _app_options.AppOptions.get("textLayerMode"), - annotationMode: _app_options.AppOptions.get("annotationMode"), + scriptingManager: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableScripting") && pdfScriptingManager, + l10n, + textLayerMode: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("textLayerMode"), + annotationMode: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("annotationMode"), annotationEditorMode, - imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), - enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), - useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), - maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"), - enablePermissions: _app_options.AppOptions.get("enablePermissions"), - pageColors - }); - pdfRenderingQueue.setViewer(this.pdfViewer); - pdfLinkService.setViewer(this.pdfViewer); - pdfScriptingManager.setViewer(this.pdfViewer); - this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ - container: appConfig.sidebar.thumbnailView, - eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - l10n: this.l10n, + annotationEditorHighlightColors: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("highlightEditorColors"), + imageResourcesPath: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("imageResourcesPath"), + enablePrintAutoRotate: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enablePrintAutoRotate"), + isOffscreenCanvasSupported, + maxCanvasPixels: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("maxCanvasPixels"), + enablePermissions: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enablePermissions"), pageColors }); - pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); - if (!this.isViewerEmbedded && !_app_options.AppOptions.get("disableHistory")) { - this.pdfHistory = new _pdf_history.PDFHistory({ + this.pdfViewer = pdfViewer; + pdfRenderingQueue.setViewer(pdfViewer); + pdfLinkService.setViewer(pdfViewer); + pdfScriptingManager.setViewer(pdfViewer); + if (appConfig.sidebar?.thumbnailView) { + this.pdfThumbnailViewer = new web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_20__.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + pageColors + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + } + if (!this.isViewerEmbedded && !_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disableHistory")) { + this.pdfHistory = new _pdf_history_js__WEBPACK_IMPORTED_MODULE_13__.PDFHistory({ linkService: pdfLinkService, eventBus }); pdfLinkService.setHistory(this.pdfHistory); } - if (!this.supportsIntegratedFind) { - this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + if (!this.supportsIntegratedFind && appConfig.findBar) { + this.findBar = new web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_11__.PDFFindBar(appConfig.findBar, eventBus); } - if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { - this.annotationEditorParams = new _annotation_editor_params.AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); - } else { - for (const element of [document.getElementById("editorModeButtons"), document.getElementById("editorModeSeparator")]) { - element.hidden = true; + if (appConfig.annotationEditorParams) { + if (annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.DISABLE) { + if (!isOffscreenCanvasSupported) { + appConfig.toolbar?.editorStampButton?.classList.add("hidden"); + } + const editorHighlightButton = appConfig.toolbar?.editorHighlightButton; + if (editorHighlightButton && _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableHighlightEditor")) { + editorHighlightButton.hidden = false; + } + this.annotationEditorParams = new web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_6__.AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); + } else { + for (const id of ["editorModeButtons", "editorModeSeparator"]) { + document.getElementById(id)?.classList.add("hidden"); + } } } - this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n, () => { - return this._docFilename; - }); - this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ - container, - eventBus, - cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") - }); - this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); - this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, eventBus, this.externalServices); - if (this.supportsFullscreen) { - this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + if (appConfig.documentProperties) { + this.pdfDocumentProperties = new web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_10__.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, l10n, () => this._docFilename); + } + if (appConfig.secondaryToolbar?.cursorHandToolButton) { + this.pdfCursorTools = new web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_9__.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("cursorToolOnLoad") + }); + } + if (appConfig.toolbar) { + this.toolbar = new web_toolbar__WEBPACK_IMPORTED_MODULE_23__.Toolbar(appConfig.toolbar, eventBus); + } + if (appConfig.secondaryToolbar) { + this.secondaryToolbar = new web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_22__.SecondaryToolbar(appConfig.secondaryToolbar, eventBus); + } + if (this.supportsFullscreen && appConfig.secondaryToolbar?.presentationModeButton) { + this.pdfPresentationMode = new web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_16__.PDFPresentationMode({ container, - pdfViewer: this.pdfViewer, + pdfViewer, eventBus }); } - this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n, this.isViewerEmbedded); - this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ - container: appConfig.sidebar.outlineView, - eventBus, - linkService: pdfLinkService, - downloadManager - }); - this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ - container: appConfig.sidebar.attachmentsView, - eventBus, - downloadManager + if (appConfig.passwordOverlay) { + this.passwordPrompt = new _password_prompt_js__WEBPACK_IMPORTED_MODULE_7__.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.isViewerEmbedded); + } + if (appConfig.sidebar?.outlineView) { + this.pdfOutlineViewer = new web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_15__.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + l10n, + linkService: pdfLinkService, + downloadManager + }); + } + if (appConfig.sidebar?.attachmentsView) { + this.pdfAttachmentViewer = new web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_8__.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + l10n, + downloadManager + }); + } + if (appConfig.sidebar?.layersView) { + this.pdfLayerViewer = new web_pdf_layer_viewer__WEBPACK_IMPORTED_MODULE_14__.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n + }); + } + if (appConfig.sidebar) { + this.pdfSidebar = new web_pdf_sidebar__WEBPACK_IMPORTED_MODULE_19__.PDFSidebar({ + elements: appConfig.sidebar, + eventBus, + l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebar.onUpdateThumbnails = () => { + for (const pageView of pdfViewer.getCachedPageViews()) { + if (pageView.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { + this.pdfThumbnailViewer.getThumbnail(pageView.id - 1)?.setImage(pageView); + } + } + this.pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + }; + } + }, + async run(config) { + this.preferences = this.externalServices.createPreferences(); + await this.initialize(config); + const { + appConfig, + eventBus + } = this; + let file; + const queryString = document.location.search.substring(1); + const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(queryString); + file = params.get("file") ?? _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultUrl"); + validateFileURL(file); + const fileInput = appConfig.openFileInput; + fileInput.value = null; + fileInput.addEventListener("change", function (evt) { + const { + files + } = evt.target; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.target + }); }); - this.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({ - container: appConfig.sidebar.layersView, - eventBus, - l10n: this.l10n + appConfig.mainContainer.addEventListener("dragover", function (evt) { + evt.preventDefault(); + evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; }); - this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ - elements: appConfig.sidebar, - pdfViewer: this.pdfViewer, - pdfThumbnailViewer: this.pdfThumbnailViewer, - eventBus, - l10n: this.l10n + appConfig.mainContainer.addEventListener("drop", function (evt) { + evt.preventDefault(); + const { + files + } = evt.dataTransfer; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.dataTransfer + }); }); - this.pdfSidebar.onToggled = this.forceRendering.bind(this); - this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); - }, - run(config) { - this.initialize(config).then(webViewerInitialized); + if (!_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsDocumentFonts")) { + _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableFontFace", true); + this.l10n.get("pdfjs-web-fonts-disabled").then(msg => { + console.warn(msg); + }); + } + if (!this.supportsPrinting) { + appConfig.toolbar?.print?.classList.add("hidden"); + appConfig.secondaryToolbar?.printButton.classList.add("hidden"); + } + if (!this.supportsFullscreen) { + appConfig.secondaryToolbar?.presentationModeButton.classList.add("hidden"); + } + if (this.supportsIntegratedFind) { + appConfig.toolbar?.viewFind?.classList.add("hidden"); + } + if (file) { + this.open({ + url: file + }); + } else { + this._hideViewBookmark(); + } }, get initialized() { return this._initializedCapability.settled; @@ -1695,23 +2459,31 @@ const PDFViewerApplication = { get initializedPromise() { return this._initializedCapability.promise; }, - zoomIn(steps) { + zoomIn(steps, scaleFactor) { if (this.pdfViewer.isInPresentationMode) { return; } - this.pdfViewer.increaseScale(steps); + this.pdfViewer.increaseScale({ + drawingDelay: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomDelay"), + steps, + scaleFactor + }); }, - zoomOut(steps) { + zoomOut(steps, scaleFactor) { if (this.pdfViewer.isInPresentationMode) { return; } - this.pdfViewer.decreaseScale(steps); + this.pdfViewer.decreaseScale({ + drawingDelay: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomDelay"), + steps, + scaleFactor + }); }, zoomReset() { if (this.pdfViewer.isInPresentationMode) { return; } - this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pdfViewer.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE; }, get pagesCount() { return this.pdfDocument ? this.pdfDocument.numPages : 0; @@ -1726,35 +2498,42 @@ const PDFViewerApplication = { return PDFPrintServiceFactory.instance.supportsPrinting; }, get supportsFullscreen() { - return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", document.fullscreenEnabled); + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsFullscreen", document.fullscreenEnabled); }, - get supportsIntegratedFind() { - return this.externalServices.supportsIntegratedFind; + get supportsPinchToZoom() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsPinchToZoom", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsPinchToZoom")); }, - get supportsDocumentFonts() { - return this.externalServices.supportsDocumentFonts; + get supportsIntegratedFind() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsIntegratedFind", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsIntegratedFind")); }, get loadingBar() { - const bar = new _ui_utils.ProgressBar("loadingBar"); - return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); + const barElement = document.getElementById("loadingBar"); + const bar = barElement ? new _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ProgressBar(barElement) : null; + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "loadingBar", bar); + }, + get supportsMouseWheelZoomCtrlKey() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsMouseWheelZoomCtrlKey", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsMouseWheelZoomCtrlKey")); }, - get supportedMouseWheelZoomModifierKeys() { - return this.externalServices.supportedMouseWheelZoomModifierKeys; + get supportsMouseWheelZoomMetaKey() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsMouseWheelZoomMetaKey", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsMouseWheelZoomMetaKey")); }, - initPassiveLoading() { + initPassiveLoading(file) { throw new Error("Not implemented: initPassiveLoading"); }, setTitleUsingUrl(url = "", downloadUrl = null) { this.url = url; - this.baseUrl = url.split("#")[0]; + this.baseUrl = url.split("#", 1)[0]; if (downloadUrl) { - this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#")[0]; + this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#", 1)[0]; } - let title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, ""); + if ((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.isDataScheme)(url)) { + this._hideViewBookmark(); + } + let title = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getPdfFilenameFromUrl)(url, ""); if (!title) { try { - title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url; - } catch (ex) { + title = decodeURIComponent((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getFilenameFromUrl)(url)) || url; + } catch { title = url; } } @@ -1769,10 +2548,16 @@ const PDFViewerApplication = { document.title = `${editorIndicator ? "* " : ""}${title}`; }, get _docFilename() { - return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url); + return this._contentDispositionFilename || (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getPdfFilenameFromUrl)(this.url); }, _hideViewBookmark() { - this.appConfig.secondaryToolbar.viewBookmarkButton.hidden = true; + const { + secondaryToolbar + } = this.appConfig; + secondaryToolbar?.viewBookmarkButton.classList.add("hidden"); + if (secondaryToolbar?.presentationModeButton.classList.contains("hidden")) { + document.getElementById("viewBookmarkSeparator")?.classList.add("hidden"); + } }, async close() { this._unblockDocumentLoadEvent(); @@ -1783,17 +2568,17 @@ const PDFViewerApplication = { if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { try { await this.save(); - } catch (reason) {} + } catch {} } const promises = []; promises.push(this.pdfLoadingTask.destroy()); this.pdfLoadingTask = null; if (this.pdfDocument) { this.pdfDocument = null; - this.pdfThumbnailViewer.setDocument(null); + this.pdfThumbnailViewer?.setDocument(null); this.pdfViewer.setDocument(null); this.pdfLinkService.setDocument(null); - this.pdfDocumentProperties.setDocument(null); + this.pdfDocumentProperties?.setDocument(null); } this.pdfLinkService.externalLinkEnabled = true; this.store = null; @@ -1807,53 +2592,39 @@ const PDFViewerApplication = { this._contentDispositionFilename = null; this._contentLength = null; this._saveInProgress = false; - this._docStats = null; this._hasAnnotationEditors = false; - promises.push(this.pdfScriptingManager.destroyPromise); + promises.push(this.pdfScriptingManager.destroyPromise, this.passwordPrompt.close()); this.setTitle(); - this.pdfSidebar.reset(); - this.pdfOutlineViewer.reset(); - this.pdfAttachmentViewer.reset(); - this.pdfLayerViewer.reset(); + this.pdfSidebar?.reset(); + this.pdfOutlineViewer?.reset(); + this.pdfAttachmentViewer?.reset(); + this.pdfLayerViewer?.reset(); this.pdfHistory?.reset(); this.findBar?.reset(); - this.toolbar.reset(); - this.secondaryToolbar.reset(); + this.toolbar?.reset(); + this.secondaryToolbar?.reset(); this._PDFBug?.cleanup(); await Promise.all(promises); }, - async open(file, args) { + async open(args) { if (this.pdfLoadingTask) { await this.close(); } - const workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); - for (const key in workerParameters) { - _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; - } - const parameters = Object.create(null); - if (typeof file === "string") { - this.setTitleUsingUrl(file, file); - parameters.url = file; - } else if (file && "byteLength" in file) { - parameters.data = file; - } else if (file.url && file.originalUrl) { - this.setTitleUsingUrl(file.originalUrl, file.url); - parameters.url = file.url; - } - const apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); - for (const key in apiParameters) { - let value = apiParameters[key]; - if (key === "docBaseUrl" && !value) {} - parameters[key] = value; + const workerParams = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.getAll(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.OptionKind.WORKER); + Object.assign(pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.GlobalWorkerOptions, workerParams); + if (args.url) { + this.setTitleUsingUrl(args.originalUrl || args.url, args.url); } - if (args) { - for (const key in args) { - parameters[key] = args[key]; - } - } - const loadingTask = (0, _pdfjsLib.getDocument)(parameters); + const apiParams = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.getAll(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.OptionKind.API); + const loadingTask = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getDocument)({ + ...apiParams, + ...args + }); this.pdfLoadingTask = loadingTask; loadingTask.onPassword = (updateCallback, reason) => { + if (this.isViewerEmbedded) { + this._unblockDocumentLoadEvent(); + } this.pdfLinkService.externalLinkEnabled = false; this.passwordPrompt.setUpdateCallback(updateCallback, reason); this.passwordPrompt.open(); @@ -1864,20 +2635,19 @@ const PDFViewerApplication = { }) => { this.progress(loaded / total); }; - loadingTask.onUnsupportedFeature = this.fallback.bind(this); return loadingTask.promise.then(pdfDocument => { this.load(pdfDocument); }, reason => { if (loadingTask !== this.pdfLoadingTask) { return undefined; } - let key = "loading_error"; - if (reason instanceof _pdfjsLib.InvalidPDFException) { - key = "invalid_file_error"; - } else if (reason instanceof _pdfjsLib.MissingPDFException) { - key = "missing_file_error"; - } else if (reason instanceof _pdfjsLib.UnexpectedResponseException) { - key = "unexpected_response_error"; + let key = "pdfjs-loading-error"; + if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.InvalidPDFException) { + key = "pdfjs-invalid-file-error"; + } else if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.MissingPDFException) { + key = "pdfjs-missing-file-error"; + } else if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.UnexpectedResponseException) { + key = "pdfjs-unexpected-response-error"; } return this.l10n.get(key).then(msg => { this._documentError(msg, { @@ -1893,7 +2663,7 @@ const PDFViewerApplication = { } throw new Error("PDF document not downloaded."); }, - async download() { + async download(options = {}) { const url = this._downloadUrl, filename = this._docFilename; try { @@ -1902,12 +2672,12 @@ const PDFViewerApplication = { const blob = new Blob([data], { type: "application/pdf" }); - await this.downloadManager.download(blob, url, filename); - } catch (reason) { - await this.downloadManager.downloadUrl(url, filename); + await this.downloadManager.download(blob, url, filename, options); + } catch { + await this.downloadManager.downloadUrl(url, filename, options); } }, - async save() { + async save(options = {}) { if (this._saveInProgress) { return; } @@ -1921,10 +2691,10 @@ const PDFViewerApplication = { const blob = new Blob([data], { type: "application/pdf" }); - await this.downloadManager.download(blob, url, filename); + await this.downloadManager.download(blob, url, filename, options); } catch (reason) { console.error(`Error when saving the document: ${reason.message}`); - await this.download(); + await this.download(options); } finally { await this.pdfScriptingManager.dispatchDidSave(); this._saveInProgress = false; @@ -1938,17 +2708,16 @@ const PDFViewerApplication = { }); } }, - downloadOrSave() { + downloadOrSave(options = {}) { if (this.pdfDocument?.annotationStorage.size > 0) { - this.save(); + this.save(options); } else { - this.download(); + this.download(options); } }, - fallback(featureId) { - this.externalServices.reportTelemetry({ - type: "unsupportedFeature", - featureId + openInExternalApp() { + this.downloadOrSave({ + openInExternalApp: true }); }, _documentError(message, moreInfo = null) { @@ -1961,7 +2730,7 @@ const PDFViewerApplication = { }); }, _otherError(message, moreInfo = null) { - const moreInfoText = [`PDF.js v${_pdfjsLib.version || "?"} (build: ${_pdfjsLib.build || "?"})`]; + const moreInfoText = [`PDF.js v${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} (build: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"})`]; if (moreInfo) { moreInfoText.push(`Message: ${moreInfo.message}`); if (moreInfo.stack) { @@ -1976,10 +2745,9 @@ const PDFViewerApplication = { } } console.error(`${message}\n\n${moreInfoText.join("\n")}`); - this.fallback(); }, progress(level) { - if (this.downloadComplete) { + if (!this.loadingBar || this.downloadComplete) { return; } const percent = Math.round(level * 100); @@ -1987,19 +2755,9 @@ const PDFViewerApplication = { return; } this.loadingBar.percent = percent; - const disableAutoFetch = this.pdfDocument?.loadingParams.disableAutoFetch ?? _app_options.AppOptions.get("disableAutoFetch"); - if (!disableAutoFetch || isNaN(percent)) { - return; - } - if (this.disableAutoFetchLoadingBarTimeout) { - clearTimeout(this.disableAutoFetchLoadingBarTimeout); - this.disableAutoFetchLoadingBarTimeout = null; + if (this.pdfDocument?.loadingParams.disableAutoFetch ?? _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disableAutoFetch")) { + this.loadingBar.setDisableAutoFetch(); } - this.loadingBar.show(); - this.disableAutoFetchLoadingBarTimeout = setTimeout(() => { - this.loadingBar.hide(); - this.disableAutoFetchLoadingBarTimeout = null; - }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); }, load(pdfDocument) { this.pdfDocument = pdfDocument; @@ -2008,22 +2766,20 @@ const PDFViewerApplication = { }) => { this._contentLength = length; this.downloadComplete = true; - this.loadingBar.hide(); + this.loadingBar?.hide(); firstPagePromise.then(() => { this.eventBus.dispatch("documentloaded", { source: this }); }); }); - const pageLayoutPromise = pdfDocument.getPageLayout().catch(function () {}); - const pageModePromise = pdfDocument.getPageMode().catch(function () {}); - const openActionPromise = pdfDocument.getOpenAction().catch(function () {}); - this.toolbar.setPagesCount(pdfDocument.numPages, false); - this.secondaryToolbar.setPagesCount(pdfDocument.numPages); - let baseDocumentUrl; - baseDocumentUrl = null; - this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); - this.pdfDocumentProperties.setDocument(pdfDocument); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(() => {}); + const pageModePromise = pdfDocument.getPageMode().catch(() => {}); + const openActionPromise = pdfDocument.getOpenAction().catch(() => {}); + this.toolbar?.setPagesCount(pdfDocument.numPages, false); + this.secondaryToolbar?.setPagesCount(pdfDocument.numPages); + this.pdfLinkService.setDocument(pdfDocument); + this.pdfDocumentProperties?.setDocument(pdfDocument); const pdfViewer = this.pdfViewer; pdfViewer.setDocument(pdfDocument); const { @@ -2031,55 +2787,52 @@ const PDFViewerApplication = { onePageRendered, pagesPromise } = pdfViewer; - const pdfThumbnailViewer = this.pdfThumbnailViewer; - pdfThumbnailViewer.setDocument(pdfDocument); - const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ + this.pdfThumbnailViewer?.setDocument(pdfDocument); + const storedPromise = (this.store = new _view_history_js__WEBPACK_IMPORTED_MODULE_25__.ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ page: null, - zoom: _ui_utils.DEFAULT_SCALE_VALUE, + zoom: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE, scrollLeft: "0", scrollTop: "0", rotation: null, - sidebarView: _ui_utils.SidebarView.UNKNOWN, - scrollMode: _ui_utils.ScrollMode.UNKNOWN, - spreadMode: _ui_utils.SpreadMode.UNKNOWN - }).catch(() => { - return Object.create(null); - }); + sidebarView: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN, + scrollMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN, + spreadMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN + }).catch(() => {}); firstPagePromise.then(pdfPage => { - this.loadingBar.setWidth(this.appConfig.viewerContainer); + this.loadingBar?.setWidth(this.appConfig.viewerContainer); this._initializeAnnotationStorageCallbacks(pdfDocument); - Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { - const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); + Promise.all([_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("viewOnLoad"); this._initializePdfHistory({ fingerprint: pdfDocument.fingerprints[0], viewOnLoad, initialDest: openAction?.dest }); const initialBookmark = this.initialBookmark; - const zoom = _app_options.AppOptions.get("defaultZoomValue"); + const zoom = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomValue"); let hash = zoom ? `zoom=${zoom}` : null; let rotation = null; - let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); - let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); - let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); - if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) { + let sidebarView = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("sidebarViewOnLoad"); + let scrollMode = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("scrollModeOnLoad"); + let spreadMode = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("spreadModeOnLoad"); + if (stored?.page && viewOnLoad !== ViewOnLoad.INITIAL) { hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; rotation = parseInt(stored.rotation, 10); - if (sidebarView === _ui_utils.SidebarView.UNKNOWN) { + if (sidebarView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { sidebarView = stored.sidebarView | 0; } - if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + if (scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN) { scrollMode = stored.scrollMode | 0; } - if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + if (spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN) { spreadMode = stored.spreadMode | 0; } } - if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) { - sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode); + if (pageMode && sidebarView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { + sidebarView = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageModeToSidebarView)(pageMode); } - if (pageLayout && scrollMode === _ui_utils.ScrollMode.UNKNOWN && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(pageLayout); + if (pageLayout && scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN && spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN) { + const modes = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageLayoutToViewerModes)(pageLayout); spreadMode = modes.spreadMode; } this.setInitialView(hash, { @@ -2116,7 +2869,7 @@ const PDFViewerApplication = { this._unblockDocumentLoadEvent(); this._initializeAutoPrint(pdfDocument, openActionPromise); }, reason => { - this.l10n.get("loading_error").then(msg => { + this.l10n.get("pdfjs-loading-error").then(msg => { this._documentError(msg, { message: reason?.message }); @@ -2127,32 +2880,38 @@ const PDFViewerApplication = { type: "pageInfo", timestamp: data.timestamp }); - pdfDocument.getOutline().then(outline => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfOutlineViewer.render({ - outline, - pdfDocument + if (this.pdfOutlineViewer) { + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfOutlineViewer.render({ + outline, + pdfDocument + }); }); - }); - pdfDocument.getAttachments().then(attachments => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfAttachmentViewer.render({ - attachments + } + if (this.pdfAttachmentViewer) { + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfAttachmentViewer.render({ + attachments + }); }); - }); - pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfLayerViewer.render({ - optionalContentConfig, - pdfDocument + } + if (this.pdfLayerViewer) { + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); }); - }); + } }); this._initializePageLabels(pdfDocument); this._initializeMetadata(pdfDocument); @@ -2190,30 +2949,26 @@ const PDFViewerApplication = { }; }, async _initializeAutoPrint(pdfDocument, openActionPromise) { - const [openAction, javaScript] = await Promise.all([openActionPromise, !this.pdfViewer.enableScripting ? pdfDocument.getJavaScript() : null]); + const [openAction, jsActions] = await Promise.all([openActionPromise, this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions()]); if (pdfDocument !== this.pdfDocument) { return; } - let triggerAutoPrint = false; - if (openAction?.action === "Print") { - triggerAutoPrint = true; - } - if (javaScript) { - javaScript.some(js => { - if (!js) { - return false; + let triggerAutoPrint = openAction?.action === "Print"; + if (jsActions) { + console.warn("Warning: JavaScript support is not enabled"); + for (const name in jsActions) { + if (triggerAutoPrint) { + break; } - console.warn("Warning: JavaScript support is not enabled"); - this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); - return true; - }); - if (!triggerAutoPrint) { - for (const js of javaScript) { - if (js && _ui_utils.AutoPrintRegExp.test(js)) { - triggerAutoPrint = true; - break; - } + switch (name) { + case "WillClose": + case "WillSave": + case "DidSave": + case "WillPrint": + case "DidPrint": + continue; } + triggerAutoPrint = jsActions[name].some(js => _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.AutoPrintRegExp.test(js)); } } if (triggerAutoPrint) { @@ -2234,7 +2989,7 @@ const PDFViewerApplication = { this.metadata = metadata; this._contentDispositionFilename ??= contentDispositionFilename; this._contentLength ??= contentLength; - console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "?"} [${_pdfjsLib.build || "?"}])`); + console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} [${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"}])`); let pdfTitle = info.Title; const metadataTitle = metadata?.get("dc:title"); if (metadataTitle) { @@ -2253,42 +3008,12 @@ const PDFViewerApplication = { } else { console.warn("Warning: XFA support is not enabled"); } - this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) { console.warn("Warning: Interactive form support is not enabled"); - this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); } if (info.IsSignaturesPresent) { console.warn("Warning: Digital signatures validation is not supported"); - this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.signatures); - } - let versionId = "other"; - if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { - versionId = `v${info.PDFFormatVersion.replace(".", "_")}`; - } - let generatorId = "other"; - if (info.Producer) { - const producer = info.Producer.toLowerCase(); - KNOWN_GENERATORS.some(function (generator) { - if (!producer.includes(generator)) { - return false; - } - generatorId = generator.replace(/[ .-]/g, "_"); - return true; - }); } - let formType = null; - if (info.IsXFAPresent) { - formType = "xfa"; - } else if (info.IsAcroFormPresent) { - formType = "acroform"; - } - this.externalServices.reportTelemetry({ - type: "documentInfo", - version: versionId, - generator: generatorId, - formType - }); this.eventBus.dispatch("metadataloaded", { source: this }); @@ -2298,7 +3023,7 @@ const PDFViewerApplication = { if (pdfDocument !== this.pdfDocument) { return; } - if (!labels || _app_options.AppOptions.get("disablePageLabels")) { + if (!labels || _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disablePageLabels")) { return; } const numLabels = labels.length; @@ -2323,9 +3048,9 @@ const PDFViewerApplication = { toolbar } = this; pdfViewer.setPageLabels(labels); - pdfThumbnailViewer.setPageLabels(labels); - toolbar.setPagesCount(numLabels, true); - toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + pdfThumbnailViewer?.setPageLabels(labels); + toolbar?.setPagesCount(numLabels, true); + toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); }, _initializePdfHistory({ fingerprint, @@ -2338,7 +3063,7 @@ const PDFViewerApplication = { this.pdfHistory.initialize({ fingerprint, resetHistory: viewOnLoad === ViewOnLoad.INITIAL, - updateUrl: _app_options.AppOptions.get("historyUpdateUrl") + updateUrl: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("historyUpdateUrl") }); if (this.pdfHistory.initialBookmark) { this.initialBookmark = this.pdfHistory.initialBookmark; @@ -2387,20 +3112,20 @@ const PDFViewerApplication = { spreadMode } = {}) { const setRotation = angle => { - if ((0, _ui_utils.isValidRotation)(angle)) { + if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(angle)) { this.pdfViewer.pagesRotation = angle; } }; const setViewerModes = (scroll, spread) => { - if ((0, _ui_utils.isValidScrollMode)(scroll)) { + if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidScrollMode)(scroll)) { this.pdfViewer.scrollMode = scroll; } - if ((0, _ui_utils.isValidSpreadMode)(spread)) { + if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidSpreadMode)(spread)) { this.pdfViewer.spreadMode = spread; } }; this.isInitialViewSet = true; - this.pdfSidebar.setInitialView(sidebarView); + this.pdfSidebar?.setInitialView(sidebarView); setViewerModes(scrollMode, spreadMode); if (this.initialBookmark) { setRotation(this.initialRotation); @@ -2411,10 +3136,10 @@ const PDFViewerApplication = { setRotation(rotation); this.pdfLinkService.setHash(storedHash); } - this.toolbar.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); - this.secondaryToolbar.setPageNumber(this.pdfViewer.currentPageNumber); + this.toolbar?.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); + this.secondaryToolbar?.setPageNumber(this.pdfViewer.currentPageNumber); if (!this.pdfViewer.currentScaleValue) { - this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pdfViewer.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE; } }, _cleanup() { @@ -2422,12 +3147,12 @@ const PDFViewerApplication = { return; } this.pdfViewer.cleanup(); - this.pdfThumbnailViewer.cleanup(); - this.pdfDocument.cleanup(this.pdfViewer.renderer === _ui_utils.RendererType.SVG); + this.pdfThumbnailViewer?.cleanup(); + this.pdfDocument.cleanup(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("fontExtraProperties")); }, forceRendering() { this.pdfRenderingQueue.printing = !!this.printService; - this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS; + this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; this.pdfRenderingQueue.renderHighestPriority(); }, beforePrint() { @@ -2438,29 +3163,26 @@ const PDFViewerApplication = { return; } if (!this.supportsPrinting) { - this.l10n.get("printing_not_supported").then(msg => { + this.l10n.get("pdfjs-printing-not-supported").then(msg => { this._otherError(msg); }); return; } if (!this.pdfViewer.pageViewsReady) { - this.l10n.get("printing_not_ready").then(msg => { + this.l10n.get("pdfjs-printing-not-ready").then(msg => { window.alert(msg); }); return; } const pagesOverview = this.pdfViewer.getPagesOverview(); const printContainer = this.appConfig.printContainer; - const printResolution = _app_options.AppOptions.get("printResolution"); + const printResolution = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("printResolution"); const optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise; - const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this._printAnnotationStoragePromise, this.l10n); + const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this._printAnnotationStoragePromise); this.printService = printService; this.forceRendering(); this.setTitle(); printService.layout(); - this.externalServices.reportTelemetry({ - type: "print" - }); if (this._hasAnnotationEditors) { this.externalServices.reportTelemetry({ type: "editing", @@ -2508,6 +3230,7 @@ const PDFViewerApplication = { eventBus._on("hashchange", webViewerHashchange); eventBus._on("beforeprint", _boundEvents.beforePrint); eventBus._on("afterprint", _boundEvents.afterPrint); + eventBus._on("pagerender", webViewerPageRender); eventBus._on("pagerendered", webViewerPageRendered); eventBus._on("updateviewarea", webViewerUpdateViewarea); eventBus._on("pagechanging", webViewerPageChanging); @@ -2522,6 +3245,7 @@ const PDFViewerApplication = { eventBus._on("switchannotationeditorparams", webViewerSwitchAnnotationEditorParams); eventBus._on("print", webViewerPrint); eventBus._on("download", webViewerDownload); + eventBus._on("openinexternalapp", webViewerOpenInExternalApp); eventBus._on("firstpage", webViewerFirstPage); eventBus._on("lastpage", webViewerLastPage); eventBus._on("nextpage", webViewerNextPage); @@ -2542,7 +3266,7 @@ const PDFViewerApplication = { eventBus._on("findfromurlhash", webViewerFindFromUrlHash); eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount); eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); - if (_app_options.AppOptions.get("pdfBug")) { + if (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pdfBug")) { _boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug; eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug); eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug); @@ -2603,8 +3327,15 @@ const PDFViewerApplication = { window.addEventListener("touchstart", webViewerTouchStart, { passive: false }); + window.addEventListener("touchmove", webViewerTouchMove, { + passive: false + }); + window.addEventListener("touchend", webViewerTouchEnd, { + passive: false + }); window.addEventListener("click", webViewerClick); window.addEventListener("keydown", webViewerKeyDown); + window.addEventListener("keyup", webViewerKeyUp); window.addEventListener("resize", _boundEvents.windowResize); window.addEventListener("hashchange", _boundEvents.windowHashChange); window.addEventListener("beforeprint", _boundEvents.windowBeforePrint); @@ -2620,6 +3351,7 @@ const PDFViewerApplication = { eventBus._off("hashchange", webViewerHashchange); eventBus._off("beforeprint", _boundEvents.beforePrint); eventBus._off("afterprint", _boundEvents.afterPrint); + eventBus._off("pagerender", webViewerPageRender); eventBus._off("pagerendered", webViewerPageRendered); eventBus._off("updateviewarea", webViewerUpdateViewarea); eventBus._off("pagechanging", webViewerPageChanging); @@ -2632,6 +3364,7 @@ const PDFViewerApplication = { eventBus._off("presentationmode", webViewerPresentationMode); eventBus._off("print", webViewerPrint); eventBus._off("download", webViewerDownload); + eventBus._off("openinexternalapp", webViewerOpenInExternalApp); eventBus._off("firstpage", webViewerFirstPage); eventBus._off("lastpage", webViewerLastPage); eventBus._off("nextpage", webViewerNextPage); @@ -2673,8 +3406,15 @@ const PDFViewerApplication = { window.removeEventListener("touchstart", webViewerTouchStart, { passive: false }); + window.removeEventListener("touchmove", webViewerTouchMove, { + passive: false + }); + window.removeEventListener("touchend", webViewerTouchEnd, { + passive: false + }); window.removeEventListener("click", webViewerClick); window.removeEventListener("keydown", webViewerKeyDown); + window.removeEventListener("keyup", webViewerKeyUp); window.removeEventListener("resize", _boundEvents.windowResize); window.removeEventListener("hashchange", _boundEvents.windowHashChange); window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint); @@ -2687,3689 +3427,5764 @@ const PDFViewerApplication = { _boundEvents.windowAfterPrint = null; _boundEvents.windowUpdateFromSandbox = null; }, - accumulateWheelTicks(ticks) { - if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) { - this._wheelUnusedTicks = 0; - } - this._wheelUnusedTicks += ticks; - const wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks)); - this._wheelUnusedTicks -= wholeTicks; - return wholeTicks; + _accumulateTicks(ticks, prop) { + if (this[prop] > 0 && ticks < 0 || this[prop] < 0 && ticks > 0) { + this[prop] = 0; + } + this[prop] += ticks; + const wholeTicks = Math.trunc(this[prop]); + this[prop] -= wholeTicks; + return wholeTicks; + }, + _accumulateFactor(previousScale, factor, prop) { + if (factor === 1) { + return 1; + } + if (this[prop] > 1 && factor < 1 || this[prop] < 1 && factor > 1) { + this[prop] = 1; + } + const newFactor = Math.floor(previousScale * factor * this[prop] * 100) / (100 * previousScale); + this[prop] = factor / newFactor; + return newFactor; + }, + _centerAtPos(previousScale, x, y) { + const { + pdfViewer + } = this; + const scaleDiff = pdfViewer.currentScale / previousScale - 1; + if (scaleDiff !== 0) { + const [top, left] = pdfViewer.containerTopLeft; + pdfViewer.container.scrollLeft += (x - left) * scaleDiff; + pdfViewer.container.scrollTop += (y - top) * scaleDiff; + } + }, + _unblockDocumentLoadEvent() { + document.blockUnblockOnload?.(false); + this._unblockDocumentLoadEvent = () => {}; + }, + get scriptingReady() { + return this.pdfScriptingManager.ready; + } +}; +{ + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; + var validateFileURL = function (file) { + if (!file) { + return; + } + try { + const viewerOrigin = new URL(window.location.href).origin || "null"; + if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + return; + } + const fileOrigin = new URL(file, window.location.href).origin; + if (fileOrigin !== viewerOrigin) { + throw new Error("file origin does not match viewer's"); + } + } catch (ex) { + PDFViewerApplication.l10n.get("pdfjs-loading-error").then(msg => { + PDFViewerApplication._documentError(msg, { + message: ex?.message + }); + }); + throw ex; + } + }; +} +async function loadFakeWorker() { + pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.GlobalWorkerOptions.workerSrc ||= _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("workerSrc"); + await import(/* webpackIgnore: true */ pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PDFWorker.workerSrc); +} +async function loadPDFBug(self) { + const { + debuggerScriptPath + } = self.appConfig; + const { + PDFBug + } = await import(/* webpackIgnore: true */ debuggerScriptPath); + self._PDFBug = PDFBug; +} +function reportPageStatsPDFBug({ + pageNumber +}) { + if (!globalThis.Stats?.enabled) { + return; + } + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + globalThis.Stats.add(pageNumber, pageView?.pdfPage?.stats); +} +function webViewerPageRender({ + pageNumber +}) { + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(true); + } +} +function webViewerPageRendered({ + pageNumber, + error +}) { + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(false); + } + if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer?.getThumbnail(pageNumber - 1); + if (pageView) { + thumbnailView?.setImage(pageView); + } + } + if (error) { + PDFViewerApplication.l10n.get("pdfjs-rendering-error").then(msg => { + PDFViewerApplication._otherError(msg, error); + }); + } +} +function webViewerPageMode({ + mode +}) { + let view; + switch (mode) { + case "thumbs": + view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; + break; + case "bookmarks": + case "outline": + view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE; + break; + case "attachments": + view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS; + break; + case "layers": + view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS; + break; + case "none": + view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE; + break; + default: + console.error('Invalid "pagemode" hash parameter: ' + mode); + return; + } + PDFViewerApplication.pdfSidebar?.switchView(view, true); +} +function webViewerNamedAction(evt) { + switch (evt.action) { + case "GoToPage": + PDFViewerApplication.appConfig.toolbar?.pageNumber.select(); + break; + case "Find": + if (!PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication?.findBar.toggle(); + } + break; + case "Print": + PDFViewerApplication.triggerPrinting(); + break; + case "SaveAs": + PDFViewerApplication.downloadOrSave(); + break; + } +} +function webViewerPresentationModeChanged(evt) { + PDFViewerApplication.pdfViewer.presentationModeState = evt.state; +} +function webViewerSidebarViewChanged({ + view +}) { + PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; + if (PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.store?.set("sidebarView", view).catch(() => {}); + } +} +function webViewerUpdateViewarea({ + location +}) { + if (PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.store?.setMultiple({ + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(() => {}); + } + if (PDFViewerApplication.appConfig.secondaryToolbar) { + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; + } +} +function webViewerScrollModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + PDFViewerApplication.store?.set("scrollMode", evt.mode).catch(() => {}); + } +} +function webViewerSpreadModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + PDFViewerApplication.store?.set("spreadMode", evt.mode).catch(() => {}); + } +} +function webViewerResize() { + const { + pdfDocument, + pdfViewer, + pdfRenderingQueue + } = PDFViewerApplication; + if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { + return; + } + if (!pdfDocument) { + return; + } + const currentScaleValue = pdfViewer.currentScaleValue; + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { + pdfViewer.currentScaleValue = currentScaleValue; + } + pdfViewer.update(); +} +function webViewerHashchange(evt) { + const hash = evt.hash; + if (!hash) { + return; + } + if (!PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.initialBookmark = hash; + } else if (!PDFViewerApplication.pdfHistory?.popStateInProgress) { + PDFViewerApplication.pdfLinkService.setHash(hash); + } +} +{ + var webViewerFileInputChange = function (evt) { + if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { + return; + } + const file = evt.fileInput.files[0]; + PDFViewerApplication.open({ + url: URL.createObjectURL(file), + originalUrl: file.name + }); + }; + var webViewerOpenFile = function (evt) { + const fileInput = PDFViewerApplication.appConfig.openFileInput; + fileInput.click(); + }; +} +function webViewerPresentationMode() { + PDFViewerApplication.requestPresentationMode(); +} +function webViewerSwitchAnnotationEditorMode(evt) { + PDFViewerApplication.pdfViewer.annotationEditorMode = evt; +} +function webViewerSwitchAnnotationEditorParams(evt) { + PDFViewerApplication.pdfViewer.annotationEditorParams = evt; +} +function webViewerPrint() { + PDFViewerApplication.triggerPrinting(); +} +function webViewerDownload() { + PDFViewerApplication.downloadOrSave(); +} +function webViewerOpenInExternalApp() { + PDFViewerApplication.openInExternalApp(); +} +function webViewerFirstPage() { + PDFViewerApplication.page = 1; +} +function webViewerLastPage() { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; +} +function webViewerNextPage() { + PDFViewerApplication.pdfViewer.nextPage(); +} +function webViewerPreviousPage() { + PDFViewerApplication.pdfViewer.previousPage(); +} +function webViewerZoomIn() { + PDFViewerApplication.zoomIn(); +} +function webViewerZoomOut() { + PDFViewerApplication.zoomOut(); +} +function webViewerZoomReset() { + PDFViewerApplication.zoomReset(); +} +function webViewerPageNumberChanged(evt) { + const pdfViewer = PDFViewerApplication.pdfViewer; + if (evt.value !== "") { + PDFViewerApplication.pdfLinkService.goToPage(evt.value); + } + if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { + PDFViewerApplication.toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + } +} +function webViewerScaleChanged(evt) { + PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; +} +function webViewerRotateCw() { + PDFViewerApplication.rotatePages(90); +} +function webViewerRotateCcw() { + PDFViewerApplication.rotatePages(-90); +} +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} +function webViewerSwitchScrollMode(evt) { + PDFViewerApplication.pdfViewer.scrollMode = evt.mode; +} +function webViewerSwitchSpreadMode(evt) { + PDFViewerApplication.pdfViewer.spreadMode = evt.mode; +} +function webViewerDocumentProperties() { + PDFViewerApplication.pdfDocumentProperties?.open(); +} +function webViewerFindFromUrlHash(evt) { + PDFViewerApplication.eventBus.dispatch("find", { + source: evt.source, + type: "", + query: evt.query, + caseSensitive: false, + entireWord: false, + highlightAll: true, + findPrevious: false, + matchDiacritics: true + }); +} +function webViewerUpdateFindMatchesCount({ + matchesCount +}) { + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); + } else { + PDFViewerApplication.findBar.updateResultsCount(matchesCount); + } +} +function webViewerUpdateFindControlState({ + state, + previous, + matchesCount, + rawQuery +}) { + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindControlState({ + result: state, + findPrevious: previous, + matchesCount, + rawQuery + }); + } else { + PDFViewerApplication.findBar?.updateUIState(state, previous, matchesCount); + } +} +function webViewerScaleChanging(evt) { + PDFViewerApplication.toolbar?.setPageScale(evt.presetValue, evt.scale); + PDFViewerApplication.pdfViewer.update(); +} +function webViewerRotationChanging(evt) { + if (PDFViewerApplication.pdfThumbnailViewer) { + PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; + } + PDFViewerApplication.forceRendering(); + PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; +} +function webViewerPageChanging({ + pageNumber, + pageLabel +}) { + PDFViewerApplication.toolbar?.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar?.setPageNumber(pageNumber); + if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { + PDFViewerApplication.pdfThumbnailViewer?.scrollThumbnailIntoView(pageNumber); + } + const currentPage = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(currentPage?.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING); +} +function webViewerResolutionChange(evt) { + PDFViewerApplication.pdfViewer.refresh(); +} +function webViewerVisibilityChange(evt) { + if (document.visibilityState === "visible") { + setZoomDisabledTimeout(); + } +} +let zoomDisabledTimeout = null; +function setZoomDisabledTimeout() { + if (zoomDisabledTimeout) { + clearTimeout(zoomDisabledTimeout); + } + zoomDisabledTimeout = setTimeout(function () { + zoomDisabledTimeout = null; + }, WHEEL_ZOOM_DISABLED_TIMEOUT); +} +function webViewerWheel(evt) { + const { + pdfViewer, + supportsMouseWheelZoomCtrlKey, + supportsMouseWheelZoomMetaKey, + supportsPinchToZoom + } = PDFViewerApplication; + if (pdfViewer.isInPresentationMode) { + return; + } + const deltaMode = evt.deltaMode; + let scaleFactor = Math.exp(-evt.deltaY / 100); + const isBuiltInMac = false; + const isPinchToZoom = evt.ctrlKey && !PDFViewerApplication._isCtrlKeyDown && deltaMode === WheelEvent.DOM_DELTA_PIXEL && evt.deltaX === 0 && (Math.abs(scaleFactor - 1) < 0.05 || isBuiltInMac) && evt.deltaZ === 0; + if (isPinchToZoom || evt.ctrlKey && supportsMouseWheelZoomCtrlKey || evt.metaKey && supportsMouseWheelZoomMetaKey) { + evt.preventDefault(); + if (zoomDisabledTimeout || document.visibilityState === "hidden" || PDFViewerApplication.overlayManager.active) { + return; + } + const previousScale = pdfViewer.currentScale; + if (isPinchToZoom && supportsPinchToZoom) { + scaleFactor = PDFViewerApplication._accumulateFactor(previousScale, scaleFactor, "_wheelUnusedFactor"); + if (scaleFactor < 1) { + PDFViewerApplication.zoomOut(null, scaleFactor); + } else if (scaleFactor > 1) { + PDFViewerApplication.zoomIn(null, scaleFactor); + } else { + return; + } + } else { + const delta = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.normalizeWheelEventDirection)(evt); + let ticks = 0; + if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication._accumulateTicks(delta, "_wheelUnusedTicks"); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication._accumulateTicks(delta / PIXELS_PER_LINE_SCALE, "_wheelUnusedTicks"); + } + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else if (ticks > 0) { + PDFViewerApplication.zoomIn(ticks); + } else { + return; + } + } + PDFViewerApplication._centerAtPos(previousScale, evt.clientX, evt.clientY); + } else { + setZoomDisabledTimeout(); + } +} +function webViewerTouchStart(evt) { + if (PDFViewerApplication.pdfViewer.isInPresentationMode || evt.touches.length < 2) { + return; + } + evt.preventDefault(); + if (evt.touches.length !== 2 || PDFViewerApplication.overlayManager.active) { + PDFViewerApplication._touchInfo = null; + return; + } + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + PDFViewerApplication._touchInfo = { + touch0X: touch0.pageX, + touch0Y: touch0.pageY, + touch1X: touch1.pageX, + touch1Y: touch1.pageY + }; +} +function webViewerTouchMove(evt) { + if (!PDFViewerApplication._touchInfo || evt.touches.length !== 2) { + return; + } + const { + pdfViewer, + _touchInfo, + supportsPinchToZoom + } = PDFViewerApplication; + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + const { + pageX: page0X, + pageY: page0Y + } = touch0; + const { + pageX: page1X, + pageY: page1Y + } = touch1; + const { + touch0X: pTouch0X, + touch0Y: pTouch0Y, + touch1X: pTouch1X, + touch1Y: pTouch1Y + } = _touchInfo; + if (Math.abs(pTouch0X - page0X) <= 1 && Math.abs(pTouch0Y - page0Y) <= 1 && Math.abs(pTouch1X - page1X) <= 1 && Math.abs(pTouch1Y - page1Y) <= 1) { + return; + } + _touchInfo.touch0X = page0X; + _touchInfo.touch0Y = page0Y; + _touchInfo.touch1X = page1X; + _touchInfo.touch1Y = page1Y; + if (pTouch0X === page0X && pTouch0Y === page0Y) { + const v1X = pTouch1X - page0X; + const v1Y = pTouch1Y - page0Y; + const v2X = page1X - page0X; + const v2Y = page1Y - page0Y; + const det = v1X * v2Y - v1Y * v2X; + if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { + return; + } + } else if (pTouch1X === page1X && pTouch1Y === page1Y) { + const v1X = pTouch0X - page1X; + const v1Y = pTouch0Y - page1Y; + const v2X = page0X - page1X; + const v2Y = page0Y - page1Y; + const det = v1X * v2Y - v1Y * v2X; + if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { + return; + } + } else { + const diff0X = page0X - pTouch0X; + const diff1X = page1X - pTouch1X; + const diff0Y = page0Y - pTouch0Y; + const diff1Y = page1Y - pTouch1Y; + const dotProduct = diff0X * diff1X + diff0Y * diff1Y; + if (dotProduct >= 0) { + return; + } + } + evt.preventDefault(); + const distance = Math.hypot(page0X - page1X, page0Y - page1Y) || 1; + const pDistance = Math.hypot(pTouch0X - pTouch1X, pTouch0Y - pTouch1Y) || 1; + const previousScale = pdfViewer.currentScale; + if (supportsPinchToZoom) { + const newScaleFactor = PDFViewerApplication._accumulateFactor(previousScale, distance / pDistance, "_touchUnusedFactor"); + if (newScaleFactor < 1) { + PDFViewerApplication.zoomOut(null, newScaleFactor); + } else if (newScaleFactor > 1) { + PDFViewerApplication.zoomIn(null, newScaleFactor); + } else { + return; + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + const ticks = PDFViewerApplication._accumulateTicks((distance - pDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else if (ticks > 0) { + PDFViewerApplication.zoomIn(ticks); + } else { + return; + } + } + PDFViewerApplication._centerAtPos(previousScale, (page0X + page1X) / 2, (page0Y + page1Y) / 2); +} +function webViewerTouchEnd(evt) { + if (!PDFViewerApplication._touchInfo) { + return; + } + evt.preventDefault(); + PDFViewerApplication._touchInfo = null; + PDFViewerApplication._touchUnusedTicks = 0; + PDFViewerApplication._touchUnusedFactor = 1; +} +function webViewerClick(evt) { + if (!PDFViewerApplication.secondaryToolbar?.isOpen) { + return; + } + const appConfig = PDFViewerApplication.appConfig; + if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar?.toggleButton) { + PDFViewerApplication.secondaryToolbar.close(); + } +} +function webViewerKeyUp(evt) { + if (evt.key === "Control") { + PDFViewerApplication._isCtrlKeyDown = false; + } +} +function webViewerKeyDown(evt) { + PDFViewerApplication._isCtrlKeyDown = evt.key === "Control"; + if (PDFViewerApplication.overlayManager.active) { + return; + } + const { + eventBus, + pdfViewer + } = PDFViewerApplication; + const isViewerInPresentationMode = pdfViewer.isInPresentationMode; + let handled = false, + ensureViewerFocused = false; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { + switch (evt.keyCode) { + case 70: + if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { + PDFViewerApplication.findBar?.open(); + handled = true; + } + break; + case 71: + if (!PDFViewerApplication.supportsIntegratedFind) { + const { + state + } = PDFViewerApplication.findController; + if (state) { + const newState = { + source: window, + type: "again", + findPrevious: cmd === 5 || cmd === 12 + }; + eventBus.dispatch("find", { + ...state, + ...newState + }); + } + handled = true; + } + break; + case 61: + case 107: + case 187: + case 171: + PDFViewerApplication.zoomIn(); + handled = true; + break; + case 173: + case 109: + case 189: + PDFViewerApplication.zoomOut(); + handled = true; + break; + case 48: + case 96: + if (!isViewerInPresentationMode) { + setTimeout(function () { + PDFViewerApplication.zoomReset(); + }); + handled = false; + } + break; + case 38: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 40: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + } + } + if (cmd === 1 || cmd === 8) { + switch (evt.keyCode) { + case 83: + eventBus.dispatch("download", { + source: window + }); + handled = true; + break; + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; + } + } + if (cmd === 3 || cmd === 10) { + switch (evt.keyCode) { + case 80: + PDFViewerApplication.requestPresentationMode(); + handled = true; + PDFViewerApplication.externalServices.reportTelemetry({ + type: "buttons", + data: { + id: "presentationModeKeyboard" + } + }); + break; + case 71: + if (PDFViewerApplication.appConfig.toolbar) { + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + handled = true; + } + break; + } + } + if (handled) { + if (ensureViewerFocused && !isViewerInPresentationMode) { + pdfViewer.focus(); + } + evt.preventDefault(); + return; + } + const curElement = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getActiveOrFocusedElement)(); + const curElementTagName = curElement?.tagName.toUpperCase(); + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElementTagName === "BUTTON" && (evt.keyCode === 13 || evt.keyCode === 32) || curElement?.isContentEditable) { + if (evt.keyCode !== 27) { + return; + } + } + if (cmd === 0) { + let turnPage = 0, + turnOnlyIfPageFit = false; + switch (evt.keyCode) { + case 38: + case 33: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 8: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 37: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 75: + case 80: + turnPage = -1; + break; + case 27: + if (PDFViewerApplication.secondaryToolbar?.isOpen) { + PDFViewerApplication.secondaryToolbar.close(); + handled = true; + } + if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar?.opened) { + PDFViewerApplication.findBar.close(); + handled = true; + } + break; + case 40: + case 34: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 13: + case 32: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 39: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 74: + case 78: + turnPage = 1; + break; + case 36: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 35: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + case 83: + PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT); + break; + case 72: + PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND); + break; + case 82: + PDFViewerApplication.rotatePages(90); + break; + case 115: + PDFViewerApplication.pdfSidebar?.toggle(); + break; + } + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { + if (turnPage > 0) { + pdfViewer.nextPage(); + } else { + pdfViewer.previousPage(); + } + handled = true; + } + } + if (cmd === 4) { + switch (evt.keyCode) { + case 13: + case 32: + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { + break; + } + pdfViewer.previousPage(); + handled = true; + break; + case 82: + PDFViewerApplication.rotatePages(-90); + break; + } + } + if (!handled && !isViewerInPresentationMode) { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { + ensureViewerFocused = true; + } + } + if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { + pdfViewer.focus(); + } + if (handled) { + evt.preventDefault(); + } +} +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; +} +function webViewerAnnotationEditorStatesChanged(data) { + PDFViewerApplication.externalServices.updateEditorStates(data); +} +function webViewerReportTelemetry({ + details +}) { + PDFViewerApplication.externalServices.reportTelemetry(details); +} +const PDFPrintServiceFactory = { + instance: { + supportsPrinting: false, + createPrintService() { + throw new Error("Not implemented: createPrintService"); + } + } +}; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 8961: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AppOptions: () => (/* binding */ AppOptions), +/* harmony export */ OptionKind: () => (/* binding */ OptionKind), +/* harmony export */ compatibilityParams: () => (/* binding */ compatibilityParams) +/* harmony export */ }); +const compatibilityParams = Object.create(null); +{ + const userAgent = navigator.userAgent || ""; + const platform = navigator.platform || ""; + const maxTouchPoints = navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const OptionKind = { + BROWSER: 0x01, + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +const defaultOptions = { + canvasMaxAreaInBytes: { + value: -1, + kind: OptionKind.BROWSER + OptionKind.API + }, + isInAutomation: { + value: false, + kind: OptionKind.BROWSER + }, + supportsDocumentFonts: { + value: true, + kind: OptionKind.BROWSER + }, + supportsIntegratedFind: { + value: false, + kind: OptionKind.BROWSER + }, + supportsMouseWheelZoomCtrlKey: { + value: true, + kind: OptionKind.BROWSER + }, + supportsMouseWheelZoomMetaKey: { + value: true, + kind: OptionKind.BROWSER + }, + supportsPinchToZoom: { + value: true, + kind: OptionKind.BROWSER + }, + annotationEditorMode: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationMode: { + value: 2, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomDelay: { + value: 400, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableHighlightEditor: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + highlightEditorColors: { + value: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + kind: OptionKind.VIEWER + }, + forcePageColors: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsBackground: { + value: "Canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsForeground: { + value: "CanvasText", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableXfa: { + value: true, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + isOffscreenCanvasSupported: { + value: true, + kind: OptionKind.API }, - _unblockDocumentLoadEvent() { - document.blockUnblockOnload?.(false); - this._unblockDocumentLoadEvent = () => {}; + maxImageSize: { + value: -1, + kind: OptionKind.API }, - _reportDocumentStatsTelemetry() { - const { - stats - } = this.pdfDocument; - if (stats !== this._docStats) { - this._docStats = stats; - this.externalServices.reportTelemetry({ - type: "documentStats", - stats - }); - } + pdfBug: { + value: false, + kind: OptionKind.API }, - get scriptingReady() { - return this.pdfScriptingManager.ready; + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.mjs", + kind: OptionKind.WORKER } }; -exports.PDFViewerApplication = PDFViewerApplication; { - const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; - var validateFileURL = function (file) { - if (!file) { - return; + defaultOptions.defaultUrl = { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.mjs", + kind: OptionKind.VIEWER + }; + defaultOptions.viewerCssTheme = { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }; +} +{ + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; + defaultOptions.locale = { + value: navigator.language || "en-US", + kind: OptionKind.VIEWER + }; +} +const userOptions = Object.create(null); +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); + } + static get(name) { + const userOption = userOptions[name]; + if (userOption !== undefined) { + return userOption; } - try { - const viewerOrigin = new URL(window.location.href).origin || "null"; - if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + const defaultOption = defaultOptions[name]; + if (defaultOption !== undefined) { + return compatibilityParams[name] ?? defaultOption.value; + } + return undefined; + } + static getAll(kind = null) { + const options = Object.create(null); + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + if (kind) { + if (!(kind & defaultOption.kind)) { + continue; + } + } + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value; + } + return options; + } + static set(name, value) { + userOptions[name] = value; + } + static setAll(options, init = false) { + if (init) { + if (this.get("disablePreferences")) { return; } - const fileOrigin = new URL(file, window.location.href).origin; - if (fileOrigin !== viewerOrigin) { - throw new Error("file origin does not match viewer's"); + if (Object.keys(userOptions).length) { + console.warn("setAll: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); } - } catch (ex) { - PDFViewerApplication.l10n.get("loading_error").then(msg => { - PDFViewerApplication._documentError(msg, { - message: ex?.message - }); - }); - throw ex; } - }; + for (const name in options) { + userOptions[name] = options[name]; + } + } + static remove(name) { + delete userOptions[name]; + } } -async function loadFakeWorker() { - _pdfjsLib.GlobalWorkerOptions.workerSrc ||= _app_options.AppOptions.get("workerSrc"); - await (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.workerSrc); + + +/***/ }), + +/***/ 9415: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ BaseTreeViewer: () => (/* binding */ BaseTreeViewer) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); + +const TREEITEM_OFFSET_TOP = -100; +const TREEITEM_SELECTED_CLASS = "selected"; +class BaseTreeViewer { + constructor(options) { + if (this.constructor === BaseTreeViewer) { + throw new Error("Cannot initialize BaseTreeViewer."); + } + this.container = options.container; + this.eventBus = options.eventBus; + this._l10n = options.l10n; + this.reset(); + } + reset() { + this._pdfDocument = null; + this._lastToggleIsShow = true; + this._currentTreeItem = null; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } + _normalizeTextContent(str) { + return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(str, true) || "\u2013"; + } + _addToggleButton(div, hidden = false) { + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; + if (hidden) { + toggler.classList.add("treeItemsHidden"); + } + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + this._toggleTreeItem(div, shouldShowAll); + } + }; + div.prepend(toggler); + } + _toggleTreeItem(root, show = false) { + this._l10n.pause(); + this._lastToggleIsShow = show; + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); + } + this._l10n.resume(); + } + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } + _finishRendering(fragment, count, hasAnyNesting = false) { + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + } + this._l10n.pause(); + this.container.append(fragment); + this._l10n.resume(); + this._dispatchEvent(count); + } + render(params) { + throw new Error("Not implemented: render"); + } + _updateCurrentTreeItem(treeItem = null) { + if (this._currentTreeItem) { + this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = null; + } + if (treeItem) { + treeItem.classList.add(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = treeItem; + } + } + _scrollToCurrentTreeItem(treeItem) { + if (!treeItem) { + return; + } + this._l10n.pause(); + let currentNode = treeItem.parentNode; + while (currentNode && currentNode !== this.container) { + if (currentNode.classList.contains("treeItem")) { + const toggler = currentNode.firstElementChild; + toggler?.classList.remove("treeItemsHidden"); + } + currentNode = currentNode.parentNode; + } + this._l10n.resume(); + this._updateCurrentTreeItem(treeItem); + this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); + } } -async function loadPDFBug(self) { - const { - debuggerScriptPath - } = self.appConfig; - const { - PDFBug - } = await import(debuggerScriptPath); - self._PDFBug = PDFBug; + + +/***/ }), + +/***/ 4397: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DownloadManager: () => (/* binding */ DownloadManager) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +; +function download(blobUrl, filename) { + const a = document.createElement("a"); + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + a.href = blobUrl; + a.target = "_parent"; + if ("download" in a) { + a.download = filename; + } + (document.body || document.documentElement).append(a); + a.click(); + a.remove(); } -function reportPageStatsPDFBug({ - pageNumber -}) { - if (!globalThis.Stats?.enabled) { - return; +class DownloadManager { + #openBlobUrls = new WeakMap(); + downloadUrl(url, filename, _options) { + if (!(0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.createValidAbsoluteUrl)(url, "http://example.com")) { + console.error(`downloadUrl - not a valid URL: ${url}`); + return; + } + download(url + "#pdfjs.action=download", filename); + } + downloadData(data, filename, contentType) { + const blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + download(blobUrl, filename); + } + openOrDownloadData(data, filename, dest = null) { + const isPdfData = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + if (isPdfData) { + let blobUrl = this.#openBlobUrls.get(data); + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + this.#openBlobUrls.set(data, blobUrl); + } + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + if (dest) { + viewerUrl += `#${escape(dest)}`; + } + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + this.#openBlobUrls.delete(data); + } + } + this.downloadData(data, filename, contentType); + return false; + } + download(blob, url, filename, _options) { + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); } - const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); - globalThis.Stats.add(pageNumber, pageView?.pdfPage?.stats); } -function webViewerInitialized() { - const { - appConfig, - eventBus - } = PDFViewerApplication; - let file; - const queryString = document.location.search.substring(1); - const params = (0, _ui_utils.parseQueryString)(queryString); - file = params.get("file") ?? _app_options.AppOptions.get("defaultUrl"); - validateFileURL(file); - const fileInput = appConfig.openFileInput; - fileInput.value = null; - fileInput.addEventListener("change", function (evt) { - const { - files - } = evt.target; - if (!files || files.length === 0) { + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 758: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ DrawLayerBuilder: () => (/* binding */ DrawLayerBuilder) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +class DrawLayerBuilder { + #drawLayer = null; + constructor(options) { + this.pageIndex = options.pageIndex; + } + async render(intent = "display") { + if (intent !== "display" || this.#drawLayer || this._cancelled) { return; } - eventBus.dispatch("fileinputchange", { - source: this, - fileInput: evt.target + this.#drawLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.DrawLayer({ + pageIndex: this.pageIndex }); - }); - appConfig.mainContainer.addEventListener("dragover", function (evt) { - evt.preventDefault(); - evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; - }); - appConfig.mainContainer.addEventListener("drop", function (evt) { - evt.preventDefault(); - const { - files - } = evt.dataTransfer; - if (!files || files.length === 0) { + } + cancel() { + this._cancelled = true; + if (!this.#drawLayer) { return; } - eventBus.dispatch("fileinputchange", { - source: this, - fileInput: evt.dataTransfer - }); - }); - if (!PDFViewerApplication.supportsDocumentFonts) { - _app_options.AppOptions.set("disableFontFace", true); - PDFViewerApplication.l10n.get("web_fonts_disabled").then(msg => { - console.warn(msg); - }); + this.#drawLayer.destroy(); + this.#drawLayer = null; } - if (!PDFViewerApplication.supportsPrinting) { - appConfig.toolbar.print.classList.add("hidden"); - appConfig.secondaryToolbar.printButton.classList.add("hidden"); + setParent(parent) { + this.#drawLayer?.setParent(parent); } - if (!PDFViewerApplication.supportsFullscreen) { - appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden"); + getDrawLayer() { + return this.#drawLayer; } - if (PDFViewerApplication.supportsIntegratedFind) { - appConfig.toolbar.viewFind.classList.add("hidden"); - } - appConfig.mainContainer.addEventListener("transitionend", function (evt) { - if (evt.target === this) { - eventBus.dispatch("resize", { - source: this - }); +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 6554: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AutomationEventBus: () => (/* binding */ AutomationEventBus), +/* harmony export */ EventBus: () => (/* binding */ EventBus), +/* harmony export */ waitOnEventOrTimeout: () => (/* binding */ waitOnEventOrTimeout) +/* harmony export */ }); +/* unused harmony export WaitOnType */ +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" +}; +function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { + return new Promise(function (resolve, reject) { + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); } - }, true); - try { - if (file) { - PDFViewerApplication.open(file); + function handler(type) { + if (target instanceof EventBus) { + target._off(name, eventHandler); + } else { + target.removeEventListener(name, eventHandler); + } + if (timeout) { + clearTimeout(timeout); + } + resolve(type); + } + const eventHandler = handler.bind(null, WaitOnType.EVENT); + if (target instanceof EventBus) { + target._on(name, eventHandler); } else { - PDFViewerApplication._hideViewBookmark(); + target.addEventListener(name, eventHandler); } - } catch (reason) { - PDFViewerApplication.l10n.get("loading_error").then(msg => { - PDFViewerApplication._documentError(msg, reason); + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); + }); +} +class EventBus { + #listeners = Object.create(null); + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once }); } -} -function webViewerPageRendered({ - pageNumber, - error -}) { - if (pageNumber === PDFViewerApplication.page) { - PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); + off(eventName, listener, options = null) { + this._off(eventName, listener, { + external: true, + once: options?.once + }); } - if (PDFViewerApplication.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS) { - const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); - const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageNumber - 1); - if (pageView && thumbnailView) { - thumbnailView.setImage(pageView); + dispatch(eventName, data) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners || eventListeners.length === 0) { + return; + } + let externalListeners; + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + if (external) { + (externalListeners ||= []).push(listener); + continue; + } + listener(data); + } + if (externalListeners) { + for (const listener of externalListeners) { + listener(data); + } + externalListeners = null; } } - if (error) { - PDFViewerApplication.l10n.get("rendering_error").then(msg => { - PDFViewerApplication._otherError(msg, error); + _on(eventName, listener, options = null) { + const eventListeners = this.#listeners[eventName] ||= []; + eventListeners.push({ + listener, + external: options?.external === true, + once: options?.once === true }); } - PDFViewerApplication._reportDocumentStatsTelemetry(); -} -function webViewerPageMode({ - mode -}) { - let view; - switch (mode) { - case "thumbs": - view = _ui_utils.SidebarView.THUMBS; - break; - case "bookmarks": - case "outline": - view = _ui_utils.SidebarView.OUTLINE; - break; - case "attachments": - view = _ui_utils.SidebarView.ATTACHMENTS; - break; - case "layers": - view = _ui_utils.SidebarView.LAYERS; - break; - case "none": - view = _ui_utils.SidebarView.NONE; - break; - default: - console.error('Invalid "pagemode" hash parameter: ' + mode); + _off(eventName, listener, options = null) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners) { return; + } + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } } - PDFViewerApplication.pdfSidebar.switchView(view, true); } -function webViewerNamedAction(evt) { - switch (evt.action) { - case "GoToPage": - PDFViewerApplication.appConfig.toolbar.pageNumber.select(); - break; - case "Find": - if (!PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.findBar.toggle(); - } - break; - case "Print": - PDFViewerApplication.triggerPrinting(); - break; - case "SaveAs": - PDFViewerApplication.downloadOrSave(); - break; +class AutomationEventBus extends EventBus { + dispatch(eventName, data) { + throw new Error("Not implemented: AutomationEventBus.dispatch"); } } -function webViewerPresentationModeChanged(evt) { - PDFViewerApplication.pdfViewer.presentationModeState = evt.state; + + +/***/ }), + +/***/ 9170: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GenericScripting: () => (/* binding */ GenericScripting) +/* harmony export */ }); +/* unused harmony export docProperties */ +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +async function docProperties(pdfDocument) { + const url = "", + baseUrl = url.split("#")[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + return { + ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || getPdfFilenameFromUrl(url), + metadata: metadata?.getRaw(), + authors: metadata?.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; } -function webViewerSidebarViewChanged({ - view -}) { - PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = view === _ui_utils.SidebarView.THUMBS; - if (PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.store?.set("sidebarView", view).catch(() => {}); +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = new Promise((resolve, reject) => { + const sandbox = import(/* webpackIgnore: true */ sandboxBundleSrc); + sandbox.then(pdfjsSandbox => { + resolve(pdfjsSandbox.QuickJSSandbox()); + }).catch(reject); + }); + } + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + setTimeout(() => sandbox.dispatchEvent(event), 0); + } + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); } } -function webViewerUpdateViewarea({ - location -}) { - if (PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.store?.setMultiple({ - page: location.pageNumber, - zoom: location.scale, - scrollLeft: location.left, - scrollTop: location.top, - rotation: location.rotation - }).catch(() => {}); + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 1546: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* unused harmony export GenericCom */ +/* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39); +/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8961); +/* harmony import */ var _preferences_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(216); +/* harmony import */ var _download_manager_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4397); +/* harmony import */ var _genericl10n_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(450); +/* harmony import */ var _generic_scripting_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9170); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_app_js__WEBPACK_IMPORTED_MODULE_0__, _download_manager_js__WEBPACK_IMPORTED_MODULE_3__, _genericl10n_js__WEBPACK_IMPORTED_MODULE_4__, _generic_scripting_js__WEBPACK_IMPORTED_MODULE_5__]); +([_app_js__WEBPACK_IMPORTED_MODULE_0__, _download_manager_js__WEBPACK_IMPORTED_MODULE_3__, _genericl10n_js__WEBPACK_IMPORTED_MODULE_4__, _generic_scripting_js__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + + + + + +; +const GenericCom = {}; +class GenericPreferences extends _preferences_js__WEBPACK_IMPORTED_MODULE_2__.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); } - const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); - PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; - const currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); - const loading = currentPage?.renderingState !== _ui_utils.RenderingStates.FINISHED; - PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); -} -function webViewerScrollModeChanged(evt) { - if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { - PDFViewerApplication.store?.set("scrollMode", evt.mode).catch(() => {}); + async _readFromStorage(prefObj) { + return { + prefs: JSON.parse(localStorage.getItem("pdfjs.preferences")) + }; } } -function webViewerSpreadModeChanged(evt) { - if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { - PDFViewerApplication.store?.set("spreadMode", evt.mode).catch(() => {}); +class GenericExternalServices extends _app_js__WEBPACK_IMPORTED_MODULE_0__.DefaultExternalServices { + static createDownloadManager() { + return new _download_manager_js__WEBPACK_IMPORTED_MODULE_3__.DownloadManager(); } -} -function webViewerResize() { - const { - pdfDocument, - pdfViewer, - pdfRenderingQueue - } = PDFViewerApplication; - if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { - return; + static createPreferences() { + return new GenericPreferences(); } - pdfViewer.updateContainerHeightCss(); - if (!pdfDocument) { - return; + static async createL10n() { + return new _genericl10n_js__WEBPACK_IMPORTED_MODULE_4__.GenericL10n(_app_options_js__WEBPACK_IMPORTED_MODULE_1__.AppOptions.get("locale")); } - const currentScaleValue = pdfViewer.currentScaleValue; - if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { - pdfViewer.currentScaleValue = currentScaleValue; + static createScripting() { + return new _generic_scripting_js__WEBPACK_IMPORTED_MODULE_5__.GenericScripting(_app_options_js__WEBPACK_IMPORTED_MODULE_1__.AppOptions.get("sandboxBundleSrc")); } - pdfViewer.update(); } -function webViewerHashchange(evt) { - const hash = evt.hash; - if (!hash) { - return; +_app_js__WEBPACK_IMPORTED_MODULE_0__.PDFViewerApplication.externalServices = GenericExternalServices; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 450: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GenericL10n: () => (/* binding */ GenericL10n) +/* harmony export */ }); +/* harmony import */ var fluent_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8759); +/* harmony import */ var fluent_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8275); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1869); +/* harmony import */ var _l10n_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4065); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + + + +class GenericL10n extends _l10n_js__WEBPACK_IMPORTED_MODULE_3__.L10n { + constructor(lang) { + super({ + lang + }); + this._setL10n(new fluent_dom__WEBPACK_IMPORTED_MODULE_1__.DOMLocalization([], GenericL10n.#generateBundles.bind(GenericL10n, "en-us", this.getLanguage()))); } - if (!PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.initialBookmark = hash; - } else if (!PDFViewerApplication.pdfHistory?.popStateInProgress) { - PDFViewerApplication.pdfLinkService.setHash(hash); + static async *#generateBundles(defaultLang, baseLang) { + const { + baseURL, + paths + } = await this.#getPaths(); + const langs = [baseLang]; + if (defaultLang !== baseLang) { + const shortLang = baseLang.split("-", 1)[0]; + if (shortLang !== baseLang) { + langs.push(shortLang); + } + langs.push(defaultLang); + } + for (const lang of langs) { + const bundle = await this.#createBundle(lang, baseURL, paths); + if (bundle) { + yield bundle; + } + } + } + static async #createBundle(lang, baseURL, paths) { + const path = paths[lang]; + if (!path) { + return null; + } + const url = new URL(path, baseURL); + const text = await (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.fetchData)(url, "text"); + const resource = new fluent_bundle__WEBPACK_IMPORTED_MODULE_0__.FluentResource(text); + const bundle = new fluent_bundle__WEBPACK_IMPORTED_MODULE_0__.FluentBundle(lang); + const errors = bundle.addResource(resource); + if (errors.length) { + console.error("L10n errors", errors); + } + return bundle; + } + static async #getPaths() { + const { + href + } = document.querySelector(`link[type="application/l10n"]`); + const paths = await (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.fetchData)(href, "json"); + return { + baseURL: href.replace(/[^/]*$/, "") || "./", + paths + }; } } -{ - var webViewerFileInputChange = function (evt) { - if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 6143: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ GrabToPan: () => (/* binding */ GrabToPan) +/* harmony export */ }); +const CSS_CLASS_GRAB = "grab-to-pan-grab"; +class GrabToPan { + constructor({ + element + }) { + this.element = element; + this.document = element.ownerDocument; + this.activate = this.activate.bind(this); + this.deactivate = this.deactivate.bind(this); + this.toggle = this.toggle.bind(this); + this._onMouseDown = this.#onMouseDown.bind(this); + this._onMouseMove = this.#onMouseMove.bind(this); + this._endPan = this.#endPan.bind(this); + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; + } + activate() { + if (!this.active) { + this.active = true; + this.element.addEventListener("mousedown", this._onMouseDown, true); + this.element.classList.add(CSS_CLASS_GRAB); + } + } + deactivate() { + if (this.active) { + this.active = false; + this.element.removeEventListener("mousedown", this._onMouseDown, true); + this._endPan(); + this.element.classList.remove(CSS_CLASS_GRAB); + } + } + toggle() { + if (this.active) { + this.deactivate(); + } else { + this.activate(); + } + } + ignoreTarget(node) { + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); + } + #onMouseDown(event) { + if (event.button !== 0 || this.ignoreTarget(event.target)) { return; } - const file = evt.fileInput.files[0]; - let url = URL.createObjectURL(file); - if (file.name) { - url = { - url, - originalUrl: file.name - }; + if (event.originalTarget) { + try { + event.originalTarget.tagName; + } catch { + return; + } + } + this.scrollLeftStart = this.element.scrollLeft; + this.scrollTopStart = this.element.scrollTop; + this.clientXStart = event.clientX; + this.clientYStart = event.clientY; + this.document.addEventListener("mousemove", this._onMouseMove, true); + this.document.addEventListener("mouseup", this._endPan, true); + this.element.addEventListener("scroll", this._endPan, true); + event.preventDefault(); + event.stopPropagation(); + const focusedElement = document.activeElement; + if (focusedElement && !focusedElement.contains(event.target)) { + focusedElement.blur(); } - PDFViewerApplication.open(url); - }; - var webViewerOpenFile = function (evt) { - const fileInput = PDFViewerApplication.appConfig.openFileInput; - fileInput.click(); - }; -} -function webViewerPresentationMode() { - PDFViewerApplication.requestPresentationMode(); -} -function webViewerSwitchAnnotationEditorMode(evt) { - PDFViewerApplication.pdfViewer.annotationEditorMode = evt.mode; -} -function webViewerSwitchAnnotationEditorParams(evt) { - PDFViewerApplication.pdfViewer.annotationEditorParams = evt; -} -function webViewerPrint() { - PDFViewerApplication.triggerPrinting(); -} -function webViewerDownload() { - PDFViewerApplication.downloadOrSave(); -} -function webViewerFirstPage() { - if (PDFViewerApplication.pdfDocument) { - PDFViewerApplication.page = 1; } -} -function webViewerLastPage() { - if (PDFViewerApplication.pdfDocument) { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; + #onMouseMove(event) { + this.element.removeEventListener("scroll", this._endPan, true); + if (!(event.buttons & 1)) { + this._endPan(); + return; + } + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + this.element.scrollTo({ + top: this.scrollTopStart - yDiff, + left: this.scrollLeftStart - xDiff, + behavior: "instant" + }); + if (!this.overlay.parentNode) { + document.body.append(this.overlay); + } + } + #endPan() { + this.element.removeEventListener("scroll", this._endPan, true); + this.document.removeEventListener("mousemove", this._onMouseMove, true); + this.document.removeEventListener("mouseup", this._endPan, true); + this.overlay.remove(); } } -function webViewerNextPage() { - PDFViewerApplication.pdfViewer.nextPage(); -} -function webViewerPreviousPage() { - PDFViewerApplication.pdfViewer.previousPage(); -} -function webViewerZoomIn() { - PDFViewerApplication.zoomIn(); -} -function webViewerZoomOut() { - PDFViewerApplication.zoomOut(); -} -function webViewerZoomReset() { - PDFViewerApplication.zoomReset(); -} -function webViewerPageNumberChanged(evt) { - const pdfViewer = PDFViewerApplication.pdfViewer; - if (evt.value !== "") { - PDFViewerApplication.pdfLinkService.goToPage(evt.value); + + +/***/ }), + +/***/ 4065: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ L10n: () => (/* binding */ L10n) +/* harmony export */ }); +class L10n { + #dir; + #lang; + #l10n; + constructor({ + lang, + isRTL + }, l10n = null) { + this.#lang = L10n.#fixupLangCode(lang); + this.#l10n = l10n; + this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? "rtl" : "ltr"; + } + _setL10n(l10n) { + this.#l10n = l10n; + } + getLanguage() { + return this.#lang; + } + getDirection() { + return this.#dir; + } + async get(ids, args = null, fallback) { + if (Array.isArray(ids)) { + ids = ids.map(id => ({ + id + })); + const messages = await this.#l10n.formatMessages(ids); + return messages.map(message => message.value); + } + const messages = await this.#l10n.formatMessages([{ + id: ids, + args + }]); + return messages?.[0].value || fallback; } - if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { - PDFViewerApplication.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + async translate(element) { + try { + this.#l10n.connectRoot(element); + await this.#l10n.translateRoots(); + } catch {} + } + pause() { + this.#l10n.pauseObserving(); + } + resume() { + this.#l10n.resumeObserving(); + } + static #fixupLangCode(langCode) { + langCode = langCode?.toLowerCase() || "en-us"; + const PARTIAL_LANG_CODES = { + en: "en-us", + es: "es-es", + fy: "fy-nl", + ga: "ga-ie", + gu: "gu-in", + hi: "hi-in", + hy: "hy-am", + nb: "nb-no", + ne: "ne-np", + nn: "nn-no", + pa: "pa-in", + pt: "pt-pt", + sv: "sv-se", + zh: "zh-cn" + }; + return PARTIAL_LANG_CODES[langCode] || langCode; } -} -function webViewerScaleChanged(evt) { - PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; -} -function webViewerRotateCw() { - PDFViewerApplication.rotatePages(90); -} -function webViewerRotateCcw() { - PDFViewerApplication.rotatePages(-90); -} -function webViewerOptionalContentConfig(evt) { - PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; -} -function webViewerSwitchScrollMode(evt) { - PDFViewerApplication.pdfViewer.scrollMode = evt.mode; -} -function webViewerSwitchSpreadMode(evt) { - PDFViewerApplication.pdfViewer.spreadMode = evt.mode; -} -function webViewerDocumentProperties() { - PDFViewerApplication.pdfDocumentProperties.open(); -} -function webViewerFindFromUrlHash(evt) { - PDFViewerApplication.eventBus.dispatch("find", { - source: evt.source, - type: "", - query: evt.query, - phraseSearch: evt.phraseSearch, - caseSensitive: false, - entireWord: false, - highlightAll: true, - findPrevious: false, - matchDiacritics: true - }); -} -function webViewerUpdateFindMatchesCount({ - matchesCount -}) { - if (PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); - } else { - PDFViewerApplication.findBar.updateResultsCount(matchesCount); + static #isRTL(lang) { + const shortCode = lang.split("-", 1)[0]; + return ["ar", "he", "fa", "ps", "ur"].includes(shortCode); } } -function webViewerUpdateFindControlState({ - state, - previous, - matchesCount, - rawQuery -}) { - if (PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.externalServices.updateFindControlState({ - result: state, - findPrevious: previous, - matchesCount, - rawQuery + + +/***/ }), + +/***/ 7910: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NullL10n: () => (/* binding */ NullL10n) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var fluent_bundle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8759); +/* harmony import */ var fluent_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8275); +/* harmony import */ var _l10n_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4065); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + + + +class ConstL10n extends _l10n_js__WEBPACK_IMPORTED_MODULE_3__.L10n { + constructor(lang) { + super({ + lang }); - } else { - PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); + this._setL10n(new fluent_dom__WEBPACK_IMPORTED_MODULE_2__.DOMLocalization([], ConstL10n.#generateBundles.bind(ConstL10n, lang))); } -} -function webViewerScaleChanging(evt) { - PDFViewerApplication.toolbar.setPageScale(evt.presetValue, evt.scale); - PDFViewerApplication.pdfViewer.update(); -} -function webViewerRotationChanging(evt) { - PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; - PDFViewerApplication.forceRendering(); - PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; -} -function webViewerPageChanging({ - pageNumber, - pageLabel -}) { - PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel); - PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber); - if (PDFViewerApplication.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS) { - PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber); + static async *#generateBundles(lang) { + const text = 'pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = of { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-open-in-app-button =\n .title = Open in app\npdfjs-open-in-app-button-label = Open in app\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } bytes)\npdfjs-document-properties-mb = { $size_mb } MB ({ $size_b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-string = { $date }, { $time }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-toggle-sidebar-button =\n .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title =\n .title = Page { $page }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-string = { $date }, { $time }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-free-text =\n .aria-label = Text Editor\npdfjs-free-text-default-content = Start typing\u2026\npdfjs-ink =\n .aria-label = Draw Editor\npdfjs-ink-canvas =\n .aria-label = User-created image\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-label-top-left = Top left corner \u2014 resize\npdfjs-editor-resizer-label-top-middle = Top middle \u2014 resize\npdfjs-editor-resizer-label-top-right = Top right corner \u2014 resize\npdfjs-editor-resizer-label-middle-right = Middle right \u2014 resize\npdfjs-editor-resizer-label-bottom-right = Bottom right corner \u2014 resize\npdfjs-editor-resizer-label-bottom-middle = Bottom middle \u2014 resize\npdfjs-editor-resizer-label-bottom-left = Bottom left corner \u2014 resize\npdfjs-editor-resizer-label-middle-left = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red'; + const resource = new fluent_bundle__WEBPACK_IMPORTED_MODULE_1__.FluentResource(text); + const bundle = new fluent_bundle__WEBPACK_IMPORTED_MODULE_1__.FluentBundle(lang); + const errors = bundle.addResource(resource); + if (errors.length) { + console.error("L10n errors", errors); + } + yield bundle; } -} -function webViewerResolutionChange(evt) { - PDFViewerApplication.pdfViewer.refresh(); -} -function webViewerVisibilityChange(evt) { - if (document.visibilityState === "visible") { - setZoomDisabledTimeout(); + static get instance() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "instance", new ConstL10n("en-us")); } } -let zoomDisabledTimeout = null; -function setZoomDisabledTimeout() { - if (zoomDisabledTimeout) { - clearTimeout(zoomDisabledTimeout); +const NullL10n = { + getLanguage() { + return ConstL10n.instance.getLanguage(); + }, + getDirection() { + return ConstL10n.instance.getDirection(); + }, + async get(ids, args = null, fallback) { + return ConstL10n.instance.get(ids, args, fallback); + }, + async translate(element) { + return ConstL10n.instance.translate(element); + }, + pause() { + return ConstL10n.instance.pause(); + }, + resume() { + return ConstL10n.instance.resume(); } - zoomDisabledTimeout = setTimeout(function () { - zoomDisabledTimeout = null; - }, WHEEL_ZOOM_DISABLED_TIMEOUT); -} -function webViewerWheel(evt) { - const { - pdfViewer, - supportedMouseWheelZoomModifierKeys - } = PDFViewerApplication; - if (pdfViewer.isInPresentationMode) { - return; +}; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 1996: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ OverlayManager: () => (/* binding */ OverlayManager) +/* harmony export */ }); +class OverlayManager { + #overlays = new WeakMap(); + #active = null; + get active() { + return this.#active; } - if (evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) { - evt.preventDefault(); - if (zoomDisabledTimeout || document.visibilityState === "hidden") { - return; + async register(dialog, canForceClose = false) { + if (typeof dialog !== "object") { + throw new Error("Not enough parameters."); + } else if (this.#overlays.has(dialog)) { + throw new Error("The overlay is already registered."); } - const deltaMode = evt.deltaMode; - const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); - const previousScale = pdfViewer.currentScale; - let ticks = 0; - if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { - if (Math.abs(delta) >= 1) { - ticks = Math.sign(delta); + this.#overlays.set(dialog, { + canForceClose + }); + dialog.addEventListener("cancel", evt => { + this.#active = null; + }); + } + async open(dialog) { + if (!this.#overlays.has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (this.#active) { + if (this.#active === dialog) { + throw new Error("The overlay is already active."); + } else if (this.#overlays.get(dialog).canForceClose) { + await this.close(); } else { - ticks = PDFViewerApplication.accumulateWheelTicks(delta); + throw new Error("Another overlay is currently active."); } - } else { - const PIXELS_PER_LINE_SCALE = 30; - ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE); - } - if (ticks < 0) { - PDFViewerApplication.zoomOut(-ticks); - } else if (ticks > 0) { - PDFViewerApplication.zoomIn(ticks); - } - const currentScale = pdfViewer.currentScale; - if (previousScale !== currentScale) { - const scaleCorrectionFactor = currentScale / previousScale - 1; - const rect = pdfViewer.container.getBoundingClientRect(); - const dx = evt.clientX - rect.left; - const dy = evt.clientY - rect.top; - pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; - pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; } - } else { - setZoomDisabledTimeout(); + this.#active = dialog; + dialog.showModal(); } -} -function webViewerTouchStart(evt) { - if (evt.touches.length > 1) { - evt.preventDefault(); + async close(dialog = this.#active) { + if (!this.#overlays.has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (!this.#active) { + throw new Error("The overlay is currently not active."); + } else if (this.#active !== dialog) { + throw new Error("Another overlay is currently active."); + } + dialog.close(); + this.#active = null; } } -function webViewerClick(evt) { - if (!PDFViewerApplication.secondaryToolbar.isOpen) { - return; + + +/***/ }), + +/***/ 6329: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PasswordPrompt: () => (/* binding */ PasswordPrompt) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +class PasswordPrompt { + #activeCapability = null; + #updateCallback = null; + #reason = null; + constructor(options, overlayManager, isViewerEmbedded = false) { + this.dialog = options.dialog; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this._isViewerEmbedded = isViewerEmbedded; + this.submitButton.addEventListener("click", this.#verify.bind(this)); + this.cancelButton.addEventListener("click", this.close.bind(this)); + this.input.addEventListener("keydown", e => { + if (e.keyCode === 13) { + this.#verify(); + } + }); + this.overlayManager.register(this.dialog, true); + this.dialog.addEventListener("close", this.#cancel.bind(this)); } - const appConfig = PDFViewerApplication.appConfig; - if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { - PDFViewerApplication.secondaryToolbar.close(); + async open() { + if (this.#activeCapability) { + await this.#activeCapability.promise; + } + this.#activeCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PromiseCapability(); + try { + await this.overlayManager.open(this.dialog); + } catch (ex) { + this.#activeCapability.resolve(); + throw ex; + } + const passwordIncorrect = this.#reason === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PasswordResponses.INCORRECT_PASSWORD; + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); + } + this.label.setAttribute("data-l10n-id", `pdfjs-password-${passwordIncorrect ? "invalid" : "label"}`); } -} -function webViewerKeyDown(evt) { - if (PDFViewerApplication.overlayManager.active) { - return; + async close() { + if (this.overlayManager.active === this.dialog) { + this.overlayManager.close(this.dialog); + } } - const { - eventBus, - pdfViewer - } = PDFViewerApplication; - const isViewerInPresentationMode = pdfViewer.isInPresentationMode; - let handled = false, - ensureViewerFocused = false; - const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); - if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { - switch (evt.keyCode) { - case 70: - if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { - PDFViewerApplication.findBar.open(); - handled = true; - } - break; - case 71: - if (!PDFViewerApplication.supportsIntegratedFind) { - const { - state - } = PDFViewerApplication.findController; - if (state) { - const eventState = Object.assign(Object.create(null), state, { - source: window, - type: "again", - findPrevious: cmd === 5 || cmd === 12 - }); - eventBus.dispatch("find", eventState); - } - handled = true; - } - break; - case 61: - case 107: - case 187: - case 171: - if (!isViewerInPresentationMode) { - PDFViewerApplication.zoomIn(); - } - handled = true; - break; - case 173: - case 109: - case 189: - if (!isViewerInPresentationMode) { - PDFViewerApplication.zoomOut(); - } - handled = true; - break; - case 48: - case 96: - if (!isViewerInPresentationMode) { - setTimeout(function () { - PDFViewerApplication.zoomReset(); - }); - handled = false; - } - break; - case 38: - if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { - PDFViewerApplication.page = 1; - handled = true; - ensureViewerFocused = true; - } - break; - case 40: - if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; - handled = true; - ensureViewerFocused = true; - } - break; + #verify() { + const password = this.input.value; + if (password?.length > 0) { + this.#invokeCallback(password); } } - if (cmd === 1 || cmd === 8) { - switch (evt.keyCode) { - case 83: - eventBus.dispatch("download", { - source: window - }); - handled = true; - break; - case 79: - { - eventBus.dispatch("openfile", { - source: window - }); - handled = true; - } - break; + #cancel() { + this.#invokeCallback(new Error("PasswordPrompt cancelled.")); + this.#activeCapability.resolve(); + } + #invokeCallback(password) { + if (!this.#updateCallback) { + return; + } + this.close(); + this.input.value = ""; + this.#updateCallback(password); + this.#updateCallback = null; + } + async setUpdateCallback(updateCallback, reason) { + if (this.#activeCapability) { + await this.#activeCapability.promise; } + this.#updateCallback = updateCallback; + this.#reason = reason; } - if (cmd === 3 || cmd === 10) { - switch (evt.keyCode) { - case 80: - PDFViewerApplication.requestPresentationMode(); - handled = true; - PDFViewerApplication.externalServices.reportTelemetry({ - type: "buttons", - data: { - id: "presentationModeKeyboard" - } - }); - break; - case 71: - PDFViewerApplication.appConfig.toolbar.pageNumber.select(); - handled = true; - break; +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 716: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFAttachmentViewer: () => (/* binding */ PDFAttachmentViewer) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9415); +/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6554); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + + +class PDFAttachmentViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_1__.BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; + this.eventBus._on("fileattachmentannotation", this.#appendAttachment.bind(this)); + } + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; + if (!keepRenderedCapability) { + this._renderedCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PromiseCapability(); } + this._pendingDispatchEvent = false; } - if (handled) { - if (ensureViewerFocused && !isViewerInPresentationMode) { - pdfViewer.focus(); + async _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + if (attachmentsCount === 0 && !this._pendingDispatchEvent) { + this._pendingDispatchEvent = true; + await (0,_event_utils_js__WEBPACK_IMPORTED_MODULE_2__.waitOnEventOrTimeout)({ + target: this.eventBus, + name: "annotationlayerrendered", + delay: 1000 + }); + if (!this._pendingDispatchEvent) { + return; + } } - evt.preventDefault(); - return; + this._pendingDispatchEvent = false; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); } - const curElement = (0, _ui_utils.getActiveOrFocusedElement)(); - const curElementTagName = curElement?.tagName.toUpperCase(); - if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement?.isContentEditable) { - if (evt.keyCode !== 27) { + _bindLink(element, { + content, + filename + }) { + element.onclick = () => { + this.downloadManager.openOrDownloadData(content, filename); + return false; + }; + } + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); + } + this._attachments = attachments || null; + if (!attachments) { + this._dispatchEvent(0); return; } + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; + for (const name in attachments) { + const item = attachments[name]; + const content = item.content, + filename = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.getFilenameFromUrl)(item.filename, true); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, { + content, + filename + }); + element.textContent = this._normalizeTextContent(filename); + div.append(element); + fragment.append(div); + attachmentsCount++; + } + this._finishRendering(fragment, attachmentsCount); } - if (cmd === 0) { - let turnPage = 0, - turnOnlyIfPageFit = false; - switch (evt.keyCode) { - case 38: - case 33: - if (pdfViewer.isVerticalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - turnPage = -1; - break; - case 8: - if (!isViewerInPresentationMode) { - turnOnlyIfPageFit = true; - } - turnPage = -1; - break; - case 37: - if (pdfViewer.isHorizontalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - case 75: - case 80: - turnPage = -1; - break; - case 27: - if (PDFViewerApplication.secondaryToolbar.isOpen) { - PDFViewerApplication.secondaryToolbar.close(); - handled = true; - } - if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar.opened) { - PDFViewerApplication.findBar.close(); - handled = true; - } - break; - case 40: - case 34: - if (pdfViewer.isVerticalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - turnPage = 1; - break; - case 13: - case 32: - if (!isViewerInPresentationMode) { - turnOnlyIfPageFit = true; - } - turnPage = 1; - break; - case 39: - if (pdfViewer.isHorizontalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - case 74: - case 78: - turnPage = 1; - break; - case 36: - if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { - PDFViewerApplication.page = 1; - handled = true; - ensureViewerFocused = true; - } - break; - case 35: - if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; - handled = true; - ensureViewerFocused = true; + #appendAttachment({ + filename, + content + }) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { + return; + } + const attachments = this._attachments || Object.create(null); + for (const name in attachments) { + if (filename === name) { + return; } - break; - case 83: - PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.SELECT); - break; - case 72: - PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.HAND); - break; - case 82: - PDFViewerApplication.rotatePages(90); - break; - case 115: - PDFViewerApplication.pdfSidebar.toggle(); - break; - } - if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { - if (turnPage > 0) { - pdfViewer.nextPage(); - } else { - pdfViewer.previousPage(); } - handled = true; - } + attachments[filename] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true + }); + }); } - if (cmd === 4) { - switch (evt.keyCode) { - case 13: - case 32: - if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 3611: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFCursorTools: () => (/* binding */ PDFCursorTools) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +/* harmony import */ var _grab_to_pan_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6143); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + + +class PDFCursorTools { + #active = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT; + #prevActive = null; + constructor({ + container, + eventBus, + cursorToolOnLoad = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT + }) { + this.container = container; + this.eventBus = eventBus; + this.#addEventListeners(); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); + }); + } + get activeTool() { + return this.#active; + } + switchTool(tool) { + if (this.#prevActive !== null) { + return; + } + if (tool === this.#active) { + return; + } + const disableActiveTool = () => { + switch (this.#active) { + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT: break; - } - pdfViewer.previousPage(); - handled = true; - break; - case 82: - PDFViewerApplication.rotatePages(-90); + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.HAND: + this._handTool.deactivate(); + break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.ZOOM: + } + }; + switch (tool) { + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT: + disableActiveTool(); break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.HAND: + disableActiveTool(); + this._handTool.activate(); + break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; } + this.#active = tool; + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool + }); } - if (!handled && !isViewerInPresentationMode) { - if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { - ensureViewerFocused = true; - } - } - if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { - pdfViewer.focus(); + #addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); + let annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE, + presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL; + const disableActive = () => { + const prevActive = this.#active; + this.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT); + this.#prevActive ??= prevActive; + }; + const enableActive = () => { + const prevActive = this.#prevActive; + if (prevActive !== null && annotationEditorMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE && presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL) { + this.#prevActive = null; + this.switchTool(prevActive); + } + }; + this.eventBus._on("secondarytoolbarreset", evt => { + if (this.#prevActive !== null) { + annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; + presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL; + enableActive(); + } + }); + this.eventBus._on("annotationeditormodechanged", ({ + mode + }) => { + annotationEditorMode = mode; + if (mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { + enableActive(); + } else { + disableActive(); + } + }); + this.eventBus._on("presentationmodechanged", ({ + state + }) => { + presentationModeState = state; + if (state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL) { + enableActive(); + } else if (state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN) { + disableActive(); + } + }); } - if (handled) { - evt.preventDefault(); + get _handTool() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_handTool", new _grab_to_pan_js__WEBPACK_IMPORTED_MODULE_2__.GrabToPan({ + element: this.container + })); } } -function beforeUnload(evt) { - evt.preventDefault(); - evt.returnValue = ""; - return false; -} -function webViewerAnnotationEditorStatesChanged(data) { - PDFViewerApplication.externalServices.updateEditorStates(data); -} -const PDFPrintServiceFactory = { - instance: { - supportsPrinting: false, - createPrintService() { - throw new Error("Not implemented: createPrintService"); - } - } -}; -exports.PDFPrintServiceFactory = PDFPrintServiceFactory; - -/***/ }), -/* 5 */ -/***/ ((module) => { - - -let pdfjsLib; -if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { - pdfjsLib = window["pdfjs-dist/build/pdf"]; -} else { - pdfjsLib = require("../build/pdf.js"); -} -module.exports = pdfjsLib; +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 6 */ -/***/ ((__unused_webpack_module, exports) => { +/***/ 6312: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFDocumentProperties: () => (/* binding */ PDFDocumentProperties) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0; -exports.waitOnEventOrTimeout = waitOnEventOrTimeout; -const WaitOnType = { - EVENT: "event", - TIMEOUT: "timeout" + +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "letter", + "8.5x14": "legal" }; -exports.WaitOnType = WaitOnType; -function waitOnEventOrTimeout({ - target, - name, - delay = 0 -}) { - return new Promise(function (resolve, reject) { - if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { - throw new Error("waitOnEventOrTimeout - invalid parameters."); - } - function handler(type) { - if (target instanceof EventBus) { - target._off(name, eventHandler); - } else { - target.removeEventListener(name, eventHandler); - } - if (timeout) { - clearTimeout(timeout); - } - resolve(type); - } - const eventHandler = handler.bind(null, WaitOnType.EVENT); - if (target instanceof EventBus) { - target._on(name, eventHandler); - } else { - target.addEventListener(name, eventHandler); - } - const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); - const timeout = setTimeout(timeoutHandler, delay); - }); +const METRIC_PAGE_NAMES = { + "297x420": "a-three", + "210x297": "a-four" +}; +function getPageName(size, isPortrait, pageNames) { + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; } -class EventBus { - constructor() { - this._listeners = Object.create(null); - } - on(eventName, listener, options = null) { - this._on(eventName, listener, { - external: true, - once: options?.once +class PDFDocumentProperties { + #fieldData = null; + constructor({ + dialog, + fields, + closeButton + }, overlayManager, eventBus, l10n, fileNameLookup) { + this.dialog = dialog; + this.fields = fields; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._fileNameLookup = fileNameLookup; + this.#reset(); + closeButton.addEventListener("click", this.close.bind(this)); + this.overlayManager.register(this.dialog); + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; }); + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(l10n.getLanguage()); } - off(eventName, listener, options = null) { - this._off(eventName, listener, { - external: true, - once: options?.once + async open() { + await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]); + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; + if (this.#fieldData && currentPageNumber === this.#fieldData._currentPageNumber && pagesRotation === this.#fieldData._pagesRotation) { + this.#updateUI(); + return; + } + const { + info, + contentLength + } = await this.pdfDocument.getMetadata(); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { + return this.#parsePageSize((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getPageSizeInches)(pdfPage), pagesRotation); + }), this.#parseLinearization(info.IsLinearized)]); + this.#fieldData = Object.freeze({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation }); + this.#updateUI(); + const { + length + } = await this.pdfDocument.getDownloadInfo(); + if (contentLength === length) { + return; + } + const data = Object.assign(Object.create(null), this.#fieldData); + data.fileSize = await this.#parseFileSize(length); + this.#fieldData = Object.freeze(data); + this.#updateUI(); } - dispatch(eventName, data) { - const eventListeners = this._listeners[eventName]; - if (!eventListeners || eventListeners.length === 0) { + async close() { + this.overlayManager.close(this.dialog); + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.#reset(); + this.#updateUI(true); + } + if (!pdfDocument) { return; } - let externalListeners; - for (const { - listener, - external, - once - } of eventListeners.slice(0)) { - if (once) { - this._off(eventName, listener); - } - if (external) { - (externalListeners ||= []).push(listener); - continue; + this.pdfDocument = pdfDocument; + this._dataAvailableCapability.resolve(); + } + #reset() { + this.pdfDocument = null; + this.#fieldData = null; + this._dataAvailableCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + #updateUI(reset = false) { + if (reset || !this.#fieldData) { + for (const id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; } - listener(data); + return; } - if (externalListeners) { - for (const listener of externalListeners) { - listener(data); + if (this.overlayManager.active !== this.dialog) { + return; + } + for (const id in this.fields) { + const content = this.#fieldData[id]; + this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } + } + async #parseFileSize(fileSize = 0) { + const kb = fileSize / 1024, + mb = kb / 1024; + if (!kb) { + return undefined; + } + return this.l10n.get(`pdfjs-document-properties-${mb >= 1 ? "mb" : "kb"}`, { + size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), + size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }); + } + async #parsePageSize(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + const isPortrait = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isPortraitOrientation)(pageSizeInches); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) + }; + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } } - externalListeners = null; } - } - _on(eventName, listener, options = null) { - const eventListeners = this._listeners[eventName] ||= []; - eventListeners.push({ - listener, - external: options?.external === true, - once: options?.once === true + const [{ + width, + height + }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`pdfjs-document-properties-page-size-unit-${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`pdfjs-document-properties-page-size-name-${rawName}`), this.l10n.get(`pdfjs-document-properties-page-size-orientation-${isPortrait ? "portrait" : "landscape"}`)]); + return this.l10n.get(`pdfjs-document-properties-page-size-dimension-${name ? "name-" : ""}string`, { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit, + name, + orientation }); } - _off(eventName, listener, options = null) { - const eventListeners = this._listeners[eventName]; - if (!eventListeners) { - return; - } - for (let i = 0, ii = eventListeners.length; i < ii; i++) { - if (eventListeners[i].listener === listener) { - eventListeners.splice(i, 1); - return; - } + async #parseDate(inputDate) { + const dateObject = pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PDFDateString.toDateObject(inputDate); + if (!dateObject) { + return undefined; } + return this.l10n.get("pdfjs-document-properties-date-string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); } -} -exports.EventBus = EventBus; -class AutomationEventBus extends EventBus { - dispatch(eventName, data) { - throw new Error("Not implemented: AutomationEventBus.dispatch"); + #parseLinearization(isLinearized) { + return this.l10n.get(`pdfjs-document-properties-linearized-${isLinearized ? "yes" : "no"}`); } } -exports.AutomationEventBus = AutomationEventBus; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 7 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 1795: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFFindBar: () => (/* binding */ PDFFindBar) +/* harmony export */ }); +/* harmony import */ var _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3557); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__]); +_pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFCursorTools = exports.CursorTool = void 0; -var _pdfjsLib = __webpack_require__(5); -var _grab_to_pan = __webpack_require__(8); -var _ui_utils = __webpack_require__(1); -const CursorTool = { - SELECT: 0, - HAND: 1, - ZOOM: 2 -}; -exports.CursorTool = CursorTool; -class PDFCursorTools { - constructor({ - container, - eventBus, - cursorToolOnLoad = CursorTool.SELECT - }) { - this.container = container; + +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); + constructor(options, eventBus) { + this.opened = false; + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.matchDiacritics = options.matchDiacriticsCheckbox; + this.entireWord = options.entireWordCheckbox; + this.findMsg = options.findMsg; + this.findResultsCount = options.findResultsCount; + this.findPreviousButton = options.findPreviousButton; + this.findNextButton = options.findNextButton; this.eventBus = eventBus; - this.active = CursorTool.SELECT; - this.previouslyActive = null; - this.handTool = new _grab_to_pan.GrabToPan({ - element: this.container + this.toggleButton.addEventListener("click", () => { + this.toggle(); }); - this.#addEventListeners(); - Promise.resolve().then(() => { - this.switchTool(cursorToolOnLoad); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); }); - } - get activeTool() { - return this.active; - } - switchTool(tool) { - if (this.previouslyActive !== null) { - return; - } - if (tool === this.active) { - return; - } - const disableActiveTool = () => { - switch (this.active) { - case CursorTool.SELECT: + this.bar.addEventListener("keydown", e => { + switch (e.keyCode) { + case 13: + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); + } break; - case CursorTool.HAND: - this.handTool.deactivate(); + case 27: + this.close(); break; - case CursorTool.ZOOM: } - }; - switch (tool) { - case CursorTool.SELECT: - disableActiveTool(); - break; - case CursorTool.HAND: - disableActiveTool(); - this.handTool.activate(); - break; - case CursorTool.ZOOM: - default: - console.error(`switchTool: "${tool}" is an unsupported value.`); - return; - } - this.active = tool; - this.#dispatchEvent(); - } - #dispatchEvent() { - this.eventBus.dispatch("cursortoolchanged", { - source: this, - tool: this.active }); - } - #addEventListeners() { - this.eventBus._on("switchcursortool", evt => { - this.switchTool(evt.tool); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); }); - let annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE, - presentationModeState = _ui_utils.PresentationModeState.NORMAL; - const disableActive = () => { - const previouslyActive = this.active; - this.switchTool(CursorTool.SELECT); - this.previouslyActive ??= previouslyActive; - }; - const enableActive = () => { - const previouslyActive = this.previouslyActive; - if (previouslyActive !== null && annotationEditorMode === _pdfjsLib.AnnotationEditorType.NONE && presentationModeState === _ui_utils.PresentationModeState.NORMAL) { - this.previouslyActive = null; - this.switchTool(previouslyActive); - } - }; - this.eventBus._on("secondarytoolbarreset", evt => { - if (this.previouslyActive !== null) { - annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; - presentationModeState = _ui_utils.PresentationModeState.NORMAL; - enableActive(); - } + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); }); - this.eventBus._on("annotationeditormodechanged", ({ - mode - }) => { - annotationEditorMode = mode; - if (mode === _pdfjsLib.AnnotationEditorType.NONE) { - enableActive(); - } else { - disableActive(); - } + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); }); - this.eventBus._on("presentationmodechanged", ({ - state - }) => { - presentationModeState = state; - if (state === _ui_utils.PresentationModeState.NORMAL) { - enableActive(); - } else if (state === _ui_utils.PresentationModeState.FULLSCREEN) { - disableActive(); - } + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); + }); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); + }); + this.matchDiacritics.addEventListener("click", () => { + this.dispatchEvent("diacriticmatchingchange"); }); } -} -exports.PDFCursorTools = PDFCursorTools; - -/***/ }), -/* 8 */ -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.GrabToPan = void 0; -const CSS_CLASS_GRAB = "grab-to-pan-grab"; -class GrabToPan { - constructor(options) { - this.element = options.element; - this.document = options.element.ownerDocument; - if (typeof options.ignoreTarget === "function") { - this.ignoreTarget = options.ignoreTarget; - } - this.onActiveChanged = options.onActiveChanged; - this.activate = this.activate.bind(this); - this.deactivate = this.deactivate.bind(this); - this.toggle = this.toggle.bind(this); - this._onMouseDown = this.#onMouseDown.bind(this); - this._onMouseMove = this.#onMouseMove.bind(this); - this._endPan = this.#endPan.bind(this); - const overlay = this.overlay = document.createElement("div"); - overlay.className = "grab-to-pan-grabbing"; + reset() { + this.updateUIState(); } - activate() { - if (!this.active) { - this.active = true; - this.element.addEventListener("mousedown", this._onMouseDown, true); - this.element.classList.add(CSS_CLASS_GRAB); - this.onActiveChanged?.(true); - } + dispatchEvent(type, findPrev = false) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev, + matchDiacritics: this.matchDiacritics.checked + }); } - deactivate() { - if (this.active) { - this.active = false; - this.element.removeEventListener("mousedown", this._onMouseDown, true); - this._endPan(); - this.element.classList.remove(CSS_CLASS_GRAB); - this.onActiveChanged?.(false); + updateUIState(state, previous, matchesCount) { + const { + findField, + findMsg + } = this; + let findMsgId = "", + status = ""; + switch (state) { + case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.FOUND: + break; + case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.PENDING: + status = "pending"; + break; + case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.NOT_FOUND: + findMsgId = "pdfjs-find-not-found"; + status = "notFound"; + break; + case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.WRAPPED: + findMsgId = `pdfjs-find-reached-${previous ? "top" : "bottom"}`; + break; } - } - toggle() { - if (this.active) { - this.deactivate(); + findField.setAttribute("data-status", status); + findField.setAttribute("aria-invalid", state === _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.NOT_FOUND); + findMsg.setAttribute("data-status", status); + if (findMsgId) { + findMsg.setAttribute("data-l10n-id", findMsgId); } else { - this.activate(); + findMsg.removeAttribute("data-l10n-id"); + findMsg.textContent = ""; } + this.updateResultsCount(matchesCount); } - ignoreTarget(node) { - return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); - } - #onMouseDown(event) { - if (event.button !== 0 || this.ignoreTarget(event.target)) { - return; - } - if (event.originalTarget) { - try { - event.originalTarget.tagName; - } catch (e) { - return; - } - } - this.scrollLeftStart = this.element.scrollLeft; - this.scrollTopStart = this.element.scrollTop; - this.clientXStart = event.clientX; - this.clientYStart = event.clientY; - this.document.addEventListener("mousemove", this._onMouseMove, true); - this.document.addEventListener("mouseup", this._endPan, true); - this.element.addEventListener("scroll", this._endPan, true); - event.preventDefault(); - event.stopPropagation(); - const focusedElement = document.activeElement; - if (focusedElement && !focusedElement.contains(event.target)) { - focusedElement.blur(); + updateResultsCount({ + current = 0, + total = 0 + } = {}) { + const { + findResultsCount + } = this; + if (total > 0) { + const limit = MATCHES_COUNT_LIMIT; + findResultsCount.setAttribute("data-l10n-id", `pdfjs-find-match-count${total > limit ? "-limit" : ""}`); + findResultsCount.setAttribute("data-l10n-args", JSON.stringify({ + limit, + current, + total + })); + } else { + findResultsCount.removeAttribute("data-l10n-id"); + findResultsCount.textContent = ""; } } - #onMouseMove(event) { - this.element.removeEventListener("scroll", this._endPan, true); - if (!(event.buttons & 1)) { - this._endPan(); + open() { + if (!this.opened) { + this.#resizeObserver.observe(this.bar.parentNode); + this.#resizeObserver.observe(this.bar); + this.opened = true; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleExpandedBtn)(this.toggleButton, true, this.bar); + } + this.findField.select(); + this.findField.focus(); + } + close() { + if (!this.opened) { return; } - const xDiff = event.clientX - this.clientXStart; - const yDiff = event.clientY - this.clientYStart; - const scrollTop = this.scrollTopStart - yDiff; - const scrollLeft = this.scrollLeftStart - xDiff; - if (this.element.scrollTo) { - this.element.scrollTo({ - top: scrollTop, - left: scrollLeft, - behavior: "instant" - }); + this.#resizeObserver.disconnect(); + this.opened = false; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleExpandedBtn)(this.toggleButton, false, this.bar); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + toggle() { + if (this.opened) { + this.close(); } else { - this.element.scrollTop = scrollTop; - this.element.scrollLeft = scrollLeft; - } - if (!this.overlay.parentNode) { - document.body.append(this.overlay); + this.open(); } } - #endPan() { - this.element.removeEventListener("scroll", this._endPan, true); - this.document.removeEventListener("mousemove", this._onMouseMove, true); - this.document.removeEventListener("mouseup", this._endPan, true); - this.overlay.remove(); + #resizeObserverCallback(entries) { + const { + bar + } = this; + bar.classList.remove("wrapContainers"); + const findbarHeight = bar.clientHeight; + const inputContainerHeight = bar.firstElementChild.clientHeight; + if (findbarHeight > inputContainerHeight) { + bar.classList.add("wrapContainers"); + } } } -exports.GrabToPan = GrabToPan; - -/***/ }), -/* 9 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); +/***/ }), -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.AnnotationEditorParams = void 0; -var _pdfjsLib = __webpack_require__(5); -class AnnotationEditorParams { - constructor(options, eventBus) { - this.eventBus = eventBus; - this.#bindListeners(options); - } - #bindListeners({ - editorFreeTextFontSize, - editorFreeTextColor, - editorInkColor, - editorInkThickness, - editorInkOpacity - }) { - editorFreeTextFontSize.addEventListener("input", evt => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: _pdfjsLib.AnnotationEditorParamsType.FREETEXT_SIZE, - value: editorFreeTextFontSize.valueAsNumber - }); - }); - editorFreeTextColor.addEventListener("input", evt => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: _pdfjsLib.AnnotationEditorParamsType.FREETEXT_COLOR, - value: editorFreeTextColor.value - }); - }); - editorInkColor.addEventListener("input", evt => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: _pdfjsLib.AnnotationEditorParamsType.INK_COLOR, - value: editorInkColor.value - }); - }); - editorInkThickness.addEventListener("input", evt => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: _pdfjsLib.AnnotationEditorParamsType.INK_THICKNESS, - value: editorInkThickness.valueAsNumber - }); - }); - editorInkOpacity.addEventListener("input", evt => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: _pdfjsLib.AnnotationEditorParamsType.INK_OPACITY, - value: editorInkOpacity.valueAsNumber - }); - }); - this.eventBus._on("annotationeditorparamschanged", evt => { - for (const [type, value] of evt.details) { - switch (type) { - case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_SIZE: - editorFreeTextFontSize.value = value; - break; - case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_COLOR: - editorFreeTextColor.value = value; - break; - case _pdfjsLib.AnnotationEditorParamsType.INK_COLOR: - editorInkColor.value = value; - break; - case _pdfjsLib.AnnotationEditorParamsType.INK_THICKNESS: - editorInkThickness.value = value; - break; - case _pdfjsLib.AnnotationEditorParamsType.INK_OPACITY: - editorInkOpacity.value = value; - break; - } - } - }); - } -} -exports.AnnotationEditorParams = AnnotationEditorParams; +/***/ 3557: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { -/***/ }), -/* 10 */ -/***/ ((__unused_webpack_module, exports) => { +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FindState: () => (/* binding */ FindState), +/* harmony export */ PDFFindController: () => (/* binding */ PDFFindController) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var _pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6839); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.OverlayManager = void 0; -class OverlayManager { - #overlays = new WeakMap(); - #active = null; - get active() { - return this.#active; - } - async register(dialog, canForceClose = false) { - if (typeof dialog !== "object") { - throw new Error("Not enough parameters."); - } else if (this.#overlays.has(dialog)) { - throw new Error("The overlay is already registered."); +const FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" +}; +const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); +let DIACRITICS_EXCEPTION_STR; +const DIACRITICS_REG_EXP = /\p{M}+/gu; +const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; +const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; +const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; +const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; +const SYLLABLES_LENGTHS = new Map(); +const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; +const NFKC_CHARS_TO_NORMALIZE = new Map(); +let noSyllablesRegExp = null; +let withSyllablesRegExp = null; +function normalize(text) { + const syllablePositions = []; + let m; + while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { + let { + index + } = m; + for (const char of m[0]) { + let len = SYLLABLES_LENGTHS.get(char); + if (!len) { + len = char.normalize("NFD").length; + SYLLABLES_LENGTHS.set(char, len); + } + syllablePositions.push([len, index++]); } - this.#overlays.set(dialog, { - canForceClose - }); - dialog.addEventListener("cancel", evt => { - this.#active = null; - }); } - async unregister(dialog) { - if (!this.#overlays.has(dialog)) { - throw new Error("The overlay does not exist."); - } else if (this.#active === dialog) { - throw new Error("The overlay cannot be removed while it is active."); + let normalizationRegex; + if (syllablePositions.length === 0 && noSyllablesRegExp) { + normalizationRegex = noSyllablesRegExp; + } else if (syllablePositions.length > 0 && withSyllablesRegExp) { + normalizationRegex = withSyllablesRegExp; + } else { + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + const toNormalizeWithNFKC = (0,_pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__.getNormalizeWithNFKC)(); + const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])"; + const HKDiacritics = "(?:\u3099|\u309A)"; + const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\n)|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(${CJK}\\n)|(\\n)`; + if (syllablePositions.length === 0) { + normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); + } else { + normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); } - this.#overlays.delete(dialog); } - async open(dialog) { - if (!this.#overlays.has(dialog)) { - throw new Error("The overlay does not exist."); - } else if (this.#active) { - if (this.#active === dialog) { - throw new Error("The overlay is already active."); - } else if (this.#overlays.get(dialog).canForceClose) { - await this.close(); - } else { - throw new Error("Another overlay is currently active."); + const rawDiacriticsPositions = []; + while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { + rawDiacriticsPositions.push([m[0].length, m.index]); + } + let normalized = text.normalize("NFD"); + const positions = [[0, 0]]; + let rawDiacriticsIndex = 0; + let syllableIndex = 0; + let shift = 0; + let shiftOrigin = 0; + let eol = 0; + let hasDiacritics = false; + normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, i) => { + i -= shiftOrigin; + if (p1) { + const replacement = CHARACTERS_TO_NORMALIZE[p1]; + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); } + shift -= jj - 1; + return replacement; } - this.#active = dialog; - dialog.showModal(); - } - async close(dialog = this.#active) { - if (!this.#overlays.has(dialog)) { - throw new Error("The overlay does not exist."); - } else if (!this.#active) { - throw new Error("The overlay is currently not active."); - } else if (this.#active !== dialog) { - throw new Error("Another overlay is currently active."); + if (p2) { + let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2); + if (!replacement) { + replacement = p2.normalize("NFKC"); + NFKC_CHARS_TO_NORMALIZE.set(p2, replacement); + } + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; } - dialog.close(); - this.#active = null; - } -} -exports.OverlayManager = OverlayManager; - -/***/ }), -/* 11 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PasswordPrompt = void 0; -var _pdfjsLib = __webpack_require__(5); -class PasswordPrompt { - #activeCapability = null; - #updateCallback = null; - #reason = null; - constructor(options, overlayManager, l10n, isViewerEmbedded = false) { - this.dialog = options.dialog; - this.label = options.label; - this.input = options.input; - this.submitButton = options.submitButton; - this.cancelButton = options.cancelButton; - this.overlayManager = overlayManager; - this.l10n = l10n; - this._isViewerEmbedded = isViewerEmbedded; - this.submitButton.addEventListener("click", this.#verify.bind(this)); - this.cancelButton.addEventListener("click", this.close.bind(this)); - this.input.addEventListener("keydown", e => { - if (e.keyCode === 13) { - this.#verify(); + if (p3) { + hasDiacritics = true; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + ++rawDiacriticsIndex; + } else { + positions.push([i - 1 - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + } + positions.push([i - shift + 1, shift]); + shiftOrigin += 1; + eol += 1; + return p3.charAt(0); + } + if (p4) { + const hasTrailingDashEOL = p4.endsWith("\n"); + const len = hasTrailingDashEOL ? p4.length - 2 : p4.length; + hasDiacritics = true; + let jj = len; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; + ++rawDiacriticsIndex; } - }); - this.overlayManager.register(this.dialog, true); - this.dialog.addEventListener("close", this.#cancel.bind(this)); - } - async open() { - if (this.#activeCapability) { - await this.#activeCapability.promise; + for (let j = 1; j <= jj; j++) { + positions.push([i - 1 - shift + j, shift - j]); + } + shift -= jj; + shiftOrigin += jj; + if (hasTrailingDashEOL) { + i += len - 1; + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p4.slice(0, len); + } + return p4; } - this.#activeCapability = (0, _pdfjsLib.createPromiseCapability)(); - try { - await this.overlayManager.open(this.dialog); - } catch (ex) { - this.#activeCapability = null; - throw ex; + if (p5) { + const len = p5.length - 2; + positions.push([i - shift + len, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p5.slice(0, -2); } - const passwordIncorrect = this.#reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD; - if (!this._isViewerEmbedded || passwordIncorrect) { - this.input.focus(); + if (p6) { + const len = p6.length - 1; + positions.push([i - shift + len, shift]); + shiftOrigin += 1; + eol += 1; + return p6.slice(0, -1); } - this.label.textContent = await this.l10n.get(`password_${passwordIncorrect ? "invalid" : "label"}`); - } - async close() { - if (this.overlayManager.active === this.dialog) { - this.overlayManager.close(this.dialog); + if (p7) { + positions.push([i - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + eol += 1; + return " "; } - } - #verify() { - const password = this.input.value; - if (password?.length > 0) { - this.#invokeCallback(password); + if (i + eol === syllablePositions[syllableIndex]?.[1]) { + const newCharLen = syllablePositions[syllableIndex][0] - 1; + ++syllableIndex; + for (let j = 1; j <= newCharLen; j++) { + positions.push([i - (shift - j), shift - j]); + } + shift -= newCharLen; + shiftOrigin += newCharLen; } + return p8; + }); + positions.push([normalized.length, shift]); + return [normalized, positions, hasDiacritics]; +} +function getOriginalIndex(diffs, pos, len) { + if (!diffs) { + return [pos, len]; } - #cancel() { - this.#invokeCallback(new Error("PasswordPrompt cancelled.")); - this.#activeCapability.resolve(); - } - #invokeCallback(password) { - if (!this.#updateCallback) { - return; - } - this.close(); - this.input.value = ""; - this.#updateCallback(password); - this.#updateCallback = null; + const start = pos; + const end = pos + len - 1; + let i = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(diffs, x => x[0] >= start); + if (diffs[i][0] > start) { + --i; } - async setUpdateCallback(updateCallback, reason) { - if (this.#activeCapability) { - await this.#activeCapability.promise; - } - this.#updateCallback = updateCallback; - this.#reason = reason; + let j = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(diffs, x => x[0] >= end, i); + if (diffs[j][0] > end) { + --j; } + const oldStart = start + diffs[i][1]; + const oldEnd = end + diffs[j][1]; + const oldLen = oldEnd + 1 - oldStart; + return [oldStart, oldLen]; } -exports.PasswordPrompt = PasswordPrompt; - -/***/ }), -/* 12 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFAttachmentViewer = void 0; -var _pdfjsLib = __webpack_require__(5); -var _base_tree_viewer = __webpack_require__(13); -var _event_utils = __webpack_require__(6); -class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { - constructor(options) { - super(options); - this.downloadManager = options.downloadManager; - this.eventBus._on("fileattachmentannotation", this.#appendAttachment.bind(this)); +class PDFFindController { + #state = null; + #updateMatchesCountOnProgress = true; + #visitedPagesCount = 0; + constructor({ + linkService, + eventBus, + updateMatchesCountOnProgress = true + }) { + this._linkService = linkService; + this._eventBus = eventBus; + this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress; + this.onIsPageVisible = null; + this.#reset(); + eventBus._on("find", this.#onFind.bind(this)); + eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); } - reset(keepRenderedCapability = false) { - super.reset(); - this._attachments = null; - if (!keepRenderedCapability) { - this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - } - this._pendingDispatchEvent = false; + get highlightMatches() { + return this._highlightMatches; } - async _dispatchEvent(attachmentsCount) { - this._renderedCapability.resolve(); - if (attachmentsCount === 0 && !this._pendingDispatchEvent) { - this._pendingDispatchEvent = true; - await (0, _event_utils.waitOnEventOrTimeout)({ - target: this.eventBus, - name: "annotationlayerrendered", - delay: 1000 - }); - if (!this._pendingDispatchEvent) { - return; - } - } - this._pendingDispatchEvent = false; - this.eventBus.dispatch("attachmentsloaded", { - source: this, - attachmentsCount - }); + get pageMatches() { + return this._pageMatches; } - _bindLink(element, { - content, - filename - }) { - element.onclick = () => { - this.downloadManager.openOrDownloadData(element, content, filename); - return false; - }; + get pageMatchesLength() { + return this._pageMatchesLength; } - render({ - attachments, - keepRenderedCapability = false - }) { - if (this._attachments) { - this.reset(keepRenderedCapability); + get selected() { + return this._selected; + } + get state() { + return this.#state; + } + setDocument(pdfDocument) { + if (this._pdfDocument) { + this.#reset(); } - this._attachments = attachments || null; - if (!attachments) { - this._dispatchEvent(0); + if (!pdfDocument) { return; } - const names = Object.keys(attachments).sort(function (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - const fragment = document.createDocumentFragment(); - let attachmentsCount = 0; - for (const name of names) { - const item = attachments[name]; - const content = item.content, - filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename); - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - this._bindLink(element, { - content, - filename - }); - element.textContent = this._normalizeTextContent(filename); - div.append(element); - fragment.append(div); - attachmentsCount++; - } - this._finishRendering(fragment, attachmentsCount); + this._pdfDocument = pdfDocument; + this._firstPageCapability.resolve(); } - #appendAttachment({ - filename, - content - }) { - const renderedPromise = this._renderedCapability.promise; - renderedPromise.then(() => { - if (renderedPromise !== this._renderedCapability.promise) { + #onFind(state) { + if (!state) { + return; + } + const pdfDocument = this._pdfDocument; + const { + type + } = state; + if (this.#state === null || this.#shouldDirtyMatch(state)) { + this._dirtyMatch = true; + } + this.#state = state; + if (type !== "highlightallchange") { + this.#updateUIState(FindState.PENDING); + } + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { return; } - const attachments = this._attachments || Object.create(null); - for (const name in attachments) { - if (filename === name) { - return; + this.#extractText(); + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (!type) { + this._findTimeout = setTimeout(() => { + this.#nextMatch(); + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this.#nextMatch(); + } else if (type === "again") { + this.#nextMatch(); + if (findbarClosed && this.#state.highlightAll) { + this.#updateAllPages(); + } + } else if (type === "highlightallchange") { + if (pendingTimeout) { + this.#nextMatch(); + } else { + this._highlightMatches = true; } + this.#updateAllPages(); + } else { + this.#nextMatch(); } - attachments[filename] = { - filename, - content - }; - this.render({ - attachments, - keepRenderedCapability: true - }); - }); - } -} -exports.PDFAttachmentViewer = PDFAttachmentViewer; - -/***/ }), -/* 13 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.BaseTreeViewer = void 0; -var _ui_utils = __webpack_require__(1); -const TREEITEM_OFFSET_TOP = -100; -const TREEITEM_SELECTED_CLASS = "selected"; -class BaseTreeViewer { - constructor(options) { - if (this.constructor === BaseTreeViewer) { - throw new Error("Cannot initialize BaseTreeViewer."); + }); + } + scrollMatchIntoView({ + element = null, + selectedLeft = 0, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; } - this.container = options.container; - this.eventBus = options.eventBus; - this.reset(); + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT + }; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.scrollIntoView)(element, spot, true); } - reset() { + #reset() { + this._highlightMatches = false; + this._scrollMatches = false; this._pdfDocument = null; - this._lastToggleIsShow = true; - this._currentTreeItem = null; - this.container.textContent = ""; - this.container.classList.remove("treeWithDeepNesting"); - } - _dispatchEvent(count) { - throw new Error("Not implemented: _dispatchEvent"); - } - _bindLink(element, params) { - throw new Error("Not implemented: _bindLink"); - } - _normalizeTextContent(str) { - return (0, _ui_utils.removeNullCharacters)(str, true) || "\u2013"; - } - _addToggleButton(div, hidden = false) { - const toggler = document.createElement("div"); - toggler.className = "treeItemToggler"; - if (hidden) { - toggler.classList.add("treeItemsHidden"); - } - toggler.onclick = evt => { - evt.stopPropagation(); - toggler.classList.toggle("treeItemsHidden"); - if (evt.shiftKey) { - const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); - this._toggleTreeItem(div, shouldShowAll); - } + this._pageMatches = []; + this._pageMatchesLength = []; + this.#visitedPagesCount = 0; + this.#state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 }; - div.prepend(toggler); + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._hasDiacritics = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.PromiseCapability(); } - _toggleTreeItem(root, show = false) { - this._lastToggleIsShow = show; - for (const toggler of root.querySelectorAll(".treeItemToggler")) { - toggler.classList.toggle("treeItemsHidden", !show); + get #query() { + const { + query + } = this.#state; + if (typeof query === "string") { + if (query !== this._rawQuery) { + this._rawQuery = query; + [this._normalizedQuery] = normalize(query); + } + return this._normalizedQuery; } + return (query || []).filter(q => !!q).map(q => normalize(q)[0]); } - _toggleAllTreeItems() { - this._toggleTreeItem(this.container, !this._lastToggleIsShow); - } - _finishRendering(fragment, count, hasAnyNesting = false) { - if (hasAnyNesting) { - this.container.classList.add("treeWithDeepNesting"); - this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + #shouldDirtyMatch(state) { + const newQuery = state.query, + prevQuery = this.#state.query; + const newType = typeof newQuery, + prevType = typeof prevQuery; + if (newType !== prevType) { + return true; } - this.container.append(fragment); - this._dispatchEvent(count); - } - render(params) { - throw new Error("Not implemented: render"); - } - _updateCurrentTreeItem(treeItem = null) { - if (this._currentTreeItem) { - this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); - this._currentTreeItem = null; + if (newType === "string") { + if (newQuery !== prevQuery) { + return true; + } + } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) { + return true; } - if (treeItem) { - treeItem.classList.add(TREEITEM_SELECTED_CLASS); - this._currentTreeItem = treeItem; + switch (state.type) { + case "again": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true); + case "highlightallchange": + return false; } + return true; } - _scrollToCurrentTreeItem(treeItem) { - if (!treeItem) { - return; + #isEntireWord(content, startIdx, length) { + let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); + if (match) { + const first = content.charCodeAt(startIdx); + const limit = match[1].charCodeAt(0); + if ((0,_pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__.getCharacterType)(first) === (0,_pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__.getCharacterType)(limit)) { + return false; + } } - let currentNode = treeItem.parentNode; - while (currentNode && currentNode !== this.container) { - if (currentNode.classList.contains("treeItem")) { - const toggler = currentNode.firstElementChild; - toggler?.classList.remove("treeItemsHidden"); + match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); + if (match) { + const last = content.charCodeAt(startIdx + length - 1); + const limit = match[1].charCodeAt(0); + if ((0,_pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__.getCharacterType)(last) === (0,_pdf_find_utils_js__WEBPACK_IMPORTED_MODULE_1__.getCharacterType)(limit)) { + return false; } - currentNode = currentNode.parentNode; } - this._updateCurrentTreeItem(treeItem); - this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); - } -} -exports.BaseTreeViewer = BaseTreeViewer; - -/***/ }), -/* 14 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFDocumentProperties = void 0; -var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(1); -const DEFAULT_FIELD_CONTENT = "-"; -const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; -const US_PAGE_NAMES = { - "8.5x11": "Letter", - "8.5x14": "Legal" -}; -const METRIC_PAGE_NAMES = { - "297x420": "A3", - "210x297": "A4" -}; -function getPageName(size, isPortrait, pageNames) { - const width = isPortrait ? size.width : size.height; - const height = isPortrait ? size.height : size.width; - return pageNames[`${width}x${height}`]; -} -class PDFDocumentProperties { - #fieldData = null; - constructor({ - dialog, - fields, - closeButton - }, overlayManager, eventBus, l10n, fileNameLookup) { - this.dialog = dialog; - this.fields = fields; - this.overlayManager = overlayManager; - this.l10n = l10n; - this._fileNameLookup = fileNameLookup; - this.#reset(); - closeButton.addEventListener("click", this.close.bind(this)); - this.overlayManager.register(this.dialog); - eventBus._on("pagechanging", evt => { - this._currentPageNumber = evt.pageNumber; - }); - eventBus._on("rotationchanging", evt => { - this._pagesRotation = evt.pagesRotation; - }); - this._isNonMetricLocale = true; - l10n.getLanguage().then(locale => { - this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); - }); + return true; } - async open() { - await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]); - const currentPageNumber = this._currentPageNumber; - const pagesRotation = this._pagesRotation; - if (this.#fieldData && currentPageNumber === this.#fieldData._currentPageNumber && pagesRotation === this.#fieldData._pagesRotation) { - this.#updateUI(); + #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) { + const matches = this._pageMatches[pageIndex] = []; + const matchesLength = this._pageMatchesLength[pageIndex] = []; + if (!query) { return; } - const { - info, - contentLength - } = await this.pdfDocument.getMetadata(); - const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { - return this.#parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); - }), this.#parseLinearization(info.IsLinearized)]); - this.#fieldData = Object.freeze({ - fileName, - fileSize, - title: info.Title, - author: info.Author, - subject: info.Subject, - keywords: info.Keywords, - creationDate, - modificationDate, - creator: info.Creator, - producer: info.Producer, - version: info.PDFFormatVersion, - pageCount: this.pdfDocument.numPages, - pageSize, - linearized: isLinearized, - _currentPageNumber: currentPageNumber, - _pagesRotation: pagesRotation - }); - this.#updateUI(); - const { - length - } = await this.pdfDocument.getDownloadInfo(); - if (contentLength === length) { - return; + const diffs = this._pageDiffs[pageIndex]; + let match; + while ((match = query.exec(pageContent)) !== null) { + if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { + continue; + } + const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); + if (matchLen) { + matches.push(matchPos); + matchesLength.push(matchLen); + } } - const data = Object.assign(Object.create(null), this.#fieldData); - data.fileSize = await this.#parseFileSize(length); - this.#fieldData = Object.freeze(data); - this.#updateUI(); - } - async close() { - this.overlayManager.close(this.dialog); } - setDocument(pdfDocument) { - if (this.pdfDocument) { - this.#reset(); - this.#updateUI(true); - } - if (!pdfDocument) { - return; + #convertToRegExpString(query, hasDiacritics) { + const { + matchDiacritics + } = this.#state; + let isUnicode = false; + query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { + if (p1) { + return `[ ]*\\${p1}[ ]*`; + } + if (p2) { + return `[ ]*${p2}[ ]*`; + } + if (p3) { + return "[ ]+"; + } + if (matchDiacritics) { + return p4 || p5; + } + if (p4) { + return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; + } + if (hasDiacritics) { + isUnicode = true; + return `${p5}\\p{M}*`; + } + return p5; + }); + const trailingSpaces = "[ ]*"; + if (query.endsWith(trailingSpaces)) { + query = query.slice(0, query.length - trailingSpaces.length); } - this.pdfDocument = pdfDocument; - this._dataAvailableCapability.resolve(); - } - #reset() { - this.pdfDocument = null; - this.#fieldData = null; - this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._currentPageNumber = 1; - this._pagesRotation = 0; - } - #updateUI(reset = false) { - if (reset || !this.#fieldData) { - for (const id in this.fields) { - this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + if (matchDiacritics) { + if (hasDiacritics) { + DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION); + isUnicode = true; + query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; } - return; } - if (this.overlayManager.active !== this.dialog) { + return [isUnicode, query]; + } + #calculateMatch(pageIndex) { + let query = this.#query; + if (query.length === 0) { return; } - for (const id in this.fields) { - const content = this.#fieldData[id]; - this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; - } - } - async #parseFileSize(fileSize = 0) { - const kb = fileSize / 1024, - mb = kb / 1024; - if (!kb) { - return undefined; + const { + caseSensitive, + entireWord + } = this.#state; + const pageContent = this._pageContents[pageIndex]; + const hasDiacritics = this._hasDiacritics[pageIndex]; + let isUnicode = false; + if (typeof query === "string") { + [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); + } else { + query = query.sort().reverse().map(q => { + const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); + isUnicode ||= isUnicodePart; + return `(${queryPart})`; + }).join("|"); } - return this.l10n.get(`document_properties_${mb >= 1 ? "mb" : "kb"}`, { - size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), - size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }); - } - async #parsePageSize(pageSizeInches, pagesRotation) { - if (!pageSizeInches) { - return undefined; + const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; + query = query ? new RegExp(query, flags) : null; + this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent); + if (this.#state.highlightAll) { + this.#updatePage(pageIndex); } - if (pagesRotation % 180 !== 0) { - pageSizeInches = { - width: pageSizeInches.height, - height: pageSizeInches.width - }; + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + this.#nextPageMatch(); } - const isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); - let sizeInches = { - width: Math.round(pageSizeInches.width * 100) / 100, - height: Math.round(pageSizeInches.height * 100) / 100 - }; - let sizeMillimeters = { - width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, - height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 - }; - let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { - const exactMillimeters = { - width: pageSizeInches.width * 25.4, - height: pageSizeInches.height * 25.4 - }; - const intMillimeters = { - width: Math.round(sizeMillimeters.width), - height: Math.round(sizeMillimeters.height) - }; - if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { - rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (rawName) { - sizeInches = { - width: Math.round(intMillimeters.width / 25.4 * 100) / 100, - height: Math.round(intMillimeters.height / 25.4 * 100) / 100 - }; - sizeMillimeters = intMillimeters; - } + const pageMatchesCount = this._pageMatches[pageIndex].length; + this._matchesCountTotal += pageMatchesCount; + if (this.#updateMatchesCountOnProgress) { + if (pageMatchesCount > 0) { + this.#updateUIResultsCount(); } + } else if (++this.#visitedPagesCount === this._linkService.pagesCount) { + this.#updateUIResultsCount(); } - const [{ - width, - height - }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`document_properties_page_size_unit_${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`document_properties_page_size_name_${rawName.toLowerCase()}`), this.l10n.get(`document_properties_page_size_orientation_${isPortrait ? "portrait" : "landscape"}`)]); - return this.l10n.get(`document_properties_page_size_dimension_${name ? "name_" : ""}string`, { - width: width.toLocaleString(), - height: height.toLocaleString(), - unit, - name, - orientation - }); } - async #parseDate(inputDate) { - const dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); - if (!dateObject) { - return undefined; + #extractText() { + if (this._extractTextPromises.length > 0) { + return; } - return this.l10n.get("document_properties_date_string", { - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - } - #parseLinearization(isLinearized) { - return this.l10n.get(`document_properties_linearized_${isLinearized ? "yes" : "no"}`); - } -} -exports.PDFDocumentProperties = PDFDocumentProperties; - -/***/ }), -/* 15 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFFindBar = void 0; -var _pdf_find_controller = __webpack_require__(16); -const MATCHES_COUNT_LIMIT = 1000; -class PDFFindBar { - constructor(options, eventBus, l10n) { - this.opened = false; - this.bar = options.bar; - this.toggleButton = options.toggleButton; - this.findField = options.findField; - this.highlightAll = options.highlightAllCheckbox; - this.caseSensitive = options.caseSensitiveCheckbox; - this.matchDiacritics = options.matchDiacriticsCheckbox; - this.entireWord = options.entireWordCheckbox; - this.findMsg = options.findMsg; - this.findResultsCount = options.findResultsCount; - this.findPreviousButton = options.findPreviousButton; - this.findNextButton = options.findNextButton; - this.eventBus = eventBus; - this.l10n = l10n; - this.toggleButton.addEventListener("click", () => { - this.toggle(); - }); - this.findField.addEventListener("input", () => { - this.dispatchEvent(""); - }); - this.bar.addEventListener("keydown", e => { - switch (e.keyCode) { - case 13: - if (e.target === this.findField) { - this.dispatchEvent("again", e.shiftKey); + let promise = Promise.resolve(); + const textOptions = { + disableNormalization: true + }; + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.PromiseCapability(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent(textOptions); + }).then(textContent => { + const strBuf = []; + for (const textItem of textContent.items) { + strBuf.push(textItem.str); + if (textItem.hasEOL) { + strBuf.push("\n"); + } } - break; - case 27: - this.close(); - break; - } - }); - this.findPreviousButton.addEventListener("click", () => { - this.dispatchEvent("again", true); - }); - this.findNextButton.addEventListener("click", () => { - this.dispatchEvent("again", false); - }); - this.highlightAll.addEventListener("click", () => { - this.dispatchEvent("highlightallchange"); - }); - this.caseSensitive.addEventListener("click", () => { - this.dispatchEvent("casesensitivitychange"); - }); - this.entireWord.addEventListener("click", () => { - this.dispatchEvent("entirewordchange"); - }); - this.matchDiacritics.addEventListener("click", () => { - this.dispatchEvent("diacriticmatchingchange"); - }); - this.eventBus._on("resize", this.#adjustWidth.bind(this)); - } - reset() { - this.updateUIState(); + [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + this._hasDiacritics[i] = false; + extractTextCapability.resolve(); + }); + }); + } } - dispatchEvent(type, findPrev = false) { - this.eventBus.dispatch("find", { + #updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + this._eventBus.dispatch("updatetextlayermatches", { source: this, - type, - query: this.findField.value, - phraseSearch: true, - caseSensitive: this.caseSensitive.checked, - entireWord: this.entireWord.checked, - highlightAll: this.highlightAll.checked, - findPrevious: findPrev, - matchDiacritics: this.matchDiacritics.checked + pageIndex: index }); } - updateUIState(state, previous, matchesCount) { - let findMsg = Promise.resolve(""); - let status = ""; - switch (state) { - case _pdf_find_controller.FindState.FOUND: - break; - case _pdf_find_controller.FindState.PENDING: - status = "pending"; - break; - case _pdf_find_controller.FindState.NOT_FOUND: - findMsg = this.l10n.get("find_not_found"); - status = "notFound"; - break; - case _pdf_find_controller.FindState.WRAPPED: - findMsg = this.l10n.get(`find_reached_${previous ? "top" : "bottom"}`); - break; - } - this.findField.setAttribute("data-status", status); - this.findField.setAttribute("aria-invalid", state === _pdf_find_controller.FindState.NOT_FOUND); - findMsg.then(msg => { - this.findMsg.textContent = msg; - this.#adjustWidth(); + #updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 }); - this.updateResultsCount(matchesCount); } - updateResultsCount({ - current = 0, - total = 0 - } = {}) { - const limit = MATCHES_COUNT_LIMIT; - let matchCountMsg = Promise.resolve(""); - if (total > 0) { - if (total > limit) { - let key = "find_match_count_limit"; - matchCountMsg = this.l10n.get(key, { - limit - }); - } else { - let key = "find_match_count"; - matchCountMsg = this.l10n.get(key, { - current, - total + #nextMatch() { + const previous = this.#state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; + this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this.#visitedPagesCount = 0; + this._matchesCountTotal = 0; + this.#updateAllPages(); + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; + } + this._pendingFindMatches.add(i); + this._extractTextPromises[i].then(() => { + this._pendingFindMatches.delete(i); + this.#calculateMatch(i); }); } } - matchCountMsg.then(msg => { - this.findResultsCount.textContent = msg; - this.#adjustWidth(); - }); - } - open() { - if (!this.opened) { - this.opened = true; - this.toggleButton.classList.add("toggled"); - this.toggleButton.setAttribute("aria-expanded", "true"); - this.bar.classList.remove("hidden"); - } - this.findField.select(); - this.findField.focus(); - this.#adjustWidth(); - } - close() { - if (!this.opened) { + const query = this.#query; + if (query.length === 0) { + this.#updateUIState(FindState.FOUND); return; } - this.opened = false; - this.toggleButton.classList.remove("toggled"); - this.toggleButton.setAttribute("aria-expanded", "false"); - this.bar.classList.add("hidden"); - this.eventBus.dispatch("findbarclose", { - source: this - }); - } - toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } - } - #adjustWidth() { - if (!this.opened) { + if (this._resumePageIdx) { return; } - this.bar.classList.remove("wrapContainers"); - const findbarHeight = this.bar.clientHeight; - const inputContainerHeight = this.bar.firstElementChild.clientHeight; - if (findbarHeight > inputContainerHeight) { - this.bar.classList.add("wrapContainers"); + const offset = this._offset; + this._pagesToSearch = numPages; + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + this.#updateMatch(true); + return; + } + this.#advanceOffsetPage(previous); } + this.#nextPageMatch(); } -} -exports.PDFFindBar = PDFFindBar; - -/***/ }), -/* 16 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFFindController = exports.FindState = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); -var _pdf_find_utils = __webpack_require__(17); -const FindState = { - FOUND: 0, - NOT_FOUND: 1, - WRAPPED: 2, - PENDING: 3 -}; -exports.FindState = FindState; -const FIND_TIMEOUT = 250; -const MATCH_SCROLL_OFFSET_TOP = -50; -const MATCH_SCROLL_OFFSET_LEFT = -400; -const CHARACTERS_TO_NORMALIZE = { - "\u2010": "-", - "\u2018": "'", - "\u2019": "'", - "\u201A": "'", - "\u201B": "'", - "\u201C": '"', - "\u201D": '"', - "\u201E": '"', - "\u201F": '"', - "\u00BC": "1/4", - "\u00BD": "1/2", - "\u00BE": "3/4" -}; -const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); -const DIACRITICS_EXCEPTION_STR = [...DIACRITICS_EXCEPTION.values()].map(x => String.fromCharCode(x)).join(""); -const DIACRITICS_REG_EXP = /\p{M}+/gu; -const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; -const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; -const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; -const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; -const SYLLABLES_LENGTHS = new Map(); -const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; -let noSyllablesRegExp = null; -let withSyllablesRegExp = null; -function normalize(text) { - const syllablePositions = []; - let m; - while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { - let { - index - } = m; - for (const char of m[0]) { - let len = SYLLABLES_LENGTHS.get(char); - if (!len) { - len = char.normalize("NFD").length; - SYLLABLES_LENGTHS.set(char, len); + #matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this.#state.findPrevious; + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + this.#updateMatch(true); + return true; + } + this.#advanceOffsetPage(previous); + if (offset.wrapped) { + offset.matchIdx = null; + if (this._pagesToSearch < 0) { + this.#updateMatch(false); + return true; } - syllablePositions.push([len, index++]); } + return false; } - let normalizationRegex; - if (syllablePositions.length === 0 && noSyllablesRegExp) { - normalizationRegex = noSyllablesRegExp; - } else if (syllablePositions.length > 0 && withSyllablesRegExp) { - normalizationRegex = withSyllablesRegExp; - } else { - const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); - const regexp = `([${replace}])|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(\\p{Ideographic}\\n)|(\\n)`; - if (syllablePositions.length === 0) { - normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); - } else { - normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); + #nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); } + let matches = null; + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this.#matchesReady(matches)); } - const rawDiacriticsPositions = []; - while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { - rawDiacriticsPositions.push([m[0].length, m.index]); + #advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } } - let normalized = text.normalize("NFD"); - const positions = [[0, 0]]; - let rawDiacriticsIndex = 0; - let syllableIndex = 0; - let shift = 0; - let shiftOrigin = 0; - let eol = 0; - let hasDiacritics = false; - normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, i) => { - i -= shiftOrigin; - if (p1) { - const replacement = CHARACTERS_TO_NORMALIZE[match]; - const jj = replacement.length; - for (let j = 1; j < jj; j++) { - positions.push([i - shift + j, shift - j]); + #updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this.#updatePage(previousPage); } - shift -= jj - 1; - return replacement; } - if (p2) { - const hasTrailingDashEOL = p2.endsWith("\n"); - const len = hasTrailingDashEOL ? p2.length - 2 : p2.length; - hasDiacritics = true; - let jj = len; - if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { - jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; - ++rawDiacriticsIndex; + this.#updateUIState(state, this.#state.findPrevious); + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + this.#updatePage(this._selected.pageIdx); + } + } + #onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; } - for (let j = 1; j <= jj; j++) { - positions.push([i - 1 - shift + j, shift - j]); + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - shift -= jj; - shiftOrigin += jj; - if (hasTrailingDashEOL) { - i += len - 1; - positions.push([i - shift + 1, 1 + shift]); - shift += 1; - shiftOrigin += 1; - eol += 1; - return p2.slice(0, len); + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; } - return p2; - } - if (p3) { - positions.push([i - shift + 1, 1 + shift]); - shift += 1; - shiftOrigin += 1; - eol += 1; - return p3.charAt(0); + this.#updateUIState(FindState.FOUND); + this._highlightMatches = false; + this.#updateAllPages(); + }); + } + #requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i]?.length || 0; + } + current += matchIdx + 1; } - if (p4) { - positions.push([i - shift + 1, shift]); - shiftOrigin += 1; - eol += 1; - return p4.charAt(0); + if (current < 1 || current > total) { + current = total = 0; } - if (p5) { - positions.push([i - shift + 1, shift - 1]); - shift -= 1; - shiftOrigin += 1; - eol += 1; - return " "; + return { + current, + total + }; + } + #updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this.#requestMatchesCount() + }); + } + #updateUIState(state, previous = false) { + if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) { + return; } - if (i + eol === syllablePositions[syllableIndex]?.[1]) { - const newCharLen = syllablePositions[syllableIndex][0] - 1; - ++syllableIndex; - for (let j = 1; j <= newCharLen; j++) { - positions.push([i - (shift - j), shift - j]); + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this.#requestMatchesCount(), + rawQuery: this.#state?.query ?? null + }); + } +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 6839: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getCharacterType: () => (/* binding */ getCharacterType), +/* harmony export */ getNormalizeWithNFKC: () => (/* binding */ getNormalizeWithNFKC) +/* harmony export */ }); +/* unused harmony export CharacterType */ +const CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +function isAlphabeticalScript(charCode) { + return charCode < 0x2e80; +} +function isAscii(charCode) { + return (charCode & 0xff80) === 0; +} +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; +} +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; +} +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; +} +function isKatakana(charCode) { + return charCode >= 0x30a0 && charCode <= 0x30ff; +} +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309f; +} +function isHalfwidthKatakana(charCode) { + return charCode >= 0xff60 && charCode <= 0xff9f; +} +function isThai(charCode) { + return (charCode & 0xff80) === 0x0e00; +} +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { + return CharacterType.ALPHA_LETTER; } - shift -= newCharLen; - shiftOrigin += newCharLen; + return CharacterType.PUNCT; + } else if (isThai(charCode)) { + return CharacterType.THAI_LETTER; + } else if (charCode === 0xa0) { + return CharacterType.SPACE; } - return p6; - }); - positions.push([normalized.length, shift]); - return [normalized, positions, hasDiacritics]; -} -function getOriginalIndex(diffs, pos, len) { - if (!diffs) { - return [pos, len]; - } - const start = pos; - const end = pos + len; - let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start); - if (diffs[i][0] > start) { - --i; + return CharacterType.ALPHA_LETTER; } - let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i); - if (diffs[j][0] > end) { - --j; + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; } - return [start + diffs[i][1], len + diffs[j][1] - diffs[i][1]]; + return CharacterType.ALPHA_LETTER; } -class PDFFindController { +let NormalizeWithNFKC; +function getNormalizeWithNFKC() { + NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ff-stﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ!-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ¢-₩`; + return NormalizeWithNFKC; +} + + +/***/ }), + +/***/ 6418: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFHistory: () => (/* binding */ PDFHistory) +/* harmony export */ }); +/* unused harmony exports isDestArraysEqual, isDestHashesEqual */ +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6554); + + +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; +function getCurrentHash() { + return document.location.hash; +} +class PDFHistory { constructor({ linkService, eventBus }) { - this._linkService = linkService; - this._eventBus = eventBus; - this.#reset(); - eventBus._on("find", this.#onFind.bind(this)); - eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); - } - get highlightMatches() { - return this._highlightMatches; - } - get pageMatches() { - return this._pageMatches; - } - get pageMatchesLength() { - return this._pageMatchesLength; + this.linkService = linkService; + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); + }); } - get selected() { - return this._selected; + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + if (this._initialized) { + this.reset(); + } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; + this._bindEvents(); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); + return; + } + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } } - get state() { - return this._state; + reset() { + if (this._initialized) { + this._pageHide(); + this._initialized = false; + this._unbindEvents(); + } + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._initialBookmark = null; + this._initialRotation = null; } - setDocument(pdfDocument) { - if (this._pdfDocument) { - this.#reset(); + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; } - if (!pdfDocument) { + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this._isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + } + const hash = namedDest || JSON.stringify(explicitDest); + if (!hash) { + return; + } + let forceReplace = false; + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { + return; + } + forceReplace = true; + } + if (this._popStateInProgress && !forceReplace) { return; } - this._pdfDocument = pdfDocument; - this._firstPageCapability.resolve(); + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } } - #onFind(state) { - if (!state) { + pushPage(pageNumber) { + if (!this._initialized) { return; } - const pdfDocument = this._pdfDocument; - const { - type - } = state; - if (this._state === null || this.#shouldDirtyMatch(state)) { - this._dirtyMatch = true; + if (!this._isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; } - this._state = state; - if (type !== "highlightallchange") { - this.#updateUIState(FindState.PENDING); + if (this._destination?.page === pageNumber) { + return; } - this._firstPageCapability.promise.then(() => { - if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { - return; - } - this.#extractText(); - const findbarClosed = !this._highlightMatches; - const pendingTimeout = !!this._findTimeout; - if (this._findTimeout) { - clearTimeout(this._findTimeout); - this._findTimeout = null; - } - if (!type) { - this._findTimeout = setTimeout(() => { - this.#nextMatch(); - this._findTimeout = null; - }, FIND_TIMEOUT); - } else if (this._dirtyMatch) { - this.#nextMatch(); - } else if (type === "again") { - this.#nextMatch(); - if (findbarClosed && this._state.highlightAll) { - this.#updateAllPages(); - } - } else if (type === "highlightallchange") { - if (pendingTimeout) { - this.#nextMatch(); - } else { - this._highlightMatches = true; - } - this.#updateAllPages(); - } else { - this.#nextMatch(); - } + if (this._popStateInProgress) { + return; + } + this._pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation }); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } } - scrollMatchIntoView({ - element = null, - selectedLeft = 0, - pageIndex = -1, - matchIndex = -1 - }) { - if (!this._scrollMatches || !element) { - return; - } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { - return; - } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { return; } - this._scrollMatches = false; - const spot = { - top: MATCH_SCROLL_OFFSET_TOP, - left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT - }; - (0, _ui_utils.scrollIntoView)(element, spot, true); - } - #reset() { - this._highlightMatches = false; - this._scrollMatches = false; - this._pdfDocument = null; - this._pageMatches = []; - this._pageMatchesLength = []; - this._state = null; - this._selected = { - pageIdx: -1, - matchIdx: -1 - }; - this._offset = { - pageIdx: null, - matchIdx: null, - wrapped: false - }; - this._extractTextPromises = []; - this._pageContents = []; - this._pageDiffs = []; - this._hasDiacritics = []; - this._matchesCountTotal = 0; - this._pagesToSearch = null; - this._pendingFindMatches = new Set(); - this._resumePageIdx = null; - this._dirtyMatch = false; - clearTimeout(this._findTimeout); - this._findTimeout = null; - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._tryPushCurrentPosition(); } - get #query() { - if (this._state.query !== this._rawQuery) { - this._rawQuery = this._state.query; - [this._normalizedQuery] = normalize(this._state.query); + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); } - return this._normalizedQuery; } - #shouldDirtyMatch(state) { - if (state.query !== this._state.query) { - return true; + forward() { + if (!this._initialized || this._popStateInProgress) { + return; } - switch (state.type) { - case "again": - const pageNumber = this._selected.pageIdx + 1; - const linkService = this._linkService; - if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { - return true; - } - return false; - case "highlightallchange": - return false; + const state = window.history.state; + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); } - return true; } - #isEntireWord(content, startIdx, length) { - let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); - if (match) { - const first = content.charCodeAt(startIdx); - const limit = match[1].charCodeAt(0); - if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { - return false; + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + _pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + this._updateInternalState(destination, newState.uid); + let newUrl; + if (this._updateUrl && destination?.hash) { + const baseUrl = document.location.href.split("#")[0]; + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; } } - match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); - if (match) { - const last = content.charCodeAt(startIdx + length - 1); - const limit = match[1].charCodeAt(0); - if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { - return false; - } + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); } - return true; } - #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) { - const matches = [], - matchesLength = []; - const diffs = this._pageDiffs[pageIndex]; - let match; - while ((match = query.exec(pageContent)) !== null) { - if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { - continue; - } - const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); - if (matchLen) { - matches.push(matchPos); - matchesLength.push(matchLen); + _tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + let position = this._position; + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + if (!this._destination) { + this._pushOrReplaceState(position); + return; + } + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + return; + } + if (this._destination.hash === position.hash) { + return; + } + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + let forceReplace = false; + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { + return; } + forceReplace = true; } - this._pageMatches[pageIndex] = matches; - this._pageMatchesLength[pageIndex] = matchesLength; + this._pushOrReplaceState(position, forceReplace); } - #convertToRegExpString(query, hasDiacritics) { - const { - matchDiacritics - } = this._state; - let isUnicode = false; - query = query.replace(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { - if (p1) { - return `[ ]*\\${p1}[ ]*`; - } - if (p2) { - return `[ ]*${p2}[ ]*`; - } - if (p3) { - return "[ ]+"; - } - if (matchDiacritics) { - return p4 || p5; - } - if (p4) { - return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; - } - if (hasDiacritics) { - isUnicode = true; - return `${p5}\\p{M}*`; - } - return p5; - }); - const trailingSpaces = "[ ]*"; - if (query.endsWith(trailingSpaces)) { - query = query.slice(0, query.length - trailingSpaces.length); + _isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + _isValidState(state, checkReload = false) { + if (!state) { + return false; } - if (matchDiacritics) { - if (hasDiacritics) { - isUnicode = true; - query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; + } + const [perfEntry] = performance.getEntriesByType("navigation"); + if (perfEntry?.type !== "reload") { + return false; + } + } else { + return false; } } - return [isUnicode, query]; + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + return true; } - #calculateMatch(pageIndex) { - let query = this.#query; - if (query.length === 0) { - return; + _updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; } - const { - caseSensitive, - entireWord, - phraseSearch - } = this._state; - const pageContent = this._pageContents[pageIndex]; - const hasDiacritics = this._hasDiacritics[pageIndex]; - let isUnicode = false; - if (phraseSearch) { - [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); - } else { - const match = query.match(/\S+/g); - if (match) { - query = match.sort().reverse().map(q => { - const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); - isUnicode ||= isUnicodePart; - return `(${queryPart})`; - }).join("|"); - } + if (removeTemporary && destination?.temporary) { + delete destination.temporary; } - const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; - query = new RegExp(query, flags); - this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent); - if (this._state.highlightAll) { - this.#updatePage(pageIndex); + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + _parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); + const nameddest = params.get("nameddest") || ""; + let page = params.get("page") | 0; + if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; } - if (this._resumePageIdx === pageIndex) { - this._resumePageIdx = null; - this.#nextPageMatch(); + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + _updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; } - const pageMatchesCount = this._pageMatches[pageIndex].length; - if (pageMatchesCount > 0) { - this._matchesCountTotal += pageMatchesCount; - this.#updateUIResultsCount(); + this._position = { + hash: location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + if (this._popStateInProgress) { + return; + } + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); } } - #extractText() { - if (this._extractTextPromises.length > 0) { + _popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + if (!state) { + this._uid++; + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); return; } - let promise = Promise.resolve(); - for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { - const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._extractTextPromises[i] = extractTextCapability.promise; - promise = promise.then(() => { - return this._pdfDocument.getPage(i + 1).then(pdfPage => { - return pdfPage.getTextContent(); - }).then(textContent => { - const strBuf = []; - for (const textItem of textContent.items) { - strBuf.push(textItem.str); - if (textItem.hasEOL) { - strBuf.push("\n"); - } - } - [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); - extractTextCapability.resolve(); - }, reason => { - console.error(`Unable to get text content for page ${i + 1}`, reason); - this._pageContents[i] = ""; - this._pageDiffs[i] = null; - this._hasDiacritics[i] = false; - extractTextCapability.resolve(); - }); + if (!this._isValidState(state)) { + return; + } + this._popStateInProgress = true; + if (hashChanged) { + this._blockHashChange++; + (0,_event_utils_js__WEBPACK_IMPORTED_MODULE_1__.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; }); } - } - #updatePage(index) { - if (this._scrollMatches && this._selected.pageIdx === index) { - this._linkService.page = index + 1; + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; } - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: index - }); - } - #updateAllPages() { - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: -1 + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + Promise.resolve().then(() => { + this._popStateInProgress = false; }); } - #nextMatch() { - const previous = this._state.findPrevious; - const currentPageIndex = this._linkService.page - 1; - const numPages = this._linkService.pagesCount; - this._highlightMatches = true; - if (this._dirtyMatch) { - this._dirtyMatch = false; - this._selected.pageIdx = this._selected.matchIdx = -1; - this._offset.pageIdx = currentPageIndex; - this._offset.matchIdx = null; - this._offset.wrapped = false; - this._resumePageIdx = null; - this._pageMatches.length = 0; - this._pageMatchesLength.length = 0; - this._matchesCountTotal = 0; - this.#updateAllPages(); - for (let i = 0; i < numPages; i++) { - if (this._pendingFindMatches.has(i)) { - continue; - } - this._pendingFindMatches.add(i); - this._extractTextPromises[i].then(() => { - this._pendingFindMatches.delete(i); - this.#calculateMatch(i); - }); - } + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); } - if (this.#query === "") { - this.#updateUIState(FindState.FOUND); + } + _bindEvents() { + if (this._boundEvents) { return; } - if (this._resumePageIdx) { + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + _unbindEvents() { + if (!this._boundEvents) { return; } - const offset = this._offset; - this._pagesToSearch = numPages; - if (offset.matchIdx !== null) { - const numPageMatches = this._pageMatches[offset.pageIdx].length; - if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { - offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; - this.#updateMatch(true); - return; - } - this.#advanceOffsetPage(previous); - } - this.#nextPageMatch(); + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; } - #matchesReady(matches) { - const offset = this._offset; - const numMatches = matches.length; - const previous = this._state.findPrevious; - if (numMatches) { - offset.matchIdx = previous ? numMatches - 1 : 0; - this.#updateMatch(true); - return true; - } - this.#advanceOffsetPage(previous); - if (offset.wrapped) { - offset.matchIdx = null; - if (this._pagesToSearch < 0) { - this.#updateMatch(false); - return true; - } - } +} +function isDestHashesEqual(destHash, pushHash) { + if (typeof destHash !== "string" || typeof pushHash !== "string") { return false; } - #nextPageMatch() { - if (this._resumePageIdx !== null) { - console.error("There can only be one pending page."); - } - let matches = null; - do { - const pageIdx = this._offset.pageIdx; - matches = this._pageMatches[pageIdx]; - if (!matches) { - this._resumePageIdx = pageIdx; - break; - } - } while (!this.#matchesReady(matches)); + if (destHash === pushHash) { + return true; } - #advanceOffsetPage(previous) { - const offset = this._offset; - const numPages = this._linkService.pagesCount; - offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; - offset.matchIdx = null; - this._pagesToSearch--; - if (offset.pageIdx >= numPages || offset.pageIdx < 0) { - offset.pageIdx = previous ? numPages - 1 : 0; - offset.wrapped = true; - } + const nameddest = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(destHash).get("nameddest"); + if (nameddest === pushHash) { + return true; } - #updateMatch(found = false) { - let state = FindState.NOT_FOUND; - const wrapped = this._offset.wrapped; - this._offset.wrapped = false; - if (found) { - const previousPage = this._selected.pageIdx; - this._selected.pageIdx = this._offset.pageIdx; - this._selected.matchIdx = this._offset.matchIdx; - state = wrapped ? FindState.WRAPPED : FindState.FOUND; - if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { - this.#updatePage(previousPage); - } + return false; +} +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (typeof first !== typeof second) { + return false; } - this.#updateUIState(state, this._state.findPrevious); - if (this._selected.pageIdx !== -1) { - this._scrollMatches = true; - this.#updatePage(this._selected.pageIdx); + if (Array.isArray(first) || Array.isArray(second)) { + return false; } - } - #onFindBarClose(evt) { - const pdfDocument = this._pdfDocument; - this._firstPageCapability.promise.then(() => { - if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { - return; - } - if (this._findTimeout) { - clearTimeout(this._findTimeout); - this._findTimeout = null; - } - if (this._resumePageIdx) { - this._resumePageIdx = null; - this._dirtyMatch = true; + if (first !== null && typeof first === "object" && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; } - this.#updateUIState(FindState.FOUND); - this._highlightMatches = false; - this.#updateAllPages(); - }); - } - #requestMatchesCount() { - const { - pageIdx, - matchIdx - } = this._selected; - let current = 0, - total = this._matchesCountTotal; - if (matchIdx !== -1) { - for (let i = 0; i < pageIdx; i++) { - current += this._pageMatches[i]?.length || 0; + for (const key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } } - current += matchIdx + 1; - } - if (current < 1 || current > total) { - current = total = 0; + return true; } - return { - current, - total - }; + return first === second || Number.isNaN(first) && Number.isNaN(second); } - #updateUIResultsCount() { - this._eventBus.dispatch("updatefindmatchescount", { - source: this, - matchesCount: this.#requestMatchesCount() - }); + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; } - #updateUIState(state, previous = false) { - this._eventBus.dispatch("updatefindcontrolstate", { - source: this, - state, - previous, - matchesCount: this.#requestMatchesCount(), - rawQuery: this._state?.query ?? null - }); + if (firstDest.length !== secondDest.length) { + return false; + } + for (let i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } } + return true; } -exports.PDFFindController = PDFFindController; + /***/ }), -/* 17 */ -/***/ ((__unused_webpack_module, exports) => { +/***/ 3706: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFLayerViewer: () => (/* binding */ PDFLayerViewer) +/* harmony export */ }); +/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9415); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.CharacterType = void 0; -exports.getCharacterType = getCharacterType; -const CharacterType = { - SPACE: 0, - ALPHA_LETTER: 1, - PUNCT: 2, - HAN_LETTER: 3, - KATAKANA_LETTER: 4, - HIRAGANA_LETTER: 5, - HALFWIDTH_KATAKANA_LETTER: 6, - THAI_LETTER: 7 -}; -exports.CharacterType = CharacterType; -function isAlphabeticalScript(charCode) { - return charCode < 0x2e80; -} -function isAscii(charCode) { - return (charCode & 0xff80) === 0; -} -function isAsciiAlpha(charCode) { - return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; -} -function isAsciiDigit(charCode) { - return charCode >= 0x30 && charCode <= 0x39; -} -function isAsciiSpace(charCode) { - return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; -} -function isHan(charCode) { - return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; -} -function isKatakana(charCode) { - return charCode >= 0x30a0 && charCode <= 0x30ff; -} -function isHiragana(charCode) { - return charCode >= 0x3040 && charCode <= 0x309f; -} -function isHalfwidthKatakana(charCode) { - return charCode >= 0xff60 && charCode <= 0xff9f; -} -function isThai(charCode) { - return (charCode & 0xff80) === 0x0e00; -} -function getCharacterType(charCode) { - if (isAlphabeticalScript(charCode)) { - if (isAscii(charCode)) { - if (isAsciiSpace(charCode)) { - return CharacterType.SPACE; - } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { - return CharacterType.ALPHA_LETTER; +class PDFLayerViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__.BaseTreeViewer { + constructor(options) { + super(options); + this.eventBus._on("optionalcontentconfigchanged", evt => { + this.#updateLayers(evt.promise); + }); + this.eventBus._on("resetlayers", () => { + this.#updateLayers(); + }); + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + reset() { + super.reset(); + this._optionalContentConfig = null; + this._optionalContentHash = null; + } + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + this._optionalContentHash = this._optionalContentConfig.getHash(); + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + async _setNestedName(element, { + name = null + }) { + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + element.textContent = await this._l10n.get("pdfjs-additional-layers"); + element.style.fontStyle = "italic"; + } + _addToggleButton(div, { + name = null + }) { + super._addToggleButton(div, name === null); + } + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + super._toggleAllTreeItems(); + } + render({ + optionalContentConfig, + pdfDocument + }) { + if (this._optionalContentConfig) { + this.reset(); + } + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig?.getOrder(); + if (!groups) { + this._dispatchEvent(0); + return; + } + this._optionalContentHash = optionalContentConfig.getHash(); + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.append(element); + if (typeof groupId === "object") { + hasAnyNesting = true; + this._addToggleButton(div, groupId); + this._setNestedName(element, groupId); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + this._bindLink(element, { + groupId, + input + }); + input.type = "checkbox"; + input.checked = group.visible; + const label = document.createElement("label"); + label.textContent = this._normalizeTextContent(group.name); + label.append(input); + element.append(label); + layersCount++; + } + levelData.parent.append(div); } - return CharacterType.PUNCT; - } else if (isThai(charCode)) { - return CharacterType.THAI_LETTER; - } else if (charCode === 0xa0) { - return CharacterType.SPACE; } - return CharacterType.ALPHA_LETTER; + this._finishRendering(fragment, layersCount, hasAnyNesting); } - if (isHan(charCode)) { - return CharacterType.HAN_LETTER; - } else if (isKatakana(charCode)) { - return CharacterType.KATAKANA_LETTER; - } else if (isHiragana(charCode)) { - return CharacterType.HIRAGANA_LETTER; - } else if (isHalfwidthKatakana(charCode)) { - return CharacterType.HALFWIDTH_KATAKANA_LETTER; + async #updateLayers(promise = null) { + if (!this._optionalContentConfig) { + return; + } + const pdfDocument = this._pdfDocument; + const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig()); + if (pdfDocument !== this._pdfDocument) { + return; + } + if (promise) { + if (optionalContentConfig.getHash() === this._optionalContentHash) { + return; + } + } else { + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + } + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); } - return CharacterType.ALPHA_LETTER; } + /***/ }), -/* 18 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 3234: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LinkTarget: () => (/* binding */ LinkTarget), +/* harmony export */ PDFLinkService: () => (/* binding */ PDFLinkService), +/* harmony export */ SimpleLinkService: () => (/* binding */ SimpleLinkService) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFHistory = void 0; -exports.isDestArraysEqual = isDestArraysEqual; -exports.isDestHashesEqual = isDestHashesEqual; -var _ui_utils = __webpack_require__(1); -var _event_utils = __webpack_require__(6); -const HASH_CHANGE_TIMEOUT = 1000; -const POSITION_UPDATED_THRESHOLD = 50; -const UPDATE_VIEWAREA_TIMEOUT = 1000; -function getCurrentHash() { - return document.location.hash; +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + if (!url || typeof url !== "string") { + throw new Error('A valid "url" parameter must provided.'); + } + if (enabled) { + link.href = link.title = url; + } else { + link.href = ""; + link.title = `Disabled: ${url}`; + link.onclick = () => { + return false; + }; + } + let targetStr = ""; + switch (target) { + case LinkTarget.NONE: + break; + case LinkTarget.SELF: + targetStr = "_self"; + break; + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; } -class PDFHistory { +class PDFLinkService { + #pagesRefCache = new Map(); constructor({ - linkService, - eventBus - }) { - this.linkService = linkService; + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = {}) { this.eventBus = eventBus; - this._initialized = false; - this._fingerprint = ""; - this.reset(); - this._boundEvents = null; - this.eventBus._on("pagesinit", () => { - this._isPagesLoaded = false; - this.eventBus._on("pagesloaded", evt => { - this._isPagesLoaded = !!evt.pagesCount; - }, { - once: true + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = ignoreDestinationZoom; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + } + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this.#pagesRefCache.clear(); + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + get page() { + return this.pdfViewer.currentPageNumber; + } + set page(value) { + this.pdfViewer.currentPageNumber = value; + } + get rotation() { + return this.pdfViewer.pagesRotation; + } + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } + get isInPresentationMode() { + return this.pdfViewer.isInPresentationMode; + } + #goToDestinationHelper(rawDest, namedDest = null, explicitDest) { + const destRef = explicitDest[0]; + let pageNumber; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this._cachedPageNumber(destRef); + if (!pageNumber) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + this.#goToDestinationHelper(rawDest, namedDest, explicitDest); + }).catch(() => { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); + }); + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); + return; + } + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService.#goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber }); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom }); } - initialize({ - fingerprint, - resetHistory = false, - updateUrl = false - }) { - if (!fingerprint || typeof fingerprint !== "string") { - console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + async goToDestination(dest) { + if (!this.pdfDocument) { return; } - if (this._initialized) { - this.reset(); + let namedDest, explicitDest; + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; } - const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; - this._fingerprint = fingerprint; - this._updateUrl = updateUrl === true; - this._initialized = true; - this._bindEvents(); - const state = window.history.state; - this._popStateInProgress = false; - this._blockHashChange = 0; - this._currentHash = getCurrentHash(); - this._numPositionUpdates = 0; - this._uid = this._maxUid = 0; - this._destination = null; - this._position = null; - if (!this._isValidState(state, true) || resetHistory) { - const { - hash, - page, - rotation - } = this._parseCurrentHash(true); - if (!hash || reInitialized || resetHistory) { - this._pushOrReplaceState(null, true); - return; - } - this._pushOrReplaceState({ - hash, - page, - rotation - }, true); + if (!Array.isArray(explicitDest)) { + console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); + return; + } + this.#goToDestinationHelper(dest, namedDest, explicitDest); + } + goToPage(val) { + if (!this.pdfDocument) { + return; + } + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); return; } - const destination = state.destination; - this._updateInternalState(destination, state.uid, true); - if (destination.rotation !== undefined) { - this._initialRotation = destination.rotation; - } - if (destination.dest) { - this._initialBookmark = JSON.stringify(destination.dest); - this._destination.page = null; - } else if (destination.hash) { - this._initialBookmark = destination.hash; - } else if (destination.page) { - this._initialBookmark = `page=${destination.page}`; + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); } + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); } - reset() { - if (this._initialized) { - this._pageHide(); - this._initialized = false; - this._unbindEvents(); - } - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget, + rel: this.externalLinkRel, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { + return this.getAnchorUrl("#" + escape(dest)); + } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + if (str.length > 0) { + return this.getAnchorUrl("#" + escape(str)); + } } - this._initialBookmark = null; - this._initialRotation = null; + return this.getAnchorUrl(""); } - push({ - namedDest = null, - explicitDest, - pageNumber - }) { - if (!this._initialized) { + getAnchorUrl(anchor) { + return this.baseUrl ? this.baseUrl + anchor : anchor; + } + setHash(hash) { + if (!this.pdfDocument) { return; } - if (namedDest && typeof namedDest !== "string") { - console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); - return; - } else if (!Array.isArray(explicitDest)) { - console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + let pageNumber, dest; + if (hash.includes("=")) { + const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); + if (params.has("search")) { + const query = params.get("search").replaceAll('"', ""), + phrase = params.get("phrase") === "true"; + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: phrase ? query : query.match(/\S+/g) + }); + } + if (params.has("page")) { + pageNumber = params.get("page") | 0 || 1; + } + if (params.has("zoom")) { + const zoomArgs = params.get("zoom").split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else if (zoomArg === "Fit" || zoomArg === "FitB") { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); + } + } + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + if (params.has("pagemode")) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.get("pagemode") + }); + } + if (params.has("nameddest")) { + this.goToDestination(params.get("nameddest")); + } return; - } else if (!this._isValidPage(pageNumber)) { - if (pageNumber !== null || this._destination) { - console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); - return; + } + dest = unescape(hash); + try { + dest = JSON.parse(dest); + if (!Array.isArray(dest)) { + dest = dest.toString(); } + } catch {} + if (typeof dest === "string" || PDFLinkService.#isValidExplicitDestination(dest)) { + this.goToDestination(dest); + return; } - const hash = namedDest || JSON.stringify(explicitDest); - if (!hash) { + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + } + executeNamedAction(action) { + switch (action) { + case "GoBack": + this.pdfHistory?.back(); + break; + case "GoForward": + this.pdfHistory?.forward(); + break; + case "NextPage": + this.pdfViewer.nextPage(); + break; + case "PrevPage": + this.pdfViewer.previousPage(); + break; + case "LastPage": + this.page = this.pagesCount; + break; + case "FirstPage": + this.page = 1; + break; + default: + break; + } + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + async executeSetOCGState(action) { + const pdfDocument = this.pdfDocument; + const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; + if (pdfDocument !== this.pdfDocument) { return; } - let forceReplace = false; - if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { - if (this._destination.page) { - return; + let operator; + for (const elem of action.state) { + switch (elem) { + case "ON": + case "OFF": + case "Toggle": + operator = elem; + continue; + } + switch (operator) { + case "ON": + optionalContentConfig.setVisibility(elem, true); + break; + case "OFF": + optionalContentConfig.setVisibility(elem, false); + break; + case "Toggle": + const group = optionalContentConfig.getGroup(elem); + if (group) { + optionalContentConfig.setVisibility(elem, !group.visible); + } + break; } - forceReplace = true; } - if (this._popStateInProgress && !forceReplace) { + this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + } + cachePageRef(pageNum, pageRef) { + if (!pageRef) { return; } - this._pushOrReplaceState({ - dest: explicitDest, - hash, - page: pageNumber, - rotation: this.linkService.rotation - }, forceReplace); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this.#pagesRefCache.set(refStr, pageNum); + } + _cachedPageNumber(pageRef) { + if (!pageRef) { + return null; } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this.#pagesRefCache.get(refStr) || null; } - pushPage(pageNumber) { - if (!this._initialized) { - return; + static #isValidExplicitDestination(dest) { + if (!Array.isArray(dest)) { + return false; } - if (!this._isValidPage(pageNumber)) { - console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); - return; + const destLength = dest.length; + if (destLength < 2) { + return false; } - if (this._destination?.page === pageNumber) { - return; + const page = dest[0]; + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + return false; } - if (this._popStateInProgress) { - return; + const zoom = dest[1]; + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { + return false; } - this._pushOrReplaceState({ - dest: null, - hash: `page=${pageNumber}`, - page: pageNumber, - rotation: this.linkService.rotation - }); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (destLength !== 5) { + return false; + } + break; + case "Fit": + case "FitB": + return destLength === 2; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (destLength !== 3) { + return false; + } + break; + case "FitR": + if (destLength !== 6) { + return false; + } + allowNull = false; + break; + default: + return false; } - } - pushCurrentPosition() { - if (!this._initialized || this._popStateInProgress) { - return; + for (let i = 2; i < destLength; i++) { + const param = dest[i]; + if (!(typeof param === "number" || allowNull && param === null)) { + return false; + } } - this._tryPushCurrentPosition(); + return true; } - back() { - if (!this._initialized || this._popStateInProgress) { - return; - } - const state = window.history.state; - if (this._isValidState(state) && state.uid > 0) { - window.history.back(); - } +} +class SimpleLinkService { + constructor() { + this.externalLinkEnabled = true; } - forward() { - if (!this._initialized || this._popStateInProgress) { - return; - } - const state = window.history.state; - if (this._isValidState(state) && state.uid < this._maxUid) { - window.history.forward(); - } + get pagesCount() { + return 0; } - get popStateInProgress() { - return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + get page() { + return 0; } - get initialBookmark() { - return this._initialized ? this._initialBookmark : null; + set page(value) {} + get rotation() { + return 0; } - get initialRotation() { - return this._initialized ? this._initialRotation : null; + set rotation(value) {} + get isInPresentationMode() { + return false; } - _pushOrReplaceState(destination, forceReplace = false) { - const shouldReplace = forceReplace || !this._destination; - const newState = { - fingerprint: this._fingerprint, - uid: shouldReplace ? this._uid : this._uid + 1, - destination - }; - this._updateInternalState(destination, newState.uid); - let newUrl; - if (this._updateUrl && destination?.hash) { - const baseUrl = document.location.href.split("#")[0]; - if (!baseUrl.startsWith("file://")) { - newUrl = `${baseUrl}#${destination.hash}`; + async goToDestination(dest) {} + goToPage(val) {} + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + return "#"; + } + getAnchorUrl(hash) { + return "#"; + } + setHash(hash) {} + executeNamedAction(action) {} + executeSetOCGState(action) {} + cachePageRef(pageNum, pageRef) {} +} + + +/***/ }), + +/***/ 1141: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFOutlineViewer: () => (/* binding */ PDFOutlineViewer) +/* harmony export */ }); +/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9415); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + + +class PDFOutlineViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; + this.downloadManager = options.downloadManager; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); } - } - if (shouldReplace) { - window.history.replaceState(newState, "", newUrl); - } else { - window.history.pushState(newState, "", newUrl); - } + }); + this.eventBus._on("sidebarviewchanged", evt => { + this._sidebarView = evt.view; + }); } - _tryPushCurrentPosition(temporary = false) { - if (!this._position) { - return; + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = null; + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(false); } - let position = this._position; - if (temporary) { - position = Object.assign(Object.create(null), this._position); - position.temporary = true; + this._currentOutlineItemCapability = null; + } + _dispatchEvent(outlineCount) { + this._currentOutlineItemCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); + if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded !== null) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); } - if (!this._destination) { - this._pushOrReplaceState(position); + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + _bindLink(element, { + url, + newWindow, + action, + attachment, + dest, + setOCGState + }) { + const { + linkService + } = this; + if (url) { + linkService.addLinkAttributes(element, url, newWindow); return; } - if (this._destination.temporary) { - this._pushOrReplaceState(position, true); + if (action) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeNamedAction(action); + return false; + }; return; } - if (this._destination.hash === position.hash) { + if (attachment) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + this.downloadManager.openOrDownloadData(attachment.content, attachment.filename); + return false; + }; return; } - if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + if (setOCGState) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeSetOCGState(setOCGState); + return false; + }; return; } - let forceReplace = false; - if (this._destination.page >= position.first && this._destination.page <= position.page) { - if (this._destination.dest !== undefined || !this._destination.first) { - return; - } - forceReplace = true; - } - this._pushOrReplaceState(position, forceReplace); - } - _isValidPage(val) { - return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; - } - _isValidState(state, checkReload = false) { - if (!state) { - return false; - } - if (state.fingerprint !== this._fingerprint) { - if (checkReload) { - if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { - return false; - } - const [perfEntry] = performance.getEntriesByType("navigation"); - if (perfEntry?.type !== "reload") { - return false; - } - } else { - return false; + element.href = linkService.getDestinationHash(dest); + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + if (dest) { + linkService.goToDestination(dest); } - } - if (!Number.isInteger(state.uid) || state.uid < 0) { return false; + }; + } + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; } - if (state.destination === null || typeof state.destination !== "object") { - return false; + if (italic) { + element.style.fontStyle = "italic"; } - return true; } - _updateInternalState(destination, uid, removeTemporary = false) { - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - if (removeTemporary && destination?.temporary) { - delete destination.temporary; + _addToggleButton(div, { + count, + items + }) { + let hidden = false; + if (count < 0) { + let totalCount = items.length; + if (totalCount > 0) { + const queue = [...items]; + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); + } + } + } + if (Math.abs(count) === totalCount) { + hidden = true; + } } - this._destination = destination; - this._uid = uid; - this._maxUid = Math.max(this._maxUid, uid); - this._numPositionUpdates = 0; + super._addToggleButton(div, hidden); } - _parseCurrentHash(checkNameddest = false) { - const hash = unescape(getCurrentHash()).substring(1); - const params = (0, _ui_utils.parseQueryString)(hash); - const nameddest = params.get("nameddest") || ""; - let page = params.get("page") | 0; - if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { - page = null; + _toggleAllTreeItems() { + if (!this._outline) { + return; } - return { - hash, - page, - rotation: this.linkService.rotation - }; + super._toggleAllTreeItems(); } - _updateViewarea({ - location + render({ + outline, + pdfDocument }) { - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; + if (this._outline) { + this.reset(); } - this._position = { - hash: location.pdfOpenParams.substring(1), - page: this.linkService.page, - first: location.pageNumber, - rotation: location.rotation - }; - if (this._popStateInProgress) { + this._outline = outline || null; + this._pdfDocument = pdfDocument || null; + if (!outline) { + this._dispatchEvent(0); return; } - if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { - this._numPositionUpdates++; - } - if (UPDATE_VIEWAREA_TIMEOUT > 0) { - this._updateViewareaTimeout = setTimeout(() => { - if (!this._popStateInProgress) { - this._tryPushCurrentPosition(true); + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, item); + this._setStyles(element, item); + element.textContent = this._normalizeTextContent(item.title); + div.append(element); + if (item.items.length > 0) { + hasAnyNesting = true; + this._addToggleButton(div, item); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); } - this._updateViewareaTimeout = null; - }, UPDATE_VIEWAREA_TIMEOUT); + levelData.parent.append(div); + outlineCount++; + } } + this._finishRendering(fragment, outlineCount, hasAnyNesting); } - _popState({ - state - }) { - const newHash = getCurrentHash(), - hashChanged = this._currentHash !== newHash; - this._currentHash = newHash; - if (!state) { - this._uid++; - const { - hash, - page, - rotation - } = this._parseCurrentHash(); - this._pushOrReplaceState({ - hash, - page, - rotation - }, true); + async _currentOutlineItem() { + if (!this._isPagesLoaded) { + throw new Error("_currentOutlineItem: All pages have not been loaded."); + } + if (!this._outline || !this._pdfDocument) { return; } - if (!this._isValidState(state)) { + const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); + if (!pageNumberToDestHash) { return; } - this._popStateInProgress = true; - if (hashChanged) { - this._blockHashChange++; - (0, _event_utils.waitOnEventOrTimeout)({ - target: window, - name: "hashchange", - delay: HASH_CHANGE_TIMEOUT - }).then(() => { - this._blockHashChange--; - }); + this._updateCurrentTreeItem(null); + if (this._sidebarView !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__.SidebarView.OUTLINE) { + return; } - const destination = state.destination; - this._updateInternalState(destination, state.uid, true); - if ((0, _ui_utils.isValidRotation)(destination.rotation)) { - this.linkService.rotation = destination.rotation; + for (let i = this._currentPageNumber; i > 0; i--) { + const destHash = pageNumberToDestHash.get(i); + if (!destHash) { + continue; + } + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); + if (!linkElement) { + continue; + } + this._scrollToCurrentTreeItem(linkElement.parentNode); + break; } - if (destination.dest) { - this.linkService.goToDestination(destination.dest); - } else if (destination.hash) { - this.linkService.setHash(destination.hash); - } else if (destination.page) { - this.linkService.page = destination.page; + } + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; } - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); + this._pageNumberToDestHashCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this.linkService._cachedPageNumber(destRef); + if (!pageNumber) { + try { + pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1; + if (pdfDocument !== this._pdfDocument) { + return null; + } + this.linkService.cachePageRef(pageNumber, destRef); + } catch {} + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } + if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { + const destHash = this.linkService.getDestinationHash(dest); + pageNumberToDestHash.set(pageNumber, destHash); + pageNumberNesting.set(pageNumber, currentNesting); + } + } + if (items.length > 0) { + queue.push({ + nesting: currentNesting + 1, + items + }); + } + } + } + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + return this._pageNumberToDestHashCapability.promise; } - _pageHide() { - if (!this._destination || this._destination.temporary) { - this._tryPushCurrentPosition(); +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 6732: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFPageView: () => (/* binding */ PDFPageView) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +/* harmony import */ var _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2640); +/* harmony import */ var _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6735); +/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8961); +/* harmony import */ var _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(758); +/* harmony import */ var web_l10n_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7910); +/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3234); +/* harmony import */ var _struct_tree_layer_builder_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7498); +/* harmony import */ var _text_accessibility_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(4630); +/* harmony import */ var _text_highlighter_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(4274); +/* harmony import */ var _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1013); +/* harmony import */ var _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8012); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__, _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__, _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_6__, _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__, _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__, _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_6__, _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + + + + + + + + + + + + +const MAX_CANVAS_PIXELS = _app_options_js__WEBPACK_IMPORTED_MODULE_4__.compatibilityParams.maxCanvasPixels || 16777216; +const DEFAULT_LAYER_PROPERTIES = null; +class PDFPageView { + #annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; + #hasRestrictedScaling = false; + #layerProperties = null; + #loadingId = null; + #previousRotation = null; + #renderError = null; + #renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL; + #textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; + #useThumbnailCanvas = { + directDrawing: true, + initialOptionalContent: true, + regularAnnotations: true + }; + #viewportMap = new WeakMap(); + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = "page" + this.id; + this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES; + this.pdfPage = null; + this.pageLabel = null; + this.rotation = 0; + this.scale = options.scale || _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; + this.#textLayerMode = options.textLayerMode ?? _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels ?? MAX_CANVAS_PIXELS; + this.pageColors = options.pageColors || null; + this.eventBus = options.eventBus; + this.renderingQueue = options.renderingQueue; + this.l10n = options.l10n || web_l10n_utils__WEBPACK_IMPORTED_MODULE_6__.NullL10n; + this.renderTask = null; + this.resume = null; + this._isStandalone = !this.renderingQueue?.hasViewer(); + this._container = container; + this._annotationCanvasMap = null; + this.annotationLayer = null; + this.annotationEditorLayer = null; + this.textLayer = null; + this.zoomLayer = null; + this.xfaLayer = null; + this.structTreeLayer = null; + this.drawLayer = null; + const div = document.createElement("div"); + div.className = "page"; + div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + div.setAttribute("data-l10n-id", "pdfjs-page-landmark"); + div.setAttribute("data-l10n-args", JSON.stringify({ + page: this.id + })); + this.div = div; + this.#setDimensions(); + container?.append(div); + if (this._isStandalone) { + container?.style.setProperty("--scale-factor", this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS); + const { + optionalContentConfigPromise + } = options; + if (optionalContentConfigPromise) { + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + if (this.l10n === web_l10n_utils__WEBPACK_IMPORTED_MODULE_6__.NullL10n) { + this.l10n.translate(this.div); + } } } - _bindEvents() { - if (this._boundEvents) { - return; - } - this._boundEvents = { - updateViewarea: this._updateViewarea.bind(this), - popState: this._popState.bind(this), - pageHide: this._pageHide.bind(this) - }; - this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); - window.addEventListener("popstate", this._boundEvents.popState); - window.addEventListener("pagehide", this._boundEvents.pageHide); + get renderingState() { + return this.#renderingState; } - _unbindEvents() { - if (!this._boundEvents) { + set renderingState(state) { + if (state === this.#renderingState) { return; } - this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); - window.removeEventListener("popstate", this._boundEvents.popState); - window.removeEventListener("pagehide", this._boundEvents.pageHide); - this._boundEvents = null; - } -} -exports.PDFHistory = PDFHistory; -function isDestHashesEqual(destHash, pushHash) { - if (typeof destHash !== "string" || typeof pushHash !== "string") { - return false; - } - if (destHash === pushHash) { - return true; - } - const nameddest = (0, _ui_utils.parseQueryString)(destHash).get("nameddest"); - if (nameddest === pushHash) { - return true; - } - return false; -} -function isDestArraysEqual(firstDest, secondDest) { - function isEntryEqual(first, second) { - if (typeof first !== typeof second) { - return false; + this.#renderingState = state; + if (this.#loadingId) { + clearTimeout(this.#loadingId); + this.#loadingId = null; } - if (Array.isArray(first) || Array.isArray(second)) { - return false; + switch (state) { + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED: + this.div.classList.remove("loading"); + break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING: + this.div.classList.add("loadingIcon"); + this.#loadingId = setTimeout(() => { + this.div.classList.add("loading"); + this.#loadingId = null; + }, 0); + break; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED: + this.div.classList.remove("loadingIcon", "loading"); + break; } - if (first !== null && typeof first === "object" && second !== null) { - if (Object.keys(first).length !== Object.keys(second).length) { - return false; - } - for (const key in first) { - if (!isEntryEqual(first[key], second[key])) { - return false; - } + } + #setDimensions() { + const { + viewport + } = this; + if (this.pdfPage) { + if (this.#previousRotation === viewport.rotation) { + return; } - return true; + this.#previousRotation = viewport.rotation; } - return first === second || Number.isNaN(first) && Number.isNaN(second); - } - if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { - return false; - } - if (firstDest.length !== secondDest.length) { - return false; + (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.setLayerDimensions)(this.div, viewport, true, false); } - for (let i = 0, ii = firstDest.length; i < ii; i++) { - if (!isEntryEqual(firstDest[i], secondDest[i])) { - return false; + setPdfPage(pdfPage) { + if (this._isStandalone && (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas")) { + this._container?.style.setProperty("--hcm-highlight-filter", pdfPage.filterFactory.addHighlightHCMFilter("CanvasText", "Canvas", "HighlightText", "Highlight")); } - } - return true; -} - -/***/ }), -/* 19 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFLayerViewer = void 0; -var _base_tree_viewer = __webpack_require__(13); -class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { - constructor(options) { - super(options); - this.l10n = options.l10n; - this.eventBus._on("optionalcontentconfigchanged", evt => { - this.#updateLayers(evt.promise); - }); - this.eventBus._on("resetlayers", () => { - this.#updateLayers(); + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation }); - this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + this.#setDimensions(); + this.reset(); } - reset() { - super.reset(); - this._optionalContentConfig = null; - this._optionalContentHash = null; + destroy() { + this.reset(); + this.pdfPage?.cleanup(); } - _dispatchEvent(layersCount) { - this.eventBus.dispatch("layersloaded", { - source: this, - layersCount - }); + get _textHighlighter() { + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_textHighlighter", new _text_highlighter_js__WEBPACK_IMPORTED_MODULE_12__.TextHighlighter({ + pageIndex: this.id - 1, + eventBus: this.eventBus, + findController: this.#layerProperties.findController + })); } - _bindLink(element, { - groupId, - input - }) { - const setVisibility = () => { - this._optionalContentConfig.setVisibility(groupId, input.checked); - this._optionalContentHash = this._optionalContentConfig.getHash(); - this.eventBus.dispatch("optionalcontentconfig", { + async #renderAnnotationLayer() { + let error = null; + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { source: this, - promise: Promise.resolve(this._optionalContentConfig) + pageNumber: this.id, + error }); - }; - element.onclick = evt => { - if (evt.target === input) { - setVisibility(); - return true; - } else if (evt.target !== element) { - return true; - } - input.checked = !input.checked; - setVisibility(); - return false; - }; - } - async _setNestedName(element, { - name = null - }) { - if (typeof name === "string") { - element.textContent = this._normalizeTextContent(name); - return; } - element.textContent = await this.l10n.get("additional_layers"); - element.style.fontStyle = "italic"; - } - _addToggleButton(div, { - name = null - }) { - super._addToggleButton(div, name === null); } - _toggleAllTreeItems() { - if (!this._optionalContentConfig) { - return; + async #renderAnnotationEditorLayer() { + let error = null; + try { + await this.annotationEditorLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationEditorLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationeditorlayerrendered", { + source: this, + pageNumber: this.id, + error + }); } - super._toggleAllTreeItems(); } - render({ - optionalContentConfig, - pdfDocument - }) { - if (this._optionalContentConfig) { - this.reset(); - } - this._optionalContentConfig = optionalContentConfig || null; - this._pdfDocument = pdfDocument || null; - const groups = optionalContentConfig?.getOrder(); - if (!groups) { - this._dispatchEvent(0); - return; + async #renderDrawLayer() { + try { + await this.drawLayer.render("display"); + } catch (ex) { + console.error(`#renderDrawLayer: "${ex}".`); } - this._optionalContentHash = optionalContentConfig.getHash(); - const fragment = document.createDocumentFragment(), - queue = [{ - parent: fragment, - groups - }]; - let layersCount = 0, - hasAnyNesting = false; - while (queue.length > 0) { - const levelData = queue.shift(); - for (const groupId of levelData.groups) { - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - div.append(element); - if (typeof groupId === "object") { - hasAnyNesting = true; - this._addToggleButton(div, groupId); - this._setNestedName(element, groupId); - const itemsDiv = document.createElement("div"); - itemsDiv.className = "treeItems"; - div.append(itemsDiv); - queue.push({ - parent: itemsDiv, - groups: groupId.order - }); - } else { - const group = optionalContentConfig.getGroup(groupId); - const input = document.createElement("input"); - this._bindLink(element, { - groupId, - input - }); - input.type = "checkbox"; - input.checked = group.visible; - const label = document.createElement("label"); - label.textContent = this._normalizeTextContent(group.name); - label.append(input); - element.append(label); - layersCount++; - } - levelData.parent.append(div); + } + async #renderXfaLayer() { + let error = null; + try { + const result = await this.xfaLayer.render(this.viewport, "display"); + if (result?.textDivs && this._textHighlighter) { + this.#buildXfaTextContentItems(result.textDivs); + } + } catch (ex) { + console.error(`#renderXfaLayer: "${ex}".`); + error = ex; + } finally { + if (this.xfaLayer?.div) { + this.l10n.pause(); + this.div.append(this.xfaLayer.div); + this.l10n.resume(); } + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error + }); } - this._finishRendering(fragment, layersCount, hasAnyNesting); } - async #updateLayers(promise = null) { - if (!this._optionalContentConfig) { - return; - } - const pdfDocument = this._pdfDocument; - const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig()); - if (pdfDocument !== this._pdfDocument) { + async #renderTextLayer() { + const { + pdfPage, + textLayer, + viewport + } = this; + if (!textLayer) { return; } - if (promise) { - if (optionalContentConfig.getHash() === this._optionalContentHash) { + let error = null; + try { + if (!textLayer.renderingDone) { + const readableStream = pdfPage.streamTextContent({ + includeMarkedContent: true, + disableNormalization: true + }); + textLayer.setTextContentSource(readableStream); + } + await textLayer.render(viewport); + } catch (ex) { + if (ex instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AbortException) { return; } - } else { - this.eventBus.dispatch("optionalcontentconfig", { - source: this, - promise: Promise.resolve(optionalContentConfig) - }); + console.error(`#renderTextLayer: "${ex}".`); + error = ex; } - this.render({ - optionalContentConfig, - pdfDocument: this._pdfDocument - }); - } -} -exports.PDFLayerViewer = PDFLayerViewer; - -/***/ }), -/* 20 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFOutlineViewer = void 0; -var _base_tree_viewer = __webpack_require__(13); -var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(1); -class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { - constructor(options) { - super(options); - this.linkService = options.linkService; - this.downloadManager = options.downloadManager; - this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); - this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); - this.eventBus._on("pagechanging", evt => { - this._currentPageNumber = evt.pageNumber; - }); - this.eventBus._on("pagesloaded", evt => { - this._isPagesLoaded = !!evt.pagesCount; - if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { - this._currentOutlineItemCapability.resolve(this._isPagesLoaded); - } - }); - this.eventBus._on("sidebarviewchanged", evt => { - this._sidebarView = evt.view; + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.id, + numTextDivs: textLayer.numTextDivs, + error }); + this.#renderStructTreeLayer(); } - reset() { - super.reset(); - this._outline = null; - this._pageNumberToDestHashCapability = null; - this._currentPageNumber = 1; - this._isPagesLoaded = null; - if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { - this._currentOutlineItemCapability.resolve(false); + async #renderStructTreeLayer() { + if (!this.textLayer) { + return; } - this._currentOutlineItemCapability = null; + this.structTreeLayer ||= new _struct_tree_layer_builder_js__WEBPACK_IMPORTED_MODULE_8__.StructTreeLayerBuilder(); + const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null); + const treeDom = this.structTreeLayer?.render(tree); + if (treeDom) { + this.l10n.pause(); + this.canvas?.append(treeDom); + this.l10n.resume(); + } + this.structTreeLayer?.show(); } - _dispatchEvent(outlineCount) { - this._currentOutlineItemCapability = (0, _pdfjsLib.createPromiseCapability)(); - if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { - this._currentOutlineItemCapability.resolve(false); - } else if (this._isPagesLoaded !== null) { - this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + async #buildXfaTextContentItems(textDivs) { + const text = await this.pdfPage.getTextContent(); + const items = []; + for (const item of text.items) { + items.push(item.str); } - this.eventBus.dispatch("outlineloaded", { - source: this, - outlineCount, - currentOutlineItemPromise: this._currentOutlineItemCapability.promise - }); + this._textHighlighter.setTextMapping(textDivs, items); + this._textHighlighter.enable(); } - _bindLink(element, { - url, - newWindow, - action, - attachment, - dest, - setOCGState - }) { - const { - linkService - } = this; - if (url) { - linkService.addLinkAttributes(element, url, newWindow); + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { return; } - if (action) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - linkService.executeNamedAction(action); - return false; - }; - return; + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.#viewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + if (removeFromDOM) { + this.zoomLayer.remove(); } - if (attachment) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - this.downloadManager.openOrDownloadData(element, attachment.content, attachment.filename); - return false; - }; - return; + this.zoomLayer = null; + } + reset({ + keepZoomLayer = false, + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false + } = {}) { + this.cancelRendering({ + keepAnnotationLayer, + keepAnnotationEditorLayer, + keepXfaLayer, + keepTextLayer + }); + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL; + const div = this.div; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, + annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, + xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, + textLayerNode = keepTextLayer && this.textLayer?.div || null; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case annotationEditorLayerNode: + case xfaLayerNode: + case textLayerNode: + continue; + } + node.remove(); } - if (setOCGState) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - linkService.executeSetOCGState(setOCGState); - return false; - }; - return; + div.removeAttribute("data-loaded"); + if (annotationLayerNode) { + this.annotationLayer.hide(); } - element.href = linkService.getDestinationHash(dest); - element.onclick = evt => { - this._updateCurrentTreeItem(evt.target.parentNode); - if (dest) { - linkService.goToDestination(dest); + if (annotationEditorLayerNode) { + this.annotationEditorLayer.hide(); + } + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + if (textLayerNode) { + this.textLayer.hide(); + } + this.structTreeLayer?.hide(); + if (!zoomLayerNode) { + if (this.canvas) { + this.#viewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; } - return false; - }; + this._resetZoomLayer(); + } } - _setStyles(element, { - bold, - italic + update({ + scale = 0, + rotation = null, + optionalContentConfigPromise = null, + drawingDelay = -1 }) { - if (bold) { - element.style.fontWeight = "bold"; + this.scale = scale || this.scale; + if (typeof rotation === "number") { + this.rotation = rotation; } - if (italic) { - element.style.fontStyle = "italic"; + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); } - } - _addToggleButton(div, { - count, - items - }) { - let hidden = false; - if (count < 0) { - let totalCount = items.length; - if (totalCount > 0) { - const queue = [...items]; - while (queue.length > 0) { + this.#useThumbnailCanvas.directDrawing = true; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + if (this._isStandalone) { + this._container?.style.setProperty("--scale-factor", this.viewport.scale); + } + if (this.canvas) { + let onlyCssZoom = false; + if (this.#hasRestrictedScaling) { + if (this.maxCanvasPixels === 0) { + onlyCssZoom = true; + } else if (this.maxCanvasPixels > 0) { const { - count: nestedCount, - items: nestedItems - } = queue.shift(); - if (nestedCount > 0 && nestedItems.length > 0) { - totalCount += nestedItems.length; - queue.push(...nestedItems); - } + width, + height + } = this.viewport; + const { + sx, + sy + } = this.outputScale; + onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels; } } - if (Math.abs(count) === totalCount) { - hidden = true; + const postponeDrawing = !onlyCssZoom && drawingDelay >= 0 && drawingDelay < 1000; + if (postponeDrawing || onlyCssZoom) { + if (postponeDrawing && this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED) { + this.cancelRendering({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true, + cancelExtraDelay: drawingDelay + }); + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; + this.#useThumbnailCanvas.directDrawing = false; + } + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true, + redrawTextLayer: !postponeDrawing, + hideTextLayer: postponeDrawing + }); + if (postponeDrawing) { + return; + } + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this.#renderError + }); + return; + } + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } + cancelRendering({ + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false, + cancelExtraDelay = 0 + } = {}) { + if (this.renderTask) { + this.renderTask.cancel(cancelExtraDelay); + this.renderTask = null; + } + this.resume = null; + if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) { + this.textLayer.cancel(); + this.textLayer = null; + } + if (this.structTreeLayer && !this.textLayer) { + this.structTreeLayer = null; + } + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + this._annotationCanvasMap = null; + } + if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { + if (this.drawLayer) { + this.drawLayer.cancel(); + this.drawLayer = null; } + this.annotationEditorLayer.cancel(); + this.annotationEditorLayer = null; } - super._addToggleButton(div, hidden); - } - _toggleAllTreeItems() { - if (!this._outline) { - return; + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + this.xfaLayer.cancel(); + this.xfaLayer = null; + this._textHighlighter?.disable(); } - super._toggleAllTreeItems(); } - render({ - outline, - pdfDocument + cssTransform({ + target, + redrawAnnotationLayer = false, + redrawAnnotationEditorLayer = false, + redrawXfaLayer = false, + redrawTextLayer = false, + hideTextLayer = false }) { - if (this._outline) { - this.reset(); + if (!target.hasAttribute("zooming")) { + target.setAttribute("zooming", true); + const { + style + } = target; + style.width = style.height = ""; + } + const originalViewport = this.#viewportMap.get(target); + if (this.viewport !== originalViewport) { + const relativeRotation = this.viewport.rotation - originalViewport.rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + if (absRotation === 90 || absRotation === 270) { + const { + width, + height + } = this.viewport; + scaleX = height / width; + scaleY = width / height; + } + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; } - this._outline = outline || null; - this._pdfDocument = pdfDocument || null; - if (!outline) { - this._dispatchEvent(0); - return; + if (redrawAnnotationLayer && this.annotationLayer) { + this.#renderAnnotationLayer(); } - const fragment = document.createDocumentFragment(); - const queue = [{ - parent: fragment, - items: outline - }]; - let outlineCount = 0, - hasAnyNesting = false; - while (queue.length > 0) { - const levelData = queue.shift(); - for (const item of levelData.items) { - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - this._bindLink(element, item); - this._setStyles(element, item); - element.textContent = this._normalizeTextContent(item.title); - div.append(element); - if (item.items.length > 0) { - hasAnyNesting = true; - this._addToggleButton(div, item); - const itemsDiv = document.createElement("div"); - itemsDiv.className = "treeItems"; - div.append(itemsDiv); - queue.push({ - parent: itemsDiv, - items: item.items - }); - } - levelData.parent.append(div); - outlineCount++; + if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { + if (this.drawLayer) { + this.#renderDrawLayer(); + } + this.#renderAnnotationEditorLayer(); + } + if (redrawXfaLayer && this.xfaLayer) { + this.#renderXfaLayer(); + } + if (this.textLayer) { + if (hideTextLayer) { + this.textLayer.hide(); + this.structTreeLayer?.hide(); + } else if (redrawTextLayer) { + this.#renderTextLayer(); } } - this._finishRendering(fragment, outlineCount, hasAnyNesting); } - async _currentOutlineItem() { - if (!this._isPagesLoaded) { - throw new Error("_currentOutlineItem: All pages have not been loaded."); + get width() { + return this.viewport.width; + } + get height() { + return this.viewport.height; + } + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + async #finishRenderTask(renderTask, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; } - if (!this._outline || !this._pdfDocument) { + if (error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException) { + this.#renderError = null; return; } - const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); - if (!pageNumberToDestHash) { - return; + this.#renderError = error; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; + this._resetZoomLayer(true); + this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots; + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this.#renderError + }); + if (error) { + throw error; } - this._updateCurrentTreeItem(null); - if (this._sidebarView !== _ui_utils.SidebarView.OUTLINE) { - return; + } + async draw() { + if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); } - for (let i = this._currentPageNumber; i > 0; i--) { - const destHash = pageNumberToDestHash.get(i); - if (!destHash) { - continue; + const { + div, + l10n, + pageColors, + pdfPage, + viewport + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); + } + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.classList.add("canvasWrapper"); + div.append(canvasWrapper); + if (!this.textLayer && this.#textLayerMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.DISABLE && !pdfPage.isPureXfa) { + this._accessibilityManager ||= new _text_accessibility_js__WEBPACK_IMPORTED_MODULE_9__.TextAccessibilityManager(); + this.textLayer = new _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__.TextLayerBuilder({ + highlighter: this._textHighlighter, + accessibilityManager: this._accessibilityManager, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + enablePermissions: this.#textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS + }); + this.textLayer.onAppend = textLayerDiv => { + this.l10n.pause(); + this.div.append(textLayerDiv); + this.l10n.resume(); + }; + } + if (!this.annotationLayer && this.#annotationMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.DISABLE) { + const { + annotationStorage, + downloadManager, + enableScripting, + fieldObjectsPromise, + hasJSActionsPromise, + linkService + } = this.#layerProperties; + this._annotationCanvasMap ||= new Map(); + this.annotationLayer = new _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__.AnnotationLayerBuilder({ + pageDiv: div, + pdfPage, + annotationStorage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS, + linkService, + downloadManager, + enableScripting, + hasJSActionsPromise, + fieldObjectsPromise, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + }); + } + const renderContinueCallback = cont => { + showCanvas?.(false); + if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING; + cont(); + }; + return; } - const linkElement = this.container.querySelector(`a[href="${destHash}"]`); - if (!linkElement) { - continue; + cont(); + }; + const { + width, + height + } = viewport; + const canvas = document.createElement("canvas"); + canvas.setAttribute("role", "presentation"); + canvas.hidden = true; + const hasHCM = !!(pageColors?.background && pageColors?.foreground); + let showCanvas = isLastShow => { + if (!hasHCM || isLastShow) { + canvas.hidden = false; + showCanvas = null; + } + }; + canvasWrapper.append(canvas); + this.canvas = canvas; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = this.outputScale = new _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.OutputScale(); + if (this.maxCanvasPixels === 0) { + const invScale = 1 / this.scale; + outputScale.sx *= invScale; + outputScale.sy *= invScale; + this.#hasRestrictedScaling = true; + } else if (this.maxCanvasPixels > 0) { + const pixelsInViewport = width * height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + this.#hasRestrictedScaling = true; + } else { + this.#hasRestrictedScaling = false; } - this._scrollToCurrentTreeItem(linkElement.parentNode); - break; - } - } - async _getPageNumberToDestHash(pdfDocument) { - if (this._pageNumberToDestHashCapability) { - return this._pageNumberToDestHashCapability.promise; } - this._pageNumberToDestHashCapability = (0, _pdfjsLib.createPromiseCapability)(); - const pageNumberToDestHash = new Map(), - pageNumberNesting = new Map(); - const queue = [{ - nesting: 0, - items: this._outline - }]; - while (queue.length > 0) { - const levelData = queue.shift(), - currentNesting = levelData.nesting; - for (const { - dest, - items - } of levelData.items) { - let explicitDest, pageNumber; - if (typeof dest === "string") { - explicitDest = await pdfDocument.getDestination(dest); - if (pdfDocument !== this._pdfDocument) { - return null; - } - } else { - explicitDest = dest; - } - if (Array.isArray(explicitDest)) { - const [destRef] = explicitDest; - if (typeof destRef === "object" && destRef !== null) { - pageNumber = this.linkService._cachedPageNumber(destRef); - if (!pageNumber) { - try { - pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1; - if (pdfDocument !== this._pdfDocument) { - return null; - } - this.linkService.cachePageRef(pageNumber, destRef); - } catch (ex) {} - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } - if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { - const destHash = this.linkService.getDestinationHash(dest); - pageNumberToDestHash.set(pageNumber, destHash); - pageNumberNesting.set(pageNumber, currentNesting); - } - } - if (items.length > 0) { - queue.push({ - nesting: currentNesting + 1, - items - }); - } + const sfx = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.approximateFraction)(outputScale.sx); + const sfy = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.approximateFraction)(outputScale.sy); + canvas.width = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(width * outputScale.sx, sfx[0]); + canvas.height = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(height * outputScale.sy, sfy[0]); + const { + style + } = canvas; + style.width = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(width, sfx[1]) + "px"; + style.height = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(height, sfy[1]) + "px"; + this.#viewportMap.set(canvas, viewport); + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + const renderContext = { + canvasContext: ctx, + transform, + viewport, + annotationMode: this.#annotationMode, + optionalContentConfigPromise: this._optionalContentConfigPromise, + annotationCanvasMap: this._annotationCanvasMap, + pageColors + }; + const renderTask = this.renderTask = this.pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(async () => { + showCanvas?.(true); + await this.#finishRenderTask(renderTask); + this.#renderTextLayer(); + if (this.annotationLayer) { + await this.#renderAnnotationLayer(); + } + const { + annotationEditorUIManager + } = this.#layerProperties; + if (!annotationEditorUIManager) { + return; + } + this.drawLayer ||= new _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__.DrawLayerBuilder({ + pageIndex: this.id + }); + await this.#renderDrawLayer(); + this.drawLayer.setParent(canvasWrapper); + if (!this.annotationEditorLayer) { + this.annotationEditorLayer = new _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__.AnnotationEditorLayerBuilder({ + uiManager: annotationEditorUIManager, + pageDiv: div, + pdfPage, + l10n, + accessibilityManager: this._accessibilityManager, + annotationLayer: this.annotationLayer?.annotationLayer, + textLayer: this.textLayer, + drawLayer: this.drawLayer.getDrawLayer() + }); + } + this.#renderAnnotationEditorLayer(); + }, error => { + if (!(error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException)) { + showCanvas?.(true); + } + return this.#finishRenderTask(renderTask, error); + }); + if (pdfPage.isPureXfa) { + if (!this.xfaLayer) { + const { + annotationStorage, + linkService + } = this.#layerProperties; + this.xfaLayer = new _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__.XfaLayerBuilder({ + pdfPage, + annotationStorage, + linkService + }); } + this.#renderXfaLayer(); } - this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); - return this._pageNumberToDestHashCapability.promise; + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + this.div.setAttribute("data-l10n-args", JSON.stringify({ + page: this.pageLabel ?? this.id + })); + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + get thumbnailCanvas() { + const { + directDrawing, + initialOptionalContent, + regularAnnotations + } = this.#useThumbnailCanvas; + return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null; } } -exports.PDFOutlineViewer = PDFOutlineViewer; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 21 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 323: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFPresentationMode: () => (/* binding */ PDFPresentationMode) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFPresentationMode = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); const DELAY_BEFORE_HIDING_CONTROLS = 3000; const ACTIVE_SELECTOR = "pdfPresentationMode"; const CONTROLS_SELECTOR = "pdfPresentationModeControls"; @@ -6378,7 +9193,7 @@ const PAGE_SWITCH_THRESHOLD = 0.1; const SWIPE_MIN_DISTANCE_THRESHOLD = 50; const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; class PDFPresentationMode { - #state = _ui_utils.PresentationModeState.UNKNOWN; + #state = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.UNKNOWN; #args = null; constructor({ container, @@ -6402,7 +9217,7 @@ class PDFPresentationMode { return false; } this.#addFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils.PresentationModeState.CHANGING); + this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.CHANGING); const promise = container.requestFullscreen(); this.#args = { pageNumber: pdfViewer.currentPageNumber, @@ -6411,32 +9226,32 @@ class PDFPresentationMode { spreadMode: null, annotationEditorMode: null }; - if (pdfViewer.spreadMode !== _ui_utils.SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { + if (pdfViewer.spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { console.warn("Ignoring Spread modes when entering PresentationMode, " + "since the document may contain varying page sizes."); this.#args.spreadMode = pdfViewer.spreadMode; } - if (pdfViewer.annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + if (pdfViewer.annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.DISABLE) { this.#args.annotationEditorMode = pdfViewer.annotationEditorMode; } try { await promise; pdfViewer.focus(); return true; - } catch (reason) { + } catch { this.#removeFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils.PresentationModeState.NORMAL); + this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL); } return false; } get active() { - return this.#state === _ui_utils.PresentationModeState.CHANGING || this.#state === _ui_utils.PresentationModeState.FULLSCREEN; + return this.#state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.CHANGING || this.#state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.FULLSCREEN; } #mouseWheel(evt) { if (!this.active) { return; } evt.preventDefault(); - const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const delta = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.normalizeWheelEventDelta)(evt); const currentTime = Date.now(); const storedTime = this.mouseScrollTimeStamp; if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { @@ -6463,17 +9278,19 @@ class PDFPresentationMode { }); } #enter() { - this.#notifyStateChange(_ui_utils.PresentationModeState.FULLSCREEN); + this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.FULLSCREEN); this.container.classList.add(ACTIVE_SELECTOR); setTimeout(() => { - this.pdfViewer.scrollMode = _ui_utils.ScrollMode.PAGE; + this.pdfViewer.scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE; if (this.#args.spreadMode !== null) { - this.pdfViewer.spreadMode = _ui_utils.SpreadMode.NONE; + this.pdfViewer.spreadMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE; } this.pdfViewer.currentPageNumber = this.#args.pageNumber; this.pdfViewer.currentScaleValue = "page-fit"; if (this.#args.annotationEditorMode !== null) { - this.pdfViewer.annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + this.pdfViewer.annotationEditorMode = { + mode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.NONE + }; } }, 0); this.#addWindowListeners(); @@ -6486,7 +9303,7 @@ class PDFPresentationMode { this.container.classList.remove(ACTIVE_SELECTOR); setTimeout(() => { this.#removeFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils.PresentationModeState.NORMAL); + this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL); this.pdfViewer.scrollMode = this.#args.scrollMode; if (this.#args.spreadMode !== null) { this.pdfViewer.spreadMode = this.#args.spreadMode; @@ -6494,7 +9311,9 @@ class PDFPresentationMode { this.pdfViewer.currentScaleValue = this.#args.scaleValue; this.pdfViewer.currentPageNumber = pageNumber; if (this.#args.annotationEditorMode !== null) { - this.pdfViewer.annotationEditorMode = this.#args.annotationEditorMode; + this.pdfViewer.annotationEditorMode = { + mode: this.#args.annotationEditorMode + }; } this.#args = null; }, 0); @@ -6509,17 +9328,18 @@ class PDFPresentationMode { evt.preventDefault(); return; } - if (evt.button === 0) { - const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); - if (!isInternalLink) { - evt.preventDefault(); - if (evt.shiftKey) { - this.pdfViewer.previousPage(); - } else { - this.pdfViewer.nextPage(); - } - } - } + if (evt.button !== 0) { + return; + } + if (evt.target.href && evt.target.parentNode?.hasAttribute("data-internal-link")) { + return; + } + evt.preventDefault(); + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); + } } #contextMenu() { this.contextMenuOpen = true; @@ -6645,20 +9465,280 @@ class PDFPresentationMode { delete this.fullscreenChangeBind; } } -exports.PDFPresentationMode = PDFPresentationMode; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 1834: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* unused harmony export PDFPrintService */ +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39); +/* harmony import */ var _print_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4552); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _app_js__WEBPACK_IMPORTED_MODULE_1__, _print_utils_js__WEBPACK_IMPORTED_MODULE_2__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _app_js__WEBPACK_IMPORTED_MODULE_1__, _print_utils_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + + +let activeService = null; +let dialog = null; +let overlayManager = null; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF; + scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); + scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); + const ctx = scratchCanvas.getContext("2d"); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); + ctx.restore(); + return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) { + const renderContext = { + canvasContext: ctx, + transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], + viewport: pdfPage.getViewport({ + scale: 1, + rotation: size.rotation + }), + intent: "print", + annotationMode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_STORAGE, + optionalContentConfigPromise, + printAnnotationStorage + }; + return pdfPage.render(renderContext).promise; + }); +} +class PDFPrintService { + constructor(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, printAnnotationStoragePromise = null) { + this.pdfDocument = pdfDocument; + this.pagesOverview = pagesOverview; + this.printContainer = printContainer; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); + this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); + this.currentPage = -1; + this.scratchCanvas = document.createElement("canvas"); + } + layout() { + this.throwIfInactive(); + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const { + width, + height + } = this.pagesOverview[0]; + const hasEqualPageSizes = this.pagesOverview.every(size => size.width === width && size.height === height); + if (!hasEqualPageSizes) { + console.warn("Not all pages have the same size. The printed result may be incorrect!"); + } + this.pageStyleSheet = document.createElement("style"); + this.pageStyleSheet.textContent = `@page { size: ${width}pt ${height}pt;}`; + body.append(this.pageStyleSheet); + } + destroy() { + if (activeService !== this) { + return; + } + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); + this.pageStyleSheet = null; + } + this.scratchCanvas.width = this.scratchCanvas.height = 0; + this.scratchCanvas = null; + activeService = null; + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + } + renderPages() { + if (this.pdfDocument.isPureXfa) { + (0,_print_utils_js__WEBPACK_IMPORTED_MODULE_2__.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); + return Promise.resolve(); + } + const pageCount = this.pagesOverview.length; + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount); + resolve(); + return; + } + const index = this.currentPage; + renderProgress(index, pageCount); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { + renderNextPage(resolve, reject); + }, reject); + }; + return new Promise(renderNextPage); + } + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + const scratchCanvas = this.scratchCanvas; + if ("toBlob" in scratchCanvas) { + scratchCanvas.toBlob(function (blob) { + img.src = URL.createObjectURL(blob); + }); + } else { + img.src = scratchCanvas.toDataURL(); + } + const wrapper = document.createElement("div"); + wrapper.className = "printedPage"; + wrapper.append(img); + this.printContainer.append(wrapper); + return new Promise(function (resolve, reject) { + img.onload = resolve; + img.onerror = reject; + }); + } + performPrint() { + this.throwIfInactive(); + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { + resolve(); + return; + } + print.call(window); + setTimeout(resolve, 20); + }, 0); + }); + } + get active() { + return this === activeService; + } + throwIfInactive() { + if (!this.active) { + throw new Error("This print request was cancelled or completed."); + } + } +} +const print = window.print; +window.print = function () { + if (activeService) { + console.warn("Ignored window.print() because of a pending print job."); + return; + } + ensureOverlay().then(function () { + if (activeService) { + overlayManager.open(dialog); + } + }); + try { + dispatchEvent("beforeprint"); + } finally { + if (!activeService) { + console.error("Expected print service to be initialized."); + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + return; + } + const activeServiceOnEntry = activeService; + activeService.renderPages().then(function () { + return activeServiceOnEntry.performPrint(); + }).catch(function () {}).then(function () { + if (activeServiceOnEntry.active) { + abort(); + } + }); + } +}; +function dispatchEvent(eventType) { + const event = new CustomEvent(eventType, { + bubbles: false, + cancelable: false, + detail: "custom" + }); + window.dispatchEvent(event); +} +function abort() { + if (activeService) { + activeService.destroy(); + dispatchEvent("afterprint"); + } +} +function renderProgress(index, total) { + dialog ||= document.getElementById("printServiceDialog"); + const progress = Math.round(100 * index / total); + const progressBar = dialog.querySelector("progress"); + const progressPerc = dialog.querySelector(".relative-progress"); + progressBar.value = progress; + progressPerc.setAttribute("data-l10n-args", JSON.stringify({ + progress + })); +} +window.addEventListener("keydown", function (event) { + if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { + window.print(); + event.preventDefault(); + event.stopImmediatePropagation(); + } +}, true); +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom") { + event.stopImmediatePropagation(); + } + }; + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); +} +let overlayPromise; +function ensureOverlay() { + if (!overlayPromise) { + overlayManager = _app_js__WEBPACK_IMPORTED_MODULE_1__.PDFViewerApplication.overlayManager; + if (!overlayManager) { + throw new Error("The overlay manager has not yet been initialized."); + } + dialog ||= document.getElementById("printServiceDialog"); + overlayPromise = overlayManager.register(dialog, true); + document.getElementById("printCancel").onclick = abort; + dialog.addEventListener("close", abort); + } + return overlayPromise; +} +_app_js__WEBPACK_IMPORTED_MODULE_1__.PDFPrintServiceFactory.instance = { + supportsPrinting: true, + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { + if (activeService) { + throw new Error("The print service is created and active."); + } + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise); + return activeService; + } +}; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 22 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 5119: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFRenderingQueue: () => (/* binding */ PDFRenderingQueue) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFRenderingQueue = void 0; -var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(1); const CLEANUP_TIMEOUT = 30000; class PDFRenderingQueue { constructor() { @@ -6669,6 +9749,9 @@ class PDFRenderingQueue { this.idleTimeout = null; this.printing = false; this.isThumbnailViewEnabled = false; + Object.defineProperty(this, "hasViewer", { + value: () => !!this.pdfViewer + }); } setViewer(pdfViewer) { this.pdfViewer = pdfViewer; @@ -6679,9 +9762,6 @@ class PDFRenderingQueue { isHighestPriority(view) { return this.highestPriorityPage === view.renderingId; } - hasViewer() { - return !!this.pdfViewer; - } renderHighestPriority(currentlyVisiblePages) { if (this.idleTimeout) { clearTimeout(this.idleTimeout); @@ -6742,25 +9822,25 @@ class PDFRenderingQueue { return null; } isViewFinished(view) { - return view.renderingState === _ui_utils.RenderingStates.FINISHED; + return view.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; } renderView(view) { switch (view.renderingState) { - case _ui_utils.RenderingStates.FINISHED: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED: return false; - case _ui_utils.RenderingStates.PAUSED: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED: this.highestPriorityPage = view.renderingId; view.resume(); break; - case _ui_utils.RenderingStates.RUNNING: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING: this.highestPriorityPage = view.renderingId; break; - case _ui_utils.RenderingStates.INITIAL: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL: this.highestPriorityPage = view.renderingId; view.draw().finally(() => { this.renderHighestPriority(); }).catch(reason => { - if (reason instanceof _pdfjsLib.RenderingCancelledException) { + if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException) { return; } console.error(`renderView: "${reason}"`); @@ -6770,73 +9850,78 @@ class PDFRenderingQueue { return true; } } -exports.PDFRenderingQueue = PDFRenderingQueue; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 23 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 2599: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFScriptingManager: () => (/* binding */ PDFScriptingManager) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFScriptingManager = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); class PDFScriptingManager { + #closeCapability = null; + #destroyCapability = null; + #docProperties = null; + #eventBus = null; + #externalServices = null; + #pdfDocument = null; + #pdfViewer = null; + #ready = false; + #scripting = null; + #willPrintCapability = null; constructor({ eventBus, - sandboxBundleSrc = null, - scriptingFactory = null, - docPropertiesLookup = null + externalServices = null, + docProperties = null }) { - this._pdfDocument = null; - this._pdfViewer = null; - this._closeCapability = null; - this._destroyCapability = null; - this._scripting = null; - this._mouseState = Object.create(null); - this._ready = false; - this._eventBus = eventBus; - this._sandboxBundleSrc = sandboxBundleSrc; - this._scriptingFactory = scriptingFactory; - this._docPropertiesLookup = docPropertiesLookup; + this.#eventBus = eventBus; + this.#externalServices = externalServices; + this.#docProperties = docProperties; } setViewer(pdfViewer) { - this._pdfViewer = pdfViewer; + this.#pdfViewer = pdfViewer; } async setDocument(pdfDocument) { - if (this._pdfDocument) { - await this._destroyScripting(); + if (this.#pdfDocument) { + await this.#destroyScripting(); } - this._pdfDocument = pdfDocument; + this.#pdfDocument = pdfDocument; if (!pdfDocument) { return; } const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); if (!objects && !docActions) { - await this._destroyScripting(); + await this.#destroyScripting(); return; } - if (pdfDocument !== this._pdfDocument) { + if (pdfDocument !== this.#pdfDocument) { return; } try { - this._scripting = this._createScripting(); + this.#scripting = this.#initScripting(); } catch (error) { - console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); - await this._destroyScripting(); + console.error(`setDocument: "${error.message}".`); + await this.#destroyScripting(); return; } this._internalEvents.set("updatefromsandbox", event => { - if (event?.source !== window) { - return; + if (event?.source === window) { + this.#updateFromSandbox(event.detail); } - this._updateFromSandbox(event.detail); }); this._internalEvents.set("dispatcheventinsandbox", event => { - this._scripting?.dispatchEventInSandbox(event.detail); + this.#scripting?.dispatchEventInSandbox(event.detail); }); this._internalEvents.set("pagechanging", ({ pageNumber, @@ -6845,8 +9930,8 @@ class PDFScriptingManager { if (pageNumber === previous) { return; } - this._dispatchPageClose(previous); - this._dispatchPageOpen(pageNumber); + this.#dispatchPageClose(previous); + this.#dispatchPageOpen(pageNumber); }); this._internalEvents.set("pagerendered", ({ pageNumber @@ -6854,37 +9939,28 @@ class PDFScriptingManager { if (!this._pageOpenPending.has(pageNumber)) { return; } - if (pageNumber !== this._pdfViewer.currentPageNumber) { + if (pageNumber !== this.#pdfViewer.currentPageNumber) { return; } - this._dispatchPageOpen(pageNumber); + this.#dispatchPageOpen(pageNumber); }); - this._internalEvents.set("pagesdestroy", async event => { - await this._dispatchPageClose(this._pdfViewer.currentPageNumber); - await this._scripting?.dispatchEventInSandbox({ + this._internalEvents.set("pagesdestroy", async () => { + await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber); + await this.#scripting?.dispatchEventInSandbox({ id: "doc", name: "WillClose" }); - this._closeCapability?.resolve(); - }); - this._domEvents.set("mousedown", event => { - this._mouseState.isDown = true; - }); - this._domEvents.set("mouseup", event => { - this._mouseState.isDown = false; + this.#closeCapability?.resolve(); }); for (const [name, listener] of this._internalEvents) { - this._eventBus._on(name, listener); - } - for (const [name, listener] of this._domEvents) { - window.addEventListener(name, listener, true); + this.#eventBus._on(name, listener); } try { - const docProperties = await this._getDocProperties(); - if (pdfDocument !== this._pdfDocument) { + const docProperties = await this.#docProperties(pdfDocument); + if (pdfDocument !== this.#pdfDocument) { return; } - await this._scripting.createSandbox({ + await this.#scripting.createSandbox({ objects, calculationOrder, appInfo: { @@ -6896,72 +9972,79 @@ class PDFScriptingManager { actions: docActions } }); - this._eventBus.dispatch("sandboxcreated", { + this.#eventBus.dispatch("sandboxcreated", { source: this }); } catch (error) { - console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); - await this._destroyScripting(); + console.error(`setDocument: "${error.message}".`); + await this.#destroyScripting(); return; } - await this._scripting?.dispatchEventInSandbox({ + await this.#scripting?.dispatchEventInSandbox({ id: "doc", name: "Open" }); - await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true); + await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true); Promise.resolve().then(() => { - if (pdfDocument === this._pdfDocument) { - this._ready = true; + if (pdfDocument === this.#pdfDocument) { + this.#ready = true; } }); } - async dispatchWillSave(detail) { - return this._scripting?.dispatchEventInSandbox({ + async dispatchWillSave() { + return this.#scripting?.dispatchEventInSandbox({ id: "doc", name: "WillSave" }); } - async dispatchDidSave(detail) { - return this._scripting?.dispatchEventInSandbox({ + async dispatchDidSave() { + return this.#scripting?.dispatchEventInSandbox({ id: "doc", name: "DidSave" }); } - async dispatchWillPrint(detail) { - return this._scripting?.dispatchEventInSandbox({ - id: "doc", - name: "WillPrint" - }); + async dispatchWillPrint() { + if (!this.#scripting) { + return; + } + await this.#willPrintCapability?.promise; + this.#willPrintCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); + try { + await this.#scripting.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } catch (ex) { + this.#willPrintCapability.resolve(); + this.#willPrintCapability = null; + throw ex; + } + await this.#willPrintCapability.promise; } - async dispatchDidPrint(detail) { - return this._scripting?.dispatchEventInSandbox({ + async dispatchDidPrint() { + return this.#scripting?.dispatchEventInSandbox({ id: "doc", name: "DidPrint" }); } - get mouseState() { - return this._mouseState; - } get destroyPromise() { - return this._destroyCapability?.promise || null; + return this.#destroyCapability?.promise || null; } get ready() { - return this._ready; + return this.#ready; } get _internalEvents() { - return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map()); - } - get _domEvents() { - return (0, _pdfjsLib.shadow)(this, "_domEvents", new Map()); + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_internalEvents", new Map()); } get _pageOpenPending() { - return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set()); + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_pageOpenPending", new Set()); } get _visitedPages() { - return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map()); + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_visitedPages", new Map()); } - async _updateFromSandbox(detail) { - const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode; + async #updateFromSandbox(detail) { + const pdfViewer = this.#pdfViewer; + const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode; const { id, siblings, @@ -6977,18 +10060,17 @@ class PDFScriptingManager { console.error(value); break; case "layout": - if (isInPresentationMode) { - return; + if (!isInPresentationMode) { + const modes = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageLayoutToViewerModes)(value); + pdfViewer.spreadMode = modes.spreadMode; } - const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value); - this._pdfViewer.spreadMode = modes.spreadMode; break; case "page-num": - this._pdfViewer.currentPageNumber = value + 1; + pdfViewer.currentPageNumber = value + 1; break; case "print": - await this._pdfViewer.pagesPromise; - this._eventBus.dispatch("print", { + await pdfViewer.pagesPromise; + this.#eventBus.dispatch("print", { source: this }); break; @@ -6996,47 +10078,46 @@ class PDFScriptingManager { console.log(value); break; case "zoom": - if (isInPresentationMode) { - return; + if (!isInPresentationMode) { + pdfViewer.currentScaleValue = value; } - this._pdfViewer.currentScaleValue = value; break; case "SaveAs": - this._eventBus.dispatch("download", { + this.#eventBus.dispatch("download", { source: this }); break; case "FirstPage": - this._pdfViewer.currentPageNumber = 1; + pdfViewer.currentPageNumber = 1; break; case "LastPage": - this._pdfViewer.currentPageNumber = this._pdfViewer.pagesCount; + pdfViewer.currentPageNumber = pdfViewer.pagesCount; break; case "NextPage": - this._pdfViewer.nextPage(); + pdfViewer.nextPage(); break; case "PrevPage": - this._pdfViewer.previousPage(); + pdfViewer.previousPage(); break; case "ZoomViewIn": - if (isInPresentationMode) { - return; + if (!isInPresentationMode) { + pdfViewer.increaseScale(); } - this._pdfViewer.increaseScale(); break; case "ZoomViewOut": - if (isInPresentationMode) { - return; + if (!isInPresentationMode) { + pdfViewer.decreaseScale(); } - this._pdfViewer.decreaseScale(); + break; + case "WillPrintFinished": + this.#willPrintCapability?.resolve(); + this.#willPrintCapability = null; break; } return; } - if (isInPresentationMode) { - if (detail.focus) { - return; - } + if (isInPresentationMode && detail.focus) { + return; } delete detail.id; delete detail.siblings; @@ -7048,31 +10129,31 @@ class PDFScriptingManager { detail })); } else { - this._pdfDocument?.annotationStorage.setValue(elementId, detail); + this.#pdfDocument?.annotationStorage.setValue(elementId, detail); } } } - async _dispatchPageOpen(pageNumber, initialize = false) { - const pdfDocument = this._pdfDocument, + async #dispatchPageOpen(pageNumber, initialize = false) { + const pdfDocument = this.#pdfDocument, visitedPages = this._visitedPages; if (initialize) { - this._closeCapability = (0, _pdfjsLib.createPromiseCapability)(); + this.#closeCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); } - if (!this._closeCapability) { + if (!this.#closeCapability) { return; } - const pageView = this._pdfViewer.getPageView(pageNumber - 1); - if (pageView?.renderingState !== _ui_utils.RenderingStates.FINISHED) { + const pageView = this.#pdfViewer.getPageView(pageNumber - 1); + if (pageView?.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { this._pageOpenPending.add(pageNumber); return; } this._pageOpenPending.delete(pageNumber); const actionsPromise = (async () => { const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); - if (pdfDocument !== this._pdfDocument) { + if (pdfDocument !== this.#pdfDocument) { return; } - await this._scripting?.dispatchEventInSandbox({ + await this.#scripting?.dispatchEventInSandbox({ id: "page", name: "PageOpen", pageNumber, @@ -7081,10 +10162,10 @@ class PDFScriptingManager { })(); visitedPages.set(pageNumber, actionsPromise); } - async _dispatchPageClose(pageNumber) { - const pdfDocument = this._pdfDocument, + async #dispatchPageClose(pageNumber) { + const pdfDocument = this.#pdfDocument, visitedPages = this._visitedPages; - if (!this._closeCapability) { + if (!this.#closeCapability) { return; } if (this._pageOpenPending.has(pageNumber)) { @@ -7096,97 +10177,90 @@ class PDFScriptingManager { } visitedPages.set(pageNumber, null); await actionsPromise; - if (pdfDocument !== this._pdfDocument) { + if (pdfDocument !== this.#pdfDocument) { return; } - await this._scripting?.dispatchEventInSandbox({ + await this.#scripting?.dispatchEventInSandbox({ id: "page", name: "PageClose", pageNumber }); } - async _getDocProperties() { - if (this._docPropertiesLookup) { - return this._docPropertiesLookup(this._pdfDocument); - } - throw new Error("_getDocProperties: Unable to lookup properties."); - } - _createScripting() { - this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)(); - if (this._scripting) { - throw new Error("_createScripting: Scripting already exists."); + #initScripting() { + this.#destroyCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PromiseCapability(); + if (this.#scripting) { + throw new Error("#initScripting: Scripting already exists."); } - if (this._scriptingFactory) { - return this._scriptingFactory.createScripting({ - sandboxBundleSrc: this._sandboxBundleSrc - }); - } - throw new Error("_createScripting: Cannot create scripting."); + return this.#externalServices.createScripting(); } - async _destroyScripting() { - if (!this._scripting) { - this._pdfDocument = null; - this._destroyCapability?.resolve(); + async #destroyScripting() { + if (!this.#scripting) { + this.#pdfDocument = null; + this.#destroyCapability?.resolve(); return; } - if (this._closeCapability) { - await Promise.race([this._closeCapability.promise, new Promise(resolve => { + if (this.#closeCapability) { + await Promise.race([this.#closeCapability.promise, new Promise(resolve => { setTimeout(resolve, 1000); - })]).catch(reason => {}); - this._closeCapability = null; + })]).catch(() => {}); + this.#closeCapability = null; } - this._pdfDocument = null; + this.#pdfDocument = null; try { - await this._scripting.destroySandbox(); - } catch (ex) {} + await this.#scripting.destroySandbox(); + } catch {} + this.#willPrintCapability?.reject(new Error("Scripting destroyed.")); + this.#willPrintCapability = null; for (const [name, listener] of this._internalEvents) { - this._eventBus._off(name, listener); + this.#eventBus._off(name, listener); } this._internalEvents.clear(); - for (const [name, listener] of this._domEvents) { - window.removeEventListener(name, listener, true); - } - this._domEvents.clear(); this._pageOpenPending.clear(); this._visitedPages.clear(); - this._scripting = null; - delete this._mouseState.isDown; - this._ready = false; - this._destroyCapability?.resolve(); + this.#scripting = null; + this.#ready = false; + this.#destroyCapability?.resolve(); } } -exports.PDFScriptingManager = PDFScriptingManager; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 24 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 4487: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFSidebar: () => (/* binding */ PDFSidebar) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFSidebar = void 0; -var _ui_utils = __webpack_require__(1); +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; class PDFSidebar { + #isRTL = false; + #mouseMoveBound = this.#mouseMove.bind(this); + #mouseUpBound = this.#mouseUp.bind(this); + #outerContainerWidth = null; + #width = null; constructor({ elements, - pdfViewer, - pdfThumbnailViewer, eventBus, l10n }) { this.isOpen = false; - this.active = _ui_utils.SidebarView.THUMBS; + this.active = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; this.isInitialViewSet = false; this.isInitialEventDispatched = false; this.onToggled = null; - this.pdfViewer = pdfViewer; - this.pdfThumbnailViewer = pdfThumbnailViewer; + this.onUpdateThumbnails = null; this.outerContainer = elements.outerContainer; this.sidebarContainer = elements.sidebarContainer; this.toggleButton = elements.toggleButton; + this.resizer = elements.resizer; this.thumbnailButton = elements.thumbnailButton; this.outlineButton = elements.outlineButton; this.attachmentsButton = elements.attachmentsButton; @@ -7195,31 +10269,30 @@ class PDFSidebar { this.outlineView = elements.outlineView; this.attachmentsView = elements.attachmentsView; this.layersView = elements.layersView; - this._outlineOptionsContainer = elements.outlineOptionsContainer; this._currentOutlineItemButton = elements.currentOutlineItemButton; this.eventBus = eventBus; - this.l10n = l10n; + this.#isRTL = l10n.getDirection() === "rtl"; this.#addEventListeners(); } reset() { this.isInitialViewSet = false; this.isInitialEventDispatched = false; this.#hideUINotification(true); - this.switchView(_ui_utils.SidebarView.THUMBS); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); this.outlineButton.disabled = false; this.attachmentsButton.disabled = false; this.layersButton.disabled = false; this._currentOutlineItemButton.disabled = true; } get visibleView() { - return this.isOpen ? this.active : _ui_utils.SidebarView.NONE; + return this.isOpen ? this.active : _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE; } - setInitialView(view = _ui_utils.SidebarView.NONE) { + setInitialView(view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE) { if (this.isInitialViewSet) { return; } this.isInitialViewSet = true; - if (view === _ui_utils.SidebarView.NONE || view === _ui_utils.SidebarView.UNKNOWN) { + if (view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE || view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { this.#dispatchEvent(); return; } @@ -7230,29 +10303,29 @@ class PDFSidebar { } switchView(view, forceOpen = false) { const isViewChanged = view !== this.active; - let shouldForceRendering = false; + let forceRendering = false; switch (view) { - case _ui_utils.SidebarView.NONE: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE: if (this.isOpen) { this.close(); } return; - case _ui_utils.SidebarView.THUMBS: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS: if (this.isOpen && isViewChanged) { - shouldForceRendering = true; + forceRendering = true; } break; - case _ui_utils.SidebarView.OUTLINE: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE: if (this.outlineButton.disabled) { return; } break; - case _ui_utils.SidebarView.ATTACHMENTS: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS: if (this.attachmentsButton.disabled) { return; } break; - case _ui_utils.SidebarView.LAYERS: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS: if (this.layersButton.disabled) { return; } @@ -7262,30 +10335,17 @@ class PDFSidebar { return; } this.active = view; - const isThumbs = view === _ui_utils.SidebarView.THUMBS, - isOutline = view === _ui_utils.SidebarView.OUTLINE, - isAttachments = view === _ui_utils.SidebarView.ATTACHMENTS, - isLayers = view === _ui_utils.SidebarView.LAYERS; - this.thumbnailButton.classList.toggle("toggled", isThumbs); - this.outlineButton.classList.toggle("toggled", isOutline); - this.attachmentsButton.classList.toggle("toggled", isAttachments); - this.layersButton.classList.toggle("toggled", isLayers); - this.thumbnailButton.setAttribute("aria-checked", isThumbs); - this.outlineButton.setAttribute("aria-checked", isOutline); - this.attachmentsButton.setAttribute("aria-checked", isAttachments); - this.layersButton.setAttribute("aria-checked", isLayers); - this.thumbnailView.classList.toggle("hidden", !isThumbs); - this.outlineView.classList.toggle("hidden", !isOutline); - this.attachmentsView.classList.toggle("hidden", !isAttachments); - this.layersView.classList.toggle("hidden", !isLayers); - this._outlineOptionsContainer.classList.toggle("hidden", !isOutline); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.thumbnailButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS, this.thumbnailView); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.outlineButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE, this.outlineView); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.attachmentsButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS, this.attachmentsView); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.layersButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS, this.layersView); if (forceOpen && !this.isOpen) { this.open(); return; } - if (shouldForceRendering) { - this.#updateThumbnailViewer(); - this.#forceRendering(); + if (forceRendering) { + this.onUpdateThumbnails(); + this.onToggled(); } if (isViewChanged) { this.#dispatchEvent(); @@ -7296,70 +10356,47 @@ class PDFSidebar { return; } this.isOpen = true; - this.toggleButton.classList.add("toggled"); - this.toggleButton.setAttribute("aria-expanded", "true"); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(this.toggleButton, true); this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); - if (this.active === _ui_utils.SidebarView.THUMBS) { - this.#updateThumbnailViewer(); + if (this.active === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { + this.onUpdateThumbnails(); } - this.#forceRendering(); + this.onToggled(); this.#dispatchEvent(); this.#hideUINotification(); } - close() { + close(evt = null) { if (!this.isOpen) { return; } this.isOpen = false; - this.toggleButton.classList.remove("toggled"); - this.toggleButton.setAttribute("aria-expanded", "false"); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(this.toggleButton, false); this.outerContainer.classList.add("sidebarMoving"); this.outerContainer.classList.remove("sidebarOpen"); - this.#forceRendering(); + this.onToggled(); this.#dispatchEvent(); + if (evt?.detail > 0) { + this.toggleButton.blur(); + } } - toggle() { + toggle(evt = null) { if (this.isOpen) { - this.close(); + this.close(evt); } else { this.open(); } } #dispatchEvent() { - if (this.isInitialViewSet && !this.isInitialEventDispatched) { - this.isInitialEventDispatched = true; + if (this.isInitialViewSet) { + this.isInitialEventDispatched ||= true; } this.eventBus.dispatch("sidebarviewchanged", { source: this, view: this.visibleView }); } - #forceRendering() { - if (this.onToggled) { - this.onToggled(); - } else { - this.pdfViewer.forceRendering(); - this.pdfThumbnailViewer.forceRendering(); - } - } - #updateThumbnailViewer() { - const { - pdfViewer, - pdfThumbnailViewer - } = this; - const pagesCount = pdfViewer.pagesCount; - for (let pageIndex = 0; pageIndex < pagesCount; pageIndex++) { - const pageView = pdfViewer.getPageView(pageIndex); - if (pageView?.renderingState === _ui_utils.RenderingStates.FINISHED) { - const thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); - } - } - pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); - } #showUINotification() { - this.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar_notification2"); - this.l10n.translate(this.toggleButton); + this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-notification-button"); if (!this.isOpen) { this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); } @@ -7369,24 +10406,26 @@ class PDFSidebar { this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); } if (reset) { - this.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar"); - this.l10n.translate(this.toggleButton); + this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-button"); } } #addEventListeners() { this.sidebarContainer.addEventListener("transitionend", evt => { if (evt.target === this.sidebarContainer) { this.outerContainer.classList.remove("sidebarMoving"); + this.eventBus.dispatch("resize", { + source: this + }); } }); - this.toggleButton.addEventListener("click", () => { - this.toggle(); + this.toggleButton.addEventListener("click", evt => { + this.toggle(evt); }); this.thumbnailButton.addEventListener("click", () => { - this.switchView(_ui_utils.SidebarView.THUMBS); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); }); this.outlineButton.addEventListener("click", () => { - this.switchView(_ui_utils.SidebarView.OUTLINE); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE); }); this.outlineButton.addEventListener("dblclick", () => { this.eventBus.dispatch("toggleoutlinetree", { @@ -7394,10 +10433,10 @@ class PDFSidebar { }); }); this.attachmentsButton.addEventListener("click", () => { - this.switchView(_ui_utils.SidebarView.ATTACHMENTS); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS); }); this.layersButton.addEventListener("click", () => { - this.switchView(_ui_utils.SidebarView.LAYERS); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS); }); this.layersButton.addEventListener("dblclick", () => { this.eventBus.dispatch("resetlayers", { @@ -7414,11 +10453,11 @@ class PDFSidebar { if (count) { this.#showUINotification(); } else if (this.active === view) { - this.switchView(_ui_utils.SidebarView.THUMBS); + this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); } }; this.eventBus._on("outlineloaded", evt => { - onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils.SidebarView.OUTLINE); + onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE); evt.currentOutlineItemPromise.then(enabled => { if (!this.isInitialViewSet) { return; @@ -7427,112 +10466,38 @@ class PDFSidebar { }); }); this.eventBus._on("attachmentsloaded", evt => { - onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils.SidebarView.ATTACHMENTS); + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS); }); this.eventBus._on("layersloaded", evt => { - onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils.SidebarView.LAYERS); + onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS); }); this.eventBus._on("presentationmodechanged", evt => { - if (evt.state === _ui_utils.PresentationModeState.NORMAL && this.visibleView === _ui_utils.SidebarView.THUMBS) { - this.#updateThumbnailViewer(); + if (evt.state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL && this.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { + this.onUpdateThumbnails(); } }); - } -} -exports.PDFSidebar = PDFSidebar; - -/***/ }), -/* 25 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFSidebarResizer = void 0; -var _ui_utils = __webpack_require__(1); -const SIDEBAR_WIDTH_VAR = "--sidebar-width"; -const SIDEBAR_MIN_WIDTH = 200; -const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; -class PDFSidebarResizer { - constructor(options, eventBus, l10n) { - this.isRTL = false; - this.sidebarOpen = false; - this._width = null; - this._outerContainerWidth = null; - this._boundEvents = Object.create(null); - this.outerContainer = options.outerContainer; - this.resizer = options.resizer; - this.eventBus = eventBus; - l10n.getDirection().then(dir => { - this.isRTL = dir === "rtl"; - }); - this._addEventListeners(); - } - get outerContainerWidth() { - return this._outerContainerWidth ||= this.outerContainer.clientWidth; - } - _updateWidth(width = 0) { - const maxWidth = Math.floor(this.outerContainerWidth / 2); - if (width > maxWidth) { - width = maxWidth; - } - if (width < SIDEBAR_MIN_WIDTH) { - width = SIDEBAR_MIN_WIDTH; - } - if (width === this._width) { - return false; - } - this._width = width; - _ui_utils.docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); - return true; - } - _mouseMove(evt) { - let width = evt.clientX; - if (this.isRTL) { - width = this.outerContainerWidth - width; - } - this._updateWidth(width); - } - _mouseUp(evt) { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - this.eventBus.dispatch("resize", { - source: this - }); - const _boundEvents = this._boundEvents; - window.removeEventListener("mousemove", _boundEvents.mouseMove); - window.removeEventListener("mouseup", _boundEvents.mouseUp); - } - _addEventListeners() { - const _boundEvents = this._boundEvents; - _boundEvents.mouseMove = this._mouseMove.bind(this); - _boundEvents.mouseUp = this._mouseUp.bind(this); this.resizer.addEventListener("mousedown", evt => { if (evt.button !== 0) { return; } this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - window.addEventListener("mousemove", _boundEvents.mouseMove); - window.addEventListener("mouseup", _boundEvents.mouseUp); - }); - this.eventBus._on("sidebarviewchanged", evt => { - this.sidebarOpen = !!evt?.view; + window.addEventListener("mousemove", this.#mouseMoveBound); + window.addEventListener("mouseup", this.#mouseUpBound); }); this.eventBus._on("resize", evt => { - if (evt?.source !== window) { + if (evt.source !== window) { return; } - this._outerContainerWidth = null; - if (!this._width) { + this.#outerContainerWidth = null; + if (!this.#width) { return; } - if (!this.sidebarOpen) { - this._updateWidth(this._width); + if (!this.isOpen) { + this.#updateWidth(this.#width); return; } this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - const updated = this._updateWidth(this._width); + const updated = this.#updateWidth(this.#width); Promise.resolve().then(() => { this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); if (updated) { @@ -7541,249 +10506,62 @@ class PDFSidebarResizer { }); } }); - }); - } -} -exports.PDFSidebarResizer = PDFSidebarResizer; - -/***/ }), -/* 26 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFThumbnailViewer = void 0; -var _ui_utils = __webpack_require__(1); -var _pdf_thumbnail_view = __webpack_require__(27); -const THUMBNAIL_SCROLL_MARGIN = -19; -const THUMBNAIL_SELECTED_CLASS = "selected"; -class PDFThumbnailViewer { - constructor({ - container, - eventBus, - linkService, - renderingQueue, - l10n, - pageColors - }) { - this.container = container; - this.linkService = linkService; - this.renderingQueue = renderingQueue; - this.l10n = l10n; - this.pageColors = pageColors || null; - if (this.pageColors && !(CSS.supports("color", this.pageColors.background) && CSS.supports("color", this.pageColors.foreground))) { - if (this.pageColors.background || this.pageColors.foreground) { - console.warn("PDFThumbnailViewer: Ignoring `pageColors`-option, since the browser doesn't support the values used."); - } - this.pageColors = null; - } - this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); - this._resetView(); - } - _scrollUpdated() { - this.renderingQueue.renderHighestPriority(); - } - getThumbnail(index) { - return this._thumbnails[index]; - } - _getVisibleThumbs() { - return (0, _ui_utils.getVisibleElements)({ - scrollEl: this.container, - views: this._thumbnails - }); - } - scrollThumbnailIntoView(pageNumber) { - if (!this.pdfDocument) { - return; - } - const thumbnailView = this._thumbnails[pageNumber - 1]; - if (!thumbnailView) { - console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); - return; - } - if (pageNumber !== this._currentPageNumber) { - const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; - prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - } - const { - first, - last, - views - } = this._getVisibleThumbs(); - if (views.length > 0) { - let shouldScroll = false; - if (pageNumber <= first.id || pageNumber >= last.id) { - shouldScroll = true; - } else { - for (const { - id, - percent - } of views) { - if (id !== pageNumber) { - continue; - } - shouldScroll = percent < 100; - break; - } - } - if (shouldScroll) { - (0, _ui_utils.scrollIntoView)(thumbnailView.div, { - top: THUMBNAIL_SCROLL_MARGIN - }); - } - } - this._currentPageNumber = pageNumber; - } - get pagesRotation() { - return this._pagesRotation; - } - set pagesRotation(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error("Invalid thumbnails rotation angle."); - } - if (!this.pdfDocument) { - return; - } - if (this._pagesRotation === rotation) { - return; - } - this._pagesRotation = rotation; - const updateArgs = { - rotation - }; - for (const thumbnail of this._thumbnails) { - thumbnail.update(updateArgs); - } - } - cleanup() { - for (const thumbnail of this._thumbnails) { - if (thumbnail.renderingState !== _ui_utils.RenderingStates.FINISHED) { - thumbnail.reset(); - } - } - _pdf_thumbnail_view.TempImageFactory.destroyCanvas(); - } - _resetView() { - this._thumbnails = []; - this._currentPageNumber = 1; - this._pageLabels = null; - this._pagesRotation = 0; - this.container.textContent = ""; - } - setDocument(pdfDocument) { - if (this.pdfDocument) { - this._cancelRendering(); - this._resetView(); - } - this.pdfDocument = pdfDocument; - if (!pdfDocument) { - return; - } - const firstPagePromise = pdfDocument.getPage(1); - const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); - firstPagePromise.then(firstPdfPage => { - const pagesCount = pdfDocument.numPages; - const viewport = firstPdfPage.getViewport({ - scale: 1 - }); - for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { - const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ - container: this.container, - id: pageNum, - defaultViewport: viewport.clone(), - optionalContentConfigPromise, - linkService: this.linkService, - renderingQueue: this.renderingQueue, - l10n: this.l10n, - pageColors: this.pageColors - }); - this._thumbnails.push(thumbnail); - } - this._thumbnails[0]?.setPdfPage(firstPdfPage); - const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - }).catch(reason => { - console.error("Unable to initialize thumbnail viewer", reason); - }); - } - _cancelRendering() { - for (const thumbnail of this._thumbnails) { - thumbnail.cancelRendering(); - } - } - setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); - } else { - this._pageLabels = labels; - } - for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { - this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); - } - } - async #ensurePdfPageLoaded(thumbView) { - if (thumbView.pdfPage) { - return thumbView.pdfPage; - } - try { - const pdfPage = await this.pdfDocument.getPage(thumbView.id); - if (!thumbView.pdfPage) { - thumbView.setPdfPage(pdfPage); - } - return pdfPage; - } catch (reason) { - console.error("Unable to get page for thumb view", reason); - return null; - } + }); } - #getScrollAhead(visible) { - if (visible.first?.id === 1) { - return true; - } else if (visible.last?.id === this._thumbnails.length) { + get outerContainerWidth() { + return this.#outerContainerWidth ||= this.outerContainer.clientWidth; + } + #updateWidth(width = 0) { + const maxWidth = Math.floor(this.outerContainerWidth / 2); + if (width > maxWidth) { + width = maxWidth; + } + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; + } + if (width === this.#width) { return false; } - return this.scroll.down; + this.#width = width; + _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); + return true; } - forceRendering() { - const visibleThumbs = this._getVisibleThumbs(); - const scrollAhead = this.#getScrollAhead(visibleThumbs); - const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); - if (thumbView) { - this.#ensurePdfPageLoaded(thumbView).then(() => { - this.renderingQueue.renderView(thumbView); - }); - return true; + #mouseMove(evt) { + let width = evt.clientX; + if (this.#isRTL) { + width = this.outerContainerWidth - width; } - return false; + this.#updateWidth(width); + } + #mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + window.removeEventListener("mousemove", this.#mouseMoveBound); + window.removeEventListener("mouseup", this.#mouseUpBound); } } -exports.PDFThumbnailViewer = PDFThumbnailViewer; + /***/ }), -/* 27 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 3346: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFThumbnailView: () => (/* binding */ PDFThumbnailView), +/* harmony export */ TempImageFactory: () => (/* binding */ TempImageFactory) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.TempImageFactory = exports.PDFThumbnailView = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); const DRAW_UPSCALE_FACTOR = 2; const MAX_NUM_SCALING_STEPS = 3; -const THUMBNAIL_CANVAS_BORDER_WIDTH = 1; const THUMBNAIL_WIDTH = 98; class TempImageFactory { static #tempCanvas = null; @@ -7809,16 +10587,15 @@ class TempImageFactory { this.#tempCanvas = null; } } -exports.TempImageFactory = TempImageFactory; class PDFThumbnailView { constructor({ container, + eventBus, id, defaultViewport, optionalContentConfigPromise, linkService, renderingQueue, - l10n, pageColors }) { this.id = id; @@ -7830,23 +10607,16 @@ class PDFThumbnailView { this.pdfPageRotate = defaultViewport.rotation; this._optionalContentConfigPromise = optionalContentConfigPromise || null; this.pageColors = pageColors || null; + this.eventBus = eventBus; this.linkService = linkService; this.renderingQueue = renderingQueue; this.renderTask = null; - this.renderingState = _ui_utils.RenderingStates.INITIAL; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL; this.resume = null; - const pageWidth = this.viewport.width, - pageHeight = this.viewport.height, - pageRatio = pageWidth / pageHeight; - this.canvasWidth = THUMBNAIL_WIDTH; - this.canvasHeight = this.canvasWidth / pageRatio | 0; - this.scale = this.canvasWidth / pageWidth; - this.l10n = l10n; const anchor = document.createElement("a"); anchor.href = linkService.getAnchorUrl("#page=" + id); - this._thumbPageTitle.then(msg => { - anchor.title = msg; - }); + anchor.setAttribute("data-l10n-id", "pdfjs-thumb-page-title"); + anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); anchor.onclick = function () { linkService.goToPage(id); return false; @@ -7856,16 +10626,29 @@ class PDFThumbnailView { div.className = "thumbnail"; div.setAttribute("data-page-number", this.id); this.div = div; - const ring = document.createElement("div"); - ring.className = "thumbnailSelectionRing"; - const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + "px"; - ring.style.height = this.canvasHeight + borderAdjustment + "px"; - this.ring = ring; - div.append(ring); + this.#updateDims(); + const img = document.createElement("div"); + img.className = "thumbnailImage"; + this._placeholderImg = img; + div.append(img); anchor.append(div); container.append(anchor); } + #updateDims() { + const { + width, + height + } = this.viewport; + const ratio = width / height; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / ratio | 0; + this.scale = this.canvasWidth / width; + const { + style + } = this.div; + style.setProperty("--thumbnail-width", `${this.canvasWidth}px`); + style.setProperty("--thumbnail-height", `${this.canvasHeight}px`); + } setPdfPage(pdfPage) { this.pdfPage = pdfPage; this.pdfPageRotate = pdfPage.rotate; @@ -7878,23 +10661,10 @@ class PDFThumbnailView { } reset() { this.cancelRendering(); - this.renderingState = _ui_utils.RenderingStates.INITIAL; - const pageWidth = this.viewport.width, - pageHeight = this.viewport.height, - pageRatio = pageWidth / pageHeight; - this.canvasHeight = this.canvasWidth / pageRatio | 0; - this.scale = this.canvasWidth / pageWidth; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL; this.div.removeAttribute("data-loaded"); - const ring = this.ring; - ring.textContent = ""; - const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + "px"; - ring.style.height = this.canvasHeight + borderAdjustment + "px"; - if (this.canvas) { - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } + this.image?.replaceWith(this._placeholderImg); + this.#updateDims(); if (this.image) { this.image.removeAttribute("src"); delete this.image; @@ -7925,7 +10695,7 @@ class PDFThumbnailView { const ctx = canvas.getContext("2d", { alpha: false }); - const outputScale = new _ui_utils.OutputScale(); + const outputScale = new _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.OutputScale(); canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; @@ -7936,50 +10706,47 @@ class PDFThumbnailView { }; } _convertCanvasToImage(canvas) { - if (this.renderingState !== _ui_utils.RenderingStates.FINISHED) { + if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { throw new Error("_convertCanvasToImage: Rendering has not finished."); } const reducedCanvas = this._reduceImage(canvas); const image = document.createElement("img"); image.className = "thumbnailImage"; - this._thumbPageCanvas.then(msg => { - image.setAttribute("aria-label", msg); - }); - image.style.width = this.canvasWidth + "px"; - image.style.height = this.canvasHeight + "px"; + image.setAttribute("data-l10n-id", "pdfjs-thumb-page-canvas"); + image.setAttribute("data-l10n-args", this.#pageL10nArgs); image.src = reducedCanvas.toDataURL(); this.image = image; this.div.setAttribute("data-loaded", true); - this.ring.append(image); + this._placeholderImg.replaceWith(image); reducedCanvas.width = 0; reducedCanvas.height = 0; } - draw() { - if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + async #finishRenderTask(renderTask, canvas, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + if (error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.RenderingCancelledException) { + return; + } + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; + this._convertCanvasToImage(canvas); + if (error) { + throw error; + } + } + async draw() { + if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL) { console.error("Must be in new state before drawing"); - return Promise.resolve(); + return undefined; } const { pdfPage } = this; if (!pdfPage) { - this.renderingState = _ui_utils.RenderingStates.FINISHED; - return Promise.reject(new Error("pdfPage is not loaded")); + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); } - this.renderingState = _ui_utils.RenderingStates.RUNNING; - const finishRenderTask = async (error = null) => { - if (renderTask === this.renderTask) { - this.renderTask = null; - } - if (error instanceof _pdfjsLib.RenderingCancelledException) { - return; - } - this.renderingState = _ui_utils.RenderingStates.FINISHED; - this._convertCanvasToImage(canvas); - if (error) { - throw error; - } - }; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING; const { ctx, canvas, @@ -7990,9 +10757,9 @@ class PDFThumbnailView { }); const renderContinueCallback = cont => { if (!this.renderingQueue.isHighestPriority(this)) { - this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.PAUSED; this.resume = () => { - this.renderingState = _ui_utils.RenderingStates.RUNNING; + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING; cont(); }; return; @@ -8008,124 +10775,336 @@ class PDFThumbnailView { }; const renderTask = this.renderTask = pdfPage.render(renderContext); renderTask.onContinue = renderContinueCallback; - const resultPromise = renderTask.promise.then(function () { - return finishRenderTask(null); - }, function (error) { - return finishRenderTask(error); - }); + const resultPromise = renderTask.promise.then(() => this.#finishRenderTask(renderTask, canvas), error => this.#finishRenderTask(renderTask, canvas, error)); resultPromise.finally(() => { canvas.width = 0; canvas.height = 0; - const pageCached = this.linkService.isPageCached(this.id); - if (!pageCached) { - this.pdfPage?.cleanup(); + this.eventBus.dispatch("thumbnailrendered", { + source: this, + pageNumber: this.id, + pdfPage: this.pdfPage + }); + }); + return resultPromise; + } + setImage(pageView) { + if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL) { + return; + } + const { + thumbnailCanvas: canvas, + pdfPage, + scale + } = pageView; + if (!canvas) { + return; + } + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + if (scale < this.scale) { + return; + } + this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; + this._convertCanvasToImage(canvas); + } + _reduceImage(img) { + const { + ctx, + canvas + } = this._getPageDrawContext(); + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + return canvas; + } + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + return canvas; + } + get #pageL10nArgs() { + return JSON.stringify({ + page: this.pageLabel ?? this.id + }); + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + this.anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); + if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { + return; + } + this.image?.setAttribute("data-l10n-args", this.#pageL10nArgs); + } +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 3510: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFThumbnailViewer: () => (/* binding */ PDFThumbnailViewer) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3346); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__]); +_pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + pageColors + }) { + this.container = container; + this.eventBus = eventBus; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.pageColors = pageColors || null; + this.scroll = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.watchScroll)(this.container, this._scrollUpdated.bind(this)); + this._resetView(); + } + _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + getThumbnail(index) { + return this._thumbnails[index]; + } + _getVisibleThumbs() { + return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getVisibleElements)({ + scrollEl: this.container, + views: this._thumbnails + }); + } + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; + } + const thumbnailView = this._thumbnails[pageNumber - 1]; + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + } + const { + first, + last, + views + } = this._getVisibleThumbs(); + if (views.length > 0) { + let shouldScroll = false; + if (pageNumber <= first.id || pageNumber >= last.id) { + shouldScroll = true; + } else { + for (const { + id, + percent + } of views) { + if (id !== pageNumber) { + continue; + } + shouldScroll = percent < 100; + break; + } + } + if (shouldScroll) { + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + this._currentPageNumber = pageNumber; + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + if (!this.pdfDocument) { + return; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const updateArgs = { + rotation + }; + for (const thumbnail of this._thumbnails) { + thumbnail.update(updateArgs); + } + } + cleanup() { + for (const thumbnail of this._thumbnails) { + if (thumbnail.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { + thumbnail.reset(); + } + } + _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__.TempImageFactory.destroyCanvas(); + } + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this.container.textContent = ""; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); + this._resetView(); + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + firstPagePromise.then(firstPdfPage => { + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 + }); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__.PDFThumbnailView({ + container: this.container, + eventBus: this.eventBus, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + pageColors: this.pageColors + }); + this._thumbnails.push(thumbnail); } + this._thumbnails[0]?.setPdfPage(firstPdfPage); + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); }); - return resultPromise; } - setImage(pageView) { - if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { - return; + _cancelRendering() { + for (const thumbnail of this._thumbnails) { + thumbnail.cancelRendering(); } - const { - thumbnailCanvas: canvas, - pdfPage, - scale - } = pageView; - if (!canvas) { + } + setPageLabels(labels) { + if (!this.pdfDocument) { return; } - if (!this.pdfPage) { - this.setPdfPage(pdfPage); + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; } - if (scale < this.scale) { - return; + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); } - this.renderingState = _ui_utils.RenderingStates.FINISHED; - this._convertCanvasToImage(canvas); } - _reduceImage(img) { - const { - ctx, - canvas - } = this._getPageDrawContext(); - if (img.width <= 2 * canvas.width) { - ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); - return canvas; - } - let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; - let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; - const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); - while (reducedWidth > img.width || reducedHeight > img.height) { - reducedWidth >>= 1; - reducedHeight >>= 1; + async #ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return thumbView.pdfPage; } - reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); - while (reducedWidth > 2 * canvas.width) { - reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); - reducedWidth >>= 1; - reducedHeight >>= 1; + try { + const pdfPage = await this.pdfDocument.getPage(thumbView.id); + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for thumb view", reason); + return null; } - ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); - return canvas; } - get _thumbPageTitle() { - return this.l10n.get("thumb_page_title", { - page: this.pageLabel ?? this.id - }); - } - get _thumbPageCanvas() { - return this.l10n.get("thumb_page_canvas", { - page: this.pageLabel ?? this.id - }); + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this._thumbnails.length) { + return false; + } + return this.scroll.down; } - setPageLabel(label) { - this.pageLabel = typeof label === "string" ? label : null; - this._thumbPageTitle.then(msg => { - this.anchor.title = msg; - }); - if (this.renderingState !== _ui_utils.RenderingStates.FINISHED) { - return; + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + const scrollAhead = this.#getScrollAhead(visibleThumbs); + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); + if (thumbView) { + this.#ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + return true; } - this._thumbPageCanvas.then(msg => { - this.image?.setAttribute("aria-label", msg); - }); + return false; } } -exports.PDFThumbnailView = PDFThumbnailView; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 28 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0; -var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(1); -var _annotation_editor_layer_builder = __webpack_require__(29); -var _annotation_layer_builder = __webpack_require__(31); -var _l10n_utils = __webpack_require__(30); -var _pdf_page_view = __webpack_require__(32); -var _pdf_rendering_queue = __webpack_require__(22); -var _pdf_link_service = __webpack_require__(3); -var _struct_tree_layer_builder = __webpack_require__(34); -var _text_highlighter = __webpack_require__(35); -var _text_layer_builder = __webpack_require__(36); -var _xfa_layer_builder = __webpack_require__(37); + +/***/ 9290: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFViewer: () => (/* binding */ PDFViewer), +/* harmony export */ PagesCountLimit: () => (/* binding */ PagesCountLimit) +/* harmony export */ }); +/* unused harmony export PDFPageViewBuffer */ +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +/* harmony import */ var web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7910); +/* harmony import */ var _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6732); +/* harmony import */ var _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5119); +/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3234); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__, _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__, _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); + + + + + + const DEFAULT_CACHE_SIZE = 10; -const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; const PagesCountLimit = { FORCE_SCROLL_MODE_PAGE: 15000, FORCE_LAZY_PAGE_INIT: 7500, PAUSE_EAGER_PAGE_INIT: 250 }; -exports.PagesCountLimit = PagesCountLimit; function isValidAnnotationEditorMode(mode) { - return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE; + return Object.values(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType).includes(mode) && mode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; } class PDFPageViewBuffer { #buf = new Set(); @@ -8175,67 +11154,87 @@ class PDFPageViewBuffer { this.#buf.delete(firstView); } } -exports.PDFPageViewBuffer = PDFPageViewBuffer; class PDFViewer { #buffer = null; - #annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + #altTextManager = null; + #annotationEditorHighlightColors = null; + #annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; #annotationEditorUIManager = null; - #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; + #annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; + #containerTopLeft = null; + #copyCallbackBound = null; #enablePermissions = false; + #getAllTextInProgress = false; + #hiddenCopyElement = null; + #interruptCopyCondition = false; #previousContainerHeight = 0; + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); #scrollModePageState = null; #onVisibilityChange = null; + #scaleTimeoutId = null; + #textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; constructor(options) { - const viewerVersion = '3.0.279'; - if (_pdfjsLib.version !== viewerVersion) { - throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); + const viewerVersion = '4.0.379'; + if (pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.version !== viewerVersion) { + throw new Error(`The API version "${pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.version}" does not match the Viewer version "${viewerVersion}".`); } this.container = options.container; this.viewer = options.viewer || options.container.firstElementChild; - if (!(this.container?.tagName.toUpperCase() === "DIV" && this.viewer?.tagName.toUpperCase() === "DIV")) { + if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "DIV") { throw new Error("Invalid `container` and/or `viewer` option."); } if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { throw new Error("The `container` must be absolutely positioned."); } + this.#resizeObserver.observe(this.container); this.eventBus = options.eventBus; - this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); + this.linkService = options.linkService || new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__.SimpleLinkService(); this.downloadManager = options.downloadManager || null; this.findController = options.findController || null; + this.#altTextManager = options.altTextManager || null; + if (this.findController) { + this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber); + } this._scriptingManager = options.scriptingManager || null; - this.removePageBorders = options.removePageBorders || false; - this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; - this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; - this.#annotationEditorMode = options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE; + this.#textLayerMode = options.textLayerMode ?? _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; + this.#annotationEditorMode = options.annotationEditorMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; + this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null; this.imageResourcesPath = options.imageResourcesPath || ""; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; - this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.removePageBorders = options.removePageBorders || false; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; this.maxCanvasPixels = options.maxCanvasPixels; - this.l10n = options.l10n || _l10n_utils.NullL10n; + this.l10n = options.l10n || web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__.NullL10n; this.#enablePermissions = options.enablePermissions || false; this.pageColors = options.pageColors || null; - if (this.pageColors && !(CSS.supports("color", this.pageColors.background) && CSS.supports("color", this.pageColors.foreground))) { - if (this.pageColors.background || this.pageColors.foreground) { - console.warn("PDFViewer: Ignoring `pageColors`-option, since the browser doesn't support the values used."); - } - this.pageColors = null; - } this.defaultRenderingQueue = !options.renderingQueue; if (this.defaultRenderingQueue) { - this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.renderingQueue = new _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__.PDFRenderingQueue(); this.renderingQueue.setViewer(this); } else { this.renderingQueue = options.renderingQueue; } - this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); - this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + this.scroll = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.watchScroll)(this.container, this._scrollUpdate.bind(this)); + this.presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.UNKNOWN; this._onBeforeDraw = this._onAfterDraw = null; this._resetView(); if (this.removePageBorders) { this.viewer.classList.add("removePageBorders"); } - this.updateContainerHeightCss(); + this.#updateContainerHeightCss(); + this.eventBus._on("thumbnailrendered", ({ + pageNumber, + pdfPage + }) => { + const pageView = this._pages[pageNumber - 1]; + if (!this.#buffer.has(pageView)) { + pdfPage?.cleanup(); + } + }); + if (this.l10n === web_l10n_utils__WEBPACK_IMPORTED_MODULE_2__.NullL10n) { + this.l10n.translate(this.container); + } } get pagesCount() { return this._pages.length; @@ -8243,16 +11242,14 @@ class PDFViewer { getPageView(index) { return this._pages[index]; } + getCachedPageViews() { + return new Set(this.#buffer); + } get pageViewsReady() { - if (!this._pagesCapability.settled) { - return false; - } - return this._pages.every(function (pageView) { - return pageView?.pdfPage; - }); + return this._pagesCapability.settled && this._pages.every(pageView => pageView?.pdfPage); } get renderForms() { - return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS; + return this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; } get enableScripting() { return !!this._scriptingManager; @@ -8313,7 +11310,7 @@ class PDFViewer { } } get currentScale() { - return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + return this._currentScale !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE ? this._currentScale : _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; } set currentScale(val) { if (isNaN(val)) { @@ -8322,7 +11319,9 @@ class PDFViewer { if (!this.pdfDocument) { return; } - this._setScale(val, false); + this.#setScale(val, { + noScroll: false + }); } get currentScaleValue() { return this._currentScaleValue; @@ -8331,13 +11330,15 @@ class PDFViewer { if (!this.pdfDocument) { return; } - this._setScale(val, false); + this.#setScale(val, { + noScroll: false + }); } get pagesRotation() { return this._pagesRotation; } set pagesRotation(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { + if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidRotation)(rotation)) { throw new Error("Invalid pages rotation angle."); } if (!this.pdfDocument) { @@ -8352,14 +11353,13 @@ class PDFViewer { } this._pagesRotation = rotation; const pageNumber = this._currentPageNumber; - const updateArgs = { + this.refresh(true, { rotation - }; - for (const pageView of this._pages) { - pageView.update(updateArgs); - } + }); if (this._currentScaleValue) { - this._setScale(this._currentScaleValue, true); + this.#setScale(this._currentScaleValue, { + noScroll: true + }); } this.eventBus.dispatch("rotationchanging", { source: this, @@ -8379,23 +11379,52 @@ class PDFViewer { get pagesPromise() { return this.pdfDocument ? this._pagesCapability.promise : null; } + get _layerProperties() { + const self = this; + return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_layerProperties", { + get annotationEditorUIManager() { + return self.#annotationEditorUIManager; + }, + get annotationStorage() { + return self.pdfDocument?.annotationStorage; + }, + get downloadManager() { + return self.downloadManager; + }, + get enableScripting() { + return !!self._scriptingManager; + }, + get fieldObjectsPromise() { + return self.pdfDocument?.getFieldObjects(); + }, + get findController() { + return self.findController; + }, + get hasJSActionsPromise() { + return self.pdfDocument?.hasJSActions(); + }, + get linkService() { + return self.linkService; + } + }); + } #initializePermissions(permissions) { const params = { annotationEditorMode: this.#annotationEditorMode, annotationMode: this.#annotationMode, - textLayerMode: this.textLayerMode + textLayerMode: this.#textLayerMode }; if (!permissions) { return params; } - if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { - this.viewer.classList.add(ENABLE_PERMISSIONS_CLASS); + if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.COPY) && this.#textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE) { + params.textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS; } - if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) { - params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE; + if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.MODIFY_CONTENTS)) { + params.annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; } - if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) { - params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE; + if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS) { + params.annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE; } return params; } @@ -8416,6 +11445,63 @@ class PDFViewer { }); return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]); } + async getAllText() { + const texts = []; + const buffer = []; + for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) { + if (this.#interruptCopyCondition) { + return null; + } + buffer.length = 0; + const page = await this.pdfDocument.getPage(pageNum); + const { + items + } = await page.getTextContent(); + for (const item of items) { + if (item.str) { + buffer.push(item.str); + } + if (item.hasEOL) { + buffer.push("\n"); + } + } + texts.push((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.removeNullCharacters)(buffer.join(""))); + } + return texts.join("\n"); + } + #copyCallback(textLayerMode, event) { + const selection = document.getSelection(); + const { + focusNode, + anchorNode + } = selection; + if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) { + if (this.#getAllTextInProgress || textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS) { + event.preventDefault(); + event.stopPropagation(); + return; + } + this.#getAllTextInProgress = true; + const savedCursor = this.container.style.cursor; + this.container.style.cursor = "wait"; + const interruptCopy = ev => this.#interruptCopyCondition = ev.key === "Escape"; + window.addEventListener("keydown", interruptCopy); + this.getAllText().then(async text => { + if (text !== null) { + await navigator.clipboard.writeText(text); + } + }).catch(reason => { + console.warn(`Something goes wrong when extracting the text: ${reason.message}`); + }).finally(() => { + this.#getAllTextInProgress = false; + this.#interruptCopyCondition = false; + window.removeEventListener("keydown", interruptCopy); + this.container.style.cursor = savedCursor; + }); + event.preventDefault(); + event.stopPropagation(); + } + } setDocument(pdfDocument) { if (this.pdfDocument) { this.eventBus.dispatch("pagesdestroy", { @@ -8434,14 +11520,13 @@ class PDFViewer { if (!pdfDocument) { return; } - const isPureXfa = pdfDocument.isPureXfa; const pagesCount = pdfDocument.numPages; const firstPagePromise = pdfDocument.getPage(1); const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve(); if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); - const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE; + const mode = this._scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE; this.eventBus.dispatch("scrollmodechanged", { source: this, mode @@ -8487,30 +11572,39 @@ class PDFViewer { annotationMode, textLayerMode } = this.#initializePermissions(permissions); - if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + if (textLayerMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.DISABLE) { + const element = this.#hiddenCopyElement = document.createElement("div"); + element.id = "hiddenCopyElement"; + this.viewer.before(element); + } + if (annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE) { const mode = annotationEditorMode; - if (isPureXfa) { + if (pdfDocument.isPureXfa) { console.warn("Warning: XFA-editing is not implemented."); } else if (isValidAnnotationEditorMode(mode)) { - this.#annotationEditorUIManager = new _pdfjsLib.AnnotationEditorUIManager(this.container, this.eventBus); - if (mode !== _pdfjsLib.AnnotationEditorType.NONE) { + this.#annotationEditorUIManager = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorUIManager(this.container, this.viewer, this.#altTextManager, this.eventBus, pdfDocument, this.pageColors, this.#annotationEditorHighlightColors); + this.eventBus.dispatch("annotationeditoruimanager", { + source: this, + uiManager: this.#annotationEditorUIManager + }); + if (mode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { this.#annotationEditorUIManager.updateMode(mode); } } else { console.error(`Invalid AnnotationEditor mode: ${mode}`); } } - const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer; + const viewerElement = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE ? null : this.viewer; const scale = this.currentScale; const viewport = firstPdfPage.getViewport({ - scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + scale: scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS }); - const textLayerFactory = textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !isPureXfa ? this : null; - const annotationLayerFactory = annotationMode !== _pdfjsLib.AnnotationMode.DISABLE ? this : null; - const xfaLayerFactory = isPureXfa ? this : null; - const annotationEditorLayerFactory = this.#annotationEditorUIManager ? this : null; + this.viewer.style.setProperty("--scale-factor", viewport.scale); + if (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas") { + this.viewer.style.setProperty("--hcm-highlight-filter", pdfDocument.filterFactory.addHighlightHCMFilter("CanvasText", "Canvas", "HighlightText", "Highlight")); + } for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { - const pageView = new _pdf_page_view.PDFPageView({ + const pageView = new _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__.PDFPageView({ container: viewerElement, eventBus: this.eventBus, id: pageNum, @@ -8518,20 +11612,14 @@ class PDFViewer { defaultViewport: viewport.clone(), optionalContentConfigPromise, renderingQueue: this.renderingQueue, - textLayerFactory, textLayerMode, - annotationLayerFactory, annotationMode, - xfaLayerFactory, - annotationEditorLayerFactory, - textHighlighterFactory: this, - structTreeLayerFactory: this, imageResourcesPath: this.imageResourcesPath, - renderer: this.renderer, - useOnlyCssZoom: this.useOnlyCssZoom, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, maxCanvasPixels: this.maxCanvasPixels, pageColors: this.pageColors, - l10n: this.l10n + l10n: this.l10n, + layerProperties: this._layerProperties }); this._pages.push(pageView); } @@ -8540,14 +11628,18 @@ class PDFViewer { firstPageView.setPdfPage(firstPdfPage); this.linkService.cachePageRef(1, firstPdfPage.ref); } - if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { this.#ensurePageViewVisible(); - } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + } else if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { this._updateSpreadMode(); } this.#onePageRenderedOrForceFetch().then(async () => { this.findController?.setDocument(pdfDocument); this._scriptingManager?.setDocument(pdfDocument); + if (this.#hiddenCopyElement) { + this.#copyCallbackBound = this.#copyCallback.bind(this, textLayerMode); + document.addEventListener("copy", this.#copyCallbackBound); + } if (this.#annotationEditorUIManager) { this.eventBus.dispatch("annotationeditormodechanged", { source: this, @@ -8624,19 +11716,19 @@ class PDFViewer { _resetView() { this._pages = []; this._currentPageNumber = 1; - this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScale = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE; this._currentScaleValue = null; this._pageLabels = null; this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); this._location = null; this._pagesRotation = 0; this._optionalContentConfigPromise = null; - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._scrollMode = _ui_utils.ScrollMode.VERTICAL; - this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN; - this._spreadMode = _ui_utils.SpreadMode.NONE; + this._firstPageCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PromiseCapability(); + this._onePageRenderedCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PromiseCapability(); + this._pagesCapability = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PromiseCapability(); + this._scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL; + this._previousScrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.UNKNOWN; + this._spreadMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE; this.#scrollModePageState = { previousPageNumber: 1, scrollDown: true, @@ -8657,10 +11749,15 @@ class PDFViewer { this.viewer.textContent = ""; this._updateScrollMode(); this.viewer.removeAttribute("lang"); - this.viewer.classList.remove(ENABLE_PERMISSIONS_CLASS); + if (this.#hiddenCopyElement) { + document.removeEventListener("copy", this.#copyCallbackBound); + this.#copyCallbackBound = null; + this.#hiddenCopyElement.remove(); + this.#hiddenCopyElement = null; + } } #ensurePageViewVisible() { - if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) { + if (this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); } const pageNumber = this._currentPageNumber, @@ -8668,7 +11765,7 @@ class PDFViewer { viewer = this.viewer; viewer.textContent = ""; state.pages.length = 0; - if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) { + if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && !this.isInPresentationMode) { const pageView = this._pages[pageNumber - 1]; viewer.append(pageView.div); state.pages.push(pageView); @@ -8715,8 +11812,10 @@ class PDFViewer { div, id } = pageView; - if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + if (this._currentPageNumber !== id) { this._setCurrentPageNumber(id); + } + if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { this.#ensurePageViewVisible(); this.update(); } @@ -8727,19 +11826,26 @@ class PDFViewer { scrollLeft, clientWidth } = this.container; - if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { + if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { pageSpot = { left: 0, top: 0 }; } } - (0, _ui_utils.scrollIntoView)(div, pageSpot); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.scrollIntoView)(div, pageSpot); + if (!this._currentScaleValue && this._location) { + this._location = null; + } } #isSameScale(newScale) { return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; } - _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) { + #setScaleUpdatePages(newScale, newValue, { + noScroll = false, + preset = false, + drawingDelay = -1 + }) { this._currentScaleValue = newValue.toString(); if (this.#isSameScale(newScale)) { if (preset) { @@ -8751,12 +11857,17 @@ class PDFViewer { } return; } - _ui_utils.docStyle.setProperty("--scale-factor", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); - const updateArgs = { - scale: newScale - }; - for (const pageView of this._pages) { - pageView.update(updateArgs); + this.viewer.style.setProperty("--scale-factor", newScale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS); + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + this.refresh(true, { + scale: newScale, + drawingDelay: postponeDrawing ? drawingDelay : -1 + }); + if (postponeDrawing) { + this.#scaleTimeoutId = setTimeout(() => { + this.#scaleTimeoutId = null; + this.refresh(); + }, drawingDelay); } this._currentScale = newScale; if (!noScroll) { @@ -8782,33 +11893,36 @@ class PDFViewer { if (this.defaultRenderingQueue) { this.update(); } - this.updateContainerHeightCss(); } - get _pageWidthScaleFactor() { - if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) { + get #pageWidthScaleFactor() { + if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL) { return 2; } return 1; } - _setScale(value, noScroll = false) { + #setScale(value, options) { let scale = parseFloat(value); if (scale > 0) { - this._setScaleUpdatePages(scale, value, noScroll, false); + options.preset = false; + this.#setScaleUpdatePages(scale, value, options); } else { const currentPage = this._pages[this._currentPageNumber - 1]; if (!currentPage) { return; } - let hPadding = _ui_utils.SCROLLBAR_PADDING, - vPadding = _ui_utils.VERTICAL_PADDING; + let hPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SCROLLBAR_PADDING, + vPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.VERTICAL_PADDING; if (this.isInPresentationMode) { hPadding = vPadding = 4; + if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { + hPadding *= 2; + } } else if (this.removePageBorders) { hPadding = vPadding = 0; - } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) { + } else if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL) { [hPadding, vPadding] = [vPadding, hPadding]; } - const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor; + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor; const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; switch (value) { case "page-actual": @@ -8824,20 +11938,23 @@ class PDFViewer { scale = Math.min(pageWidthScale, pageHeightScale); break; case "auto": - const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); - scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); + const horizontalScale = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_AUTO_SCALE, horizontalScale); break; default: - console.error(`_setScale: "${value}" is an unknown zoom value.`); + console.error(`#setScale: "${value}" is an unknown zoom value.`); return; } - this._setScaleUpdatePages(scale, value, noScroll, true); + options.preset = true; + this.#setScaleUpdatePages(scale, value, options); } } #resetCurrentPageView() { const pageView = this._pages[this._currentPageNumber - 1]; if (this.isInPresentationMode) { - this._setScale(this._currentScaleValue, true); + this.#setScale(this._currentScaleValue, { + noScroll: true + }); } this.#scrollIntoView(pageView); } @@ -8876,8 +11993,8 @@ class PDFViewer { widthScale, heightScale; const changeOrientation = pageView.rotation % 180 !== 0; - const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; - const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; let scale = 0; switch (destArray[1].name) { case "XYZ": @@ -8914,10 +12031,13 @@ class PDFViewer { y = destArray[3]; width = destArray[4] - x; height = destArray[5] - y; - const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; - const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; - widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; - heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + let hPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SCROLLBAR_PADDING, + vPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.VERTICAL_PADDING; + if (this.removePageBorders) { + hPadding = vPadding = 0; + } + widthScale = (this.container.clientWidth - hPadding) / width / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); break; default: @@ -8927,8 +12047,8 @@ class PDFViewer { if (!ignoreDestinationZoom) { if (scale && scale !== this._currentScale) { this.currentScaleValue = scale; - } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { - this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } else if (this._currentScale === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE) { + this.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_VALUE; } } if (scale === "page-fit" && !destArray[4]) { @@ -8980,7 +12100,7 @@ class PDFViewer { const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); this.#buffer.resize(newCacheSize, visible.ids); this.renderingQueue.renderHighestPriority(visible); - const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL); + const isSimpleLayout = this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE || this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL); const currentId = this._currentPageNumber; let stillFullyVisible = false; for (const page of visiblePages) { @@ -9009,10 +12129,10 @@ class PDFViewer { return getComputedStyle(this.container).direction === "rtl"; } get isInPresentationMode() { - return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + return this.presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN; } get isChangingPresentationMode() { - return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + return this.presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.CHANGING; } get isHorizontalScrollbarEnabled() { return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; @@ -9021,10 +12141,10 @@ class PDFViewer { return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; } _getVisiblePages() { - const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, - horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL, + const views = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, + horizontal = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL, rtl = horizontal && this._isContainerRtl; - return (0, _ui_utils.getVisibleElements)({ + return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.getVisibleElements)({ scrollEl: this.container, views, sortByVisibility: true, @@ -9032,30 +12152,9 @@ class PDFViewer { rtl }); } - isPageVisible(pageNumber) { - if (!this.pdfDocument) { - return false; - } - if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { - console.error(`isPageVisible: "${pageNumber}" is not a valid page.`); - return false; - } - return this._getVisiblePages().ids.has(pageNumber); - } - isPageCached(pageNumber) { - if (!this.pdfDocument) { - return false; - } - if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { - console.error(`isPageCached: "${pageNumber}" is not a valid page.`); - return false; - } - const pageView = this._pages[pageNumber - 1]; - return this.#buffer.has(pageView); - } cleanup() { for (const pageView of this._pages) { - if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) { + if (pageView.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED) { pageView.reset(); } } @@ -9087,135 +12186,28 @@ class PDFViewer { if (visible.first?.id === 1) { return true; } else if (visible.last?.id === this.pagesCount) { - return false; - } - switch (this._scrollMode) { - case _ui_utils.ScrollMode.PAGE: - return this.#scrollModePageState.scrollDown; - case _ui_utils.ScrollMode.HORIZONTAL: - return this.scroll.right; - } - return this.scroll.down; - } - #toggleLoadingIconSpinner(visibleIds) { - for (const id of visibleIds) { - const pageView = this._pages[id - 1]; - pageView?.toggleLoadingIconSpinner(true); - } - for (const pageView of this.#buffer) { - if (visibleIds.has(pageView.id)) { - continue; - } - pageView.toggleLoadingIconSpinner(false); - } - } - forceRendering(currentlyVisiblePages) { - const visiblePages = currentlyVisiblePages || this._getVisiblePages(); - const scrollAhead = this.#getScrollAhead(visiblePages); - const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL; - const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); - this.#toggleLoadingIconSpinner(visiblePages.ids); - if (pageView) { - this.#ensurePdfPageLoaded(pageView).then(() => { - this.renderingQueue.renderView(pageView); - }); - return true; - } - return false; - } - createTextLayerBuilder({ - textLayerDiv, - pageIndex, - viewport, - eventBus, - highlighter, - accessibilityManager = null - }) { - return new _text_layer_builder.TextLayerBuilder({ - textLayerDiv, - eventBus, - pageIndex, - viewport, - highlighter, - accessibilityManager - }); - } - createTextHighlighter({ - pageIndex, - eventBus - }) { - return new _text_highlighter.TextHighlighter({ - eventBus, - pageIndex, - findController: this.isInPresentationMode ? null : this.findController - }); - } - createAnnotationLayerBuilder({ - pageDiv, - pdfPage, - annotationStorage = this.pdfDocument?.annotationStorage, - imageResourcesPath = "", - renderForms = true, - l10n = _l10n_utils.NullL10n, - enableScripting = this.enableScripting, - hasJSActionsPromise = this.pdfDocument?.hasJSActions(), - mouseState = this._scriptingManager?.mouseState, - fieldObjectsPromise = this.pdfDocument?.getFieldObjects(), - annotationCanvasMap = null, - accessibilityManager = null - }) { - return new _annotation_layer_builder.AnnotationLayerBuilder({ - pageDiv, - pdfPage, - annotationStorage, - imageResourcesPath, - renderForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - l10n, - enableScripting, - hasJSActionsPromise, - mouseState, - fieldObjectsPromise, - annotationCanvasMap, - accessibilityManager - }); - } - createAnnotationEditorLayerBuilder({ - uiManager = this.#annotationEditorUIManager, - pageDiv, - pdfPage, - accessibilityManager = null, - l10n, - annotationStorage = this.pdfDocument?.annotationStorage - }) { - return new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({ - uiManager, - pageDiv, - pdfPage, - annotationStorage, - accessibilityManager, - l10n - }); - } - createXfaLayerBuilder({ - pageDiv, - pdfPage, - annotationStorage = this.pdfDocument?.annotationStorage - }) { - return new _xfa_layer_builder.XfaLayerBuilder({ - pageDiv, - pdfPage, - annotationStorage, - linkService: this.linkService - }); + return false; + } + switch (this._scrollMode) { + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE: + return this.#scrollModePageState.scrollDown; + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL: + return this.scroll.right; + } + return this.scroll.down; } - createStructTreeLayerBuilder({ - pdfPage - }) { - return new _struct_tree_layer_builder.StructTreeLayerBuilder({ - pdfPage - }); + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + const scrollAhead = this.#getScrollAhead(visiblePages); + const preRenderExtra = this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); + if (pageView) { + this.#ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + return true; + } + return false; } get hasEqualPageSizes() { const firstPageView = this._pages[0]; @@ -9228,21 +12220,25 @@ class PDFViewer { return true; } getPagesOverview() { + let initialOrientation; return this._pages.map(pageView => { const viewport = pageView.pdfPage.getViewport({ scale: 1 }); - if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) { + const orientation = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isPortraitOrientation)(viewport); + if (initialOrientation === undefined) { + initialOrientation = orientation; + } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) { return { - width: viewport.width, - height: viewport.height, - rotation: viewport.rotation + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 }; } return { - width: viewport.height, - height: viewport.width, - rotation: (viewport.rotation - 90) % 360 + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation }; }); } @@ -9267,13 +12263,9 @@ class PDFViewer { return; } this._optionalContentConfigPromise = promise; - const updateArgs = { + this.refresh(false, { optionalContentConfigPromise: promise - }; - for (const pageView of this._pages) { - pageView.update(updateArgs); - } - this.update(); + }); this.eventBus.dispatch("optionalcontentconfigchanged", { source: this, promise @@ -9286,7 +12278,7 @@ class PDFViewer { if (this._scrollMode === mode) { return; } - if (!(0, _ui_utils.isValidScrollMode)(mode)) { + if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidScrollMode)(mode)) { throw new Error(`Invalid scroll mode: ${mode}`); } if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { @@ -9303,18 +12295,20 @@ class PDFViewer { _updateScrollMode(pageNumber = null) { const scrollMode = this._scrollMode, viewer = this.viewer; - viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); - viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.WRAPPED); if (!this.pdfDocument || !pageNumber) { return; } - if (scrollMode === _ui_utils.ScrollMode.PAGE) { + if (scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { this.#ensurePageViewVisible(); - } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) { + } else if (this._previousScrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { this._updateSpreadMode(); } if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this._setScale(this._currentScaleValue, true); + this.#setScale(this._currentScaleValue, { + noScroll: true + }); } this._setCurrentPageNumber(pageNumber, true); this.update(); @@ -9326,7 +12320,7 @@ class PDFViewer { if (this._spreadMode === mode) { return; } - if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidSpreadMode)(mode)) { throw new Error(`Invalid spread mode: ${mode}`); } this._spreadMode = mode; @@ -9342,11 +12336,11 @@ class PDFViewer { } const viewer = this.viewer, pages = this._pages; - if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { this.#ensurePageViewVisible(); } else { viewer.textContent = ""; - if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { for (const pageView of this._pages) { viewer.append(pageView.div); } @@ -9370,14 +12364,16 @@ class PDFViewer { return; } if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this._setScale(this._currentScaleValue, true); + this.#setScale(this._currentScaleValue, { + noScroll: true + }); } this._setCurrentPageNumber(pageNumber, true); this.update(); } _getPageAdvance(currentPageNumber, previous = false) { switch (this._scrollMode) { - case _ui_utils.ScrollMode.WRAPPED: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.WRAPPED: { const { views @@ -9439,14 +12435,14 @@ class PDFViewer { } break; } - case _ui_utils.ScrollMode.HORIZONTAL: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL: { break; } - case _ui_utils.ScrollMode.PAGE: - case _ui_utils.ScrollMode.VERTICAL: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE: + case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL: { - if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { break; } const parity = this._spreadMode - 1; @@ -9496,35 +12492,76 @@ class PDFViewer { this.currentPageNumber = Math.max(currentPageNumber - advance, 1); return true; } - increaseScale(steps = 1) { + increaseScale({ + drawingDelay, + scaleFactor, + steps + } = {}) { + if (!this.pdfDocument) { + return; + } let newScale = this._currentScale; - do { - newScale = (newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); - newScale = Math.ceil(newScale * 10) / 10; - newScale = Math.min(_ui_utils.MAX_SCALE, newScale); - } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE); - this.currentScaleValue = newScale; + if (scaleFactor > 1) { + newScale = Math.round(newScale * scaleFactor * 100) / 100; + } else { + steps ??= 1; + do { + newScale = Math.ceil((newScale * _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; + } while (--steps > 0 && newScale < _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE); + } + this.#setScale(Math.min(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE, newScale), { + noScroll: false, + drawingDelay + }); } - decreaseScale(steps = 1) { + decreaseScale({ + drawingDelay, + scaleFactor, + steps + } = {}) { + if (!this.pdfDocument) { + return; + } let newScale = this._currentScale; - do { - newScale = (newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); - newScale = Math.floor(newScale * 10) / 10; - newScale = Math.max(_ui_utils.MIN_SCALE, newScale); - } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE); - this.currentScaleValue = newScale; - } - updateContainerHeightCss() { - const height = this.container.clientHeight; + if (scaleFactor > 0 && scaleFactor < 1) { + newScale = Math.round(newScale * scaleFactor * 100) / 100; + } else { + steps ??= 1; + do { + newScale = Math.floor((newScale / _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; + } while (--steps > 0 && newScale > _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE); + } + this.#setScale(Math.max(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE, newScale), { + noScroll: false, + drawingDelay + }); + } + #updateContainerHeightCss(height = this.container.clientHeight) { if (height !== this.#previousContainerHeight) { this.#previousContainerHeight = height; - _ui_utils.docStyle.setProperty("--viewer-container-height", `${height}px`); + _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.docStyle.setProperty("--viewer-container-height", `${height}px`); + } + } + #resizeObserverCallback(entries) { + for (const entry of entries) { + if (entry.target === this.container) { + this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize)); + this.#containerTopLeft = null; + break; + } } } + get containerTopLeft() { + return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; + } get annotationEditorMode() { - return this.#annotationEditorUIManager ? this.#annotationEditorMode : _pdfjsLib.AnnotationEditorType.DISABLE; + return this.#annotationEditorUIManager ? this.#annotationEditorMode : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; } - set annotationEditorMode(mode) { + set annotationEditorMode({ + mode, + editId = null, + isFromKeyboard = false + }) { if (!this.#annotationEditorUIManager) { throw new Error(`The AnnotationEditor is not enabled.`); } @@ -9542,7 +12579,7 @@ class PDFViewer { source: this, mode }); - this.#annotationEditorUIManager.updateMode(mode); + this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard); } set annotationEditorParams({ type, @@ -9553,1083 +12590,717 @@ class PDFViewer { } this.#annotationEditorUIManager.updateParams(type, value); } - refresh() { + refresh(noUpdate = false, updateArgs = Object.create(null)) { if (!this.pdfDocument) { return; } - const updateArgs = {}; for (const pageView of this._pages) { pageView.update(updateArgs); } - this.update(); + if (this.#scaleTimeoutId !== null) { + clearTimeout(this.#scaleTimeoutId); + this.#scaleTimeoutId = null; + } + if (!noUpdate) { + this.update(); + } } } -exports.PDFViewer = PDFViewer; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 29 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 1869: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AbortException: () => (/* binding */ AbortException), +/* harmony export */ AnnotationEditorLayer: () => (/* binding */ AnnotationEditorLayer), +/* harmony export */ AnnotationEditorParamsType: () => (/* binding */ AnnotationEditorParamsType), +/* harmony export */ AnnotationEditorType: () => (/* binding */ AnnotationEditorType), +/* harmony export */ AnnotationEditorUIManager: () => (/* binding */ AnnotationEditorUIManager), +/* harmony export */ AnnotationLayer: () => (/* binding */ AnnotationLayer), +/* harmony export */ AnnotationMode: () => (/* binding */ AnnotationMode), +/* harmony export */ ColorPicker: () => (/* binding */ ColorPicker), +/* harmony export */ DOMSVGFactory: () => (/* binding */ DOMSVGFactory), +/* harmony export */ DrawLayer: () => (/* binding */ DrawLayer), +/* harmony export */ FeatureTest: () => (/* binding */ FeatureTest), +/* harmony export */ GlobalWorkerOptions: () => (/* binding */ GlobalWorkerOptions), +/* harmony export */ InvalidPDFException: () => (/* binding */ InvalidPDFException), +/* harmony export */ MissingPDFException: () => (/* binding */ MissingPDFException), +/* harmony export */ PDFDateString: () => (/* binding */ PDFDateString), +/* harmony export */ PDFWorker: () => (/* binding */ PDFWorker), +/* harmony export */ PasswordResponses: () => (/* binding */ PasswordResponses), +/* harmony export */ PermissionFlag: () => (/* binding */ PermissionFlag), +/* harmony export */ PixelsPerInch: () => (/* binding */ PixelsPerInch), +/* harmony export */ PromiseCapability: () => (/* binding */ PromiseCapability), +/* harmony export */ RenderingCancelledException: () => (/* binding */ RenderingCancelledException), +/* harmony export */ UnexpectedResponseException: () => (/* binding */ UnexpectedResponseException), +/* harmony export */ XfaLayer: () => (/* binding */ XfaLayer), +/* harmony export */ build: () => (/* binding */ build), +/* harmony export */ createValidAbsoluteUrl: () => (/* binding */ createValidAbsoluteUrl), +/* harmony export */ fetchData: () => (/* binding */ fetchData), +/* harmony export */ getDocument: () => (/* binding */ getDocument), +/* harmony export */ getFilenameFromUrl: () => (/* binding */ getFilenameFromUrl), +/* harmony export */ getPdfFilenameFromUrl: () => (/* binding */ getPdfFilenameFromUrl), +/* harmony export */ getXfaPageViewport: () => (/* binding */ getXfaPageViewport), +/* harmony export */ isDataScheme: () => (/* binding */ isDataScheme), +/* harmony export */ isPdfFile: () => (/* binding */ isPdfFile), +/* harmony export */ noContextMenu: () => (/* binding */ noContextMenu), +/* harmony export */ normalizeUnicode: () => (/* binding */ normalizeUnicode), +/* harmony export */ renderTextLayer: () => (/* binding */ renderTextLayer), +/* harmony export */ setLayerDimensions: () => (/* binding */ setLayerDimensions), +/* harmony export */ shadow: () => (/* binding */ shadow), +/* harmony export */ updateTextLayer: () => (/* binding */ updateTextLayer), +/* harmony export */ version: () => (/* binding */ version) +/* harmony export */ }); +/* unused harmony exports CMapCompressionType, ImageKind, OPS, Outliner, PDFDataRangeTransport, Util, VerbosityLevel */ +if (!globalThis.pdfjsLib) { + await globalThis.pdfjsLibPromise; +} +const { + AbortException, + AnnotationEditorLayer, + AnnotationEditorParamsType, + AnnotationEditorType, + AnnotationEditorUIManager, + AnnotationLayer, + AnnotationMode, + build, + CMapCompressionType, + ColorPicker, + createValidAbsoluteUrl, + DOMSVGFactory, + DrawLayer, + FeatureTest, + fetchData, + getDocument, + getFilenameFromUrl, + getPdfFilenameFromUrl, + getXfaPageViewport, + GlobalWorkerOptions, + ImageKind, + InvalidPDFException, + isDataScheme, + isPdfFile, + MissingPDFException, + noContextMenu, + normalizeUnicode, + OPS, + Outliner, + PasswordResponses, + PDFDataRangeTransport, + PDFDateString, + PDFWorker, + PermissionFlag, + PixelsPerInch, + PromiseCapability, + RenderingCancelledException, + renderTextLayer, + setLayerDimensions, + shadow, + UnexpectedResponseException, + updateTextLayer, + Util, + VerbosityLevel, + version, + XfaLayer +} = globalThis.pdfjsLib; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }, 1); +/***/ }), -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.AnnotationEditorLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(5); -var _l10n_utils = __webpack_require__(30); -class AnnotationEditorLayerBuilder { - #uiManager; - constructor(options) { - this.pageDiv = options.pageDiv; - this.pdfPage = options.pdfPage; - this.annotationStorage = options.annotationStorage || null; - this.accessibilityManager = options.accessibilityManager; - this.l10n = options.l10n || _l10n_utils.NullL10n; - this.annotationEditorLayer = null; - this.div = null; - this._cancelled = false; - this.#uiManager = options.uiManager; - } - async render(viewport, intent = "display") { - if (intent !== "display") { - return; - } - if (this._cancelled) { - return; - } - const clonedViewport = viewport.clone({ - dontFlip: true - }); - if (this.div) { - this.annotationEditorLayer.update({ - viewport: clonedViewport - }); - this.show(); - return; +/***/ 216: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ BasePreferences: () => (/* binding */ BasePreferences) +/* harmony export */ }); +/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8961); + +class BasePreferences { + #defaults = Object.freeze({ + "annotationEditorMode": 0, + "annotationMode": 2, + "cursorToolOnLoad": 0, + "defaultZoomDelay": 400, + "defaultZoomValue": "", + "disablePageLabels": false, + "enableHighlightEditor": false, + "enablePermissions": false, + "enablePrintAutoRotate": true, + "enableScripting": true, + "externalLinkTarget": 0, + "highlightEditorColors": "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", + "historyUpdateUrl": false, + "ignoreDestinationZoom": false, + "forcePageColors": false, + "pageColorsBackground": "Canvas", + "pageColorsForeground": "CanvasText", + "pdfBugEnabled": false, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false, + "enableXfa": true, + "viewerCssTheme": 0 + }); + #prefs = Object.create(null); + #initializedPromise = null; + constructor() { + if (this.constructor === BasePreferences) { + throw new Error("Cannot initialize BasePreferences."); } - this.div = document.createElement("div"); - this.div.className = "annotationEditorLayer"; - this.div.tabIndex = 0; - this.pageDiv.append(this.div); - this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({ - uiManager: this.#uiManager, - div: this.div, - annotationStorage: this.annotationStorage, - accessibilityManager: this.accessibilityManager, - pageIndex: this.pdfPage._pageIndex, - l10n: this.l10n, - viewport: clonedViewport + this.#initializedPromise = this._readFromStorage(this.#defaults).then(({ + browserPrefs, + prefs + }) => { + const BROWSER_PREFS = { + "canvasMaxAreaInBytes": -1, + "isInAutomation": false, + "supportsDocumentFonts": true, + "supportsIntegratedFind": false, + "supportsMouseWheelZoomCtrlKey": true, + "supportsMouseWheelZoomMetaKey": true, + "supportsPinchToZoom": true + }; + const options = Object.create(null); + for (const [name, defaultVal] of Object.entries(BROWSER_PREFS)) { + const prefVal = browserPrefs?.[name]; + options[name] = typeof prefVal === typeof defaultVal ? prefVal : defaultVal; + } + for (const [name, defaultVal] of Object.entries(this.#defaults)) { + const prefVal = prefs?.[name]; + options[name] = this.#prefs[name] = typeof prefVal === typeof defaultVal ? prefVal : defaultVal; + } + _app_options_js__WEBPACK_IMPORTED_MODULE_0__.AppOptions.setAll(options, true); }); - const parameters = { - viewport: clonedViewport, - div: this.div, - annotations: null, - intent - }; - this.annotationEditorLayer.render(parameters); - } - cancel() { - this._cancelled = true; - this.destroy(); - } - hide() { - if (!this.div) { - return; - } - this.div.hidden = true; - } - show() { - if (!this.div) { - return; - } - this.div.hidden = false; - } - destroy() { - if (!this.div) { - return; - } - this.pageDiv = null; - this.annotationEditorLayer.destroy(); - this.div.remove(); } -} -exports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder; - -/***/ }), -/* 30 */ -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.NullL10n = void 0; -exports.fixupLangCode = fixupLangCode; -exports.getL10nFallback = getL10nFallback; -const DEFAULT_L10N_STRINGS = { - of_pages: "of {{pagesCount}}", - page_of_pages: "({{pageNumber}} of {{pagesCount}})", - document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)", - document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)", - document_properties_date_string: "{{date}}, {{time}}", - document_properties_page_size_unit_inches: "in", - document_properties_page_size_unit_millimeters: "mm", - document_properties_page_size_orientation_portrait: "portrait", - document_properties_page_size_orientation_landscape: "landscape", - document_properties_page_size_name_a3: "A3", - document_properties_page_size_name_a4: "A4", - document_properties_page_size_name_letter: "Letter", - document_properties_page_size_name_legal: "Legal", - document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})", - document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})", - document_properties_linearized_yes: "Yes", - document_properties_linearized_no: "No", - additional_layers: "Additional Layers", - page_landmark: "Page {{page}}", - thumb_page_title: "Page {{page}}", - thumb_page_canvas: "Thumbnail of Page {{page}}", - find_reached_top: "Reached top of document, continued from bottom", - find_reached_bottom: "Reached end of document, continued from top", - "find_match_count[one]": "{{current}} of {{total}} match", - "find_match_count[other]": "{{current}} of {{total}} matches", - "find_match_count_limit[one]": "More than {{limit}} match", - "find_match_count_limit[other]": "More than {{limit}} matches", - find_not_found: "Phrase not found", - page_scale_width: "Page Width", - page_scale_fit: "Page Fit", - page_scale_auto: "Automatic Zoom", - page_scale_actual: "Actual Size", - page_scale_percent: "{{scale}}%", - loading: "Loading…", - loading_error: "An error occurred while loading the PDF.", - invalid_file_error: "Invalid or corrupted PDF file.", - missing_file_error: "Missing PDF file.", - unexpected_response_error: "Unexpected server response.", - rendering_error: "An error occurred while rendering the page.", - printing_not_supported: "Warning: Printing is not fully supported by this browser.", - printing_not_ready: "Warning: The PDF is not fully loaded for printing.", - web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts.", - free_text2_default_content: "Start typing…", - editor_free_text2_aria_label: "Text Editor", - editor_ink2_aria_label: "Draw Editor", - editor_ink_canvas_aria_label: "User-created image" -}; -{ - DEFAULT_L10N_STRINGS.print_progress_percent = "{{progress}}%"; -} -function getL10nFallback(key, args) { - switch (key) { - case "find_match_count": - key = `find_match_count[${args.total === 1 ? "one" : "other"}]`; - break; - case "find_match_count_limit": - key = `find_match_count_limit[${args.limit === 1 ? "one" : "other"}]`; - break; + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); } - return DEFAULT_L10N_STRINGS[key] || ""; -} -const PARTIAL_LANG_CODES = { - en: "en-US", - es: "es-ES", - fy: "fy-NL", - ga: "ga-IE", - gu: "gu-IN", - hi: "hi-IN", - hy: "hy-AM", - nb: "nb-NO", - ne: "ne-NP", - nn: "nn-NO", - pa: "pa-IN", - pt: "pt-PT", - sv: "sv-SE", - zh: "zh-CN" -}; -function fixupLangCode(langCode) { - return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode; -} -function formatL10nValue(text, args) { - if (!args) { - return text; + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); } - return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { - return name in args ? args[name] : "{{" + name + "}}"; - }); -} -const NullL10n = { - async getLanguage() { - return "en-us"; - }, - async getDirection() { - return "ltr"; - }, - async get(key, args = null, fallback = getL10nFallback(key, args)) { - return formatL10nValue(fallback, args); - }, - async translate(element) {} -}; -exports.NullL10n = NullL10n; - -/***/ }), -/* 31 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.AnnotationLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(5); -var _l10n_utils = __webpack_require__(30); -class AnnotationLayerBuilder { - constructor({ - pageDiv, - pdfPage, - linkService, - downloadManager, - annotationStorage = null, - imageResourcesPath = "", - renderForms = true, - l10n = _l10n_utils.NullL10n, - enableScripting = false, - hasJSActionsPromise = null, - fieldObjectsPromise = null, - mouseState = null, - annotationCanvasMap = null, - accessibilityManager = null - }) { - this.pageDiv = pageDiv; - this.pdfPage = pdfPage; - this.linkService = linkService; - this.downloadManager = downloadManager; - this.imageResourcesPath = imageResourcesPath; - this.renderForms = renderForms; - this.l10n = l10n; - this.annotationStorage = annotationStorage; - this.enableScripting = enableScripting; - this._hasJSActionsPromise = hasJSActionsPromise; - this._fieldObjectsPromise = fieldObjectsPromise; - this._mouseState = mouseState; - this._annotationCanvasMap = annotationCanvasMap; - this._accessibilityManager = accessibilityManager; - this.div = null; - this._cancelled = false; + async reset() { + await this.#initializedPromise; + const prefs = this.#prefs; + this.#prefs = Object.create(null); + return this._writeToStorage(this.#defaults).catch(reason => { + this.#prefs = prefs; + throw reason; + }); } - async render(viewport, intent = "display") { - const [annotations, hasJSActions = false, fieldObjects = null] = await Promise.all([this.pdfPage.getAnnotations({ - intent - }), this._hasJSActionsPromise, this._fieldObjectsPromise]); - if (this._cancelled || annotations.length === 0) { - return; - } - const parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: this.div, - annotations, - page: this.pdfPage, - imageResourcesPath: this.imageResourcesPath, - renderForms: this.renderForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - annotationStorage: this.annotationStorage, - enableScripting: this.enableScripting, - hasJSActions, - fieldObjects, - mouseState: this._mouseState, - annotationCanvasMap: this._annotationCanvasMap, - accessibilityManager: this._accessibilityManager - }; - if (this.div) { - _pdfjsLib.AnnotationLayer.update(parameters); - } else { - this.div = document.createElement("div"); - this.div.className = "annotationLayer"; - this.pageDiv.append(this.div); - parameters.div = this.div; - _pdfjsLib.AnnotationLayer.render(parameters); - this.l10n.translate(this.div); + async set(name, value) { + await this.#initializedPromise; + const defaultValue = this.#defaults[name], + prefs = this.#prefs; + if (defaultValue === undefined) { + throw new Error(`Set preference: "${name}" is undefined.`); + } else if (value === undefined) { + throw new Error("Set preference: no value is specified."); } + const valueType = typeof value, + defaultType = typeof defaultValue; + if (valueType !== defaultType) { + if (valueType === "number" && defaultType === "string") { + value = value.toString(); + } else { + throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); + } + } else if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); + } + this.#prefs[name] = value; + return this._writeToStorage(this.#prefs).catch(reason => { + this.#prefs = prefs; + throw reason; + }); } - cancel() { - this._cancelled = true; - } - hide() { - if (!this.div) { - return; + async get(name) { + await this.#initializedPromise; + const defaultValue = this.#defaults[name]; + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); } - this.div.hidden = true; + return this.#prefs[name] ?? defaultValue; + } + get initializedPromise() { + return this.#initializedPromise; } } -exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + /***/ }), -/* 32 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 4552: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getXfaHtmlForPrinting: () => (/* binding */ getXfaHtmlForPrinting) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3234); +/* harmony import */ var _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8012); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__]); +([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFPageView = void 0; -var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(1); -var _app_options = __webpack_require__(2); -var _l10n_utils = __webpack_require__(30); -var _text_accessibility = __webpack_require__(33); -const MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216; -class PDFPageView { - #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; - #useThumbnailCanvas = { - initialOptionalContent: true, - regularAnnotations: true - }; - constructor(options) { - const container = options.container; - const defaultViewport = options.defaultViewport; - this.id = options.id; - this.renderingId = "page" + this.id; - this.pdfPage = null; - this.pageLabel = null; - this.rotation = 0; - this.scale = options.scale || _ui_utils.DEFAULT_SCALE; - this.viewport = defaultViewport; - this.pdfPageRotate = defaultViewport.rotation; - this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; - this.hasRestrictedScaling = false; - this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; - this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; - this.imageResourcesPath = options.imageResourcesPath || ""; - this.useOnlyCssZoom = options.useOnlyCssZoom || false; - this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; - this.pageColors = options.pageColors || null; - this.eventBus = options.eventBus; - this.renderingQueue = options.renderingQueue; - this.textLayerFactory = options.textLayerFactory; - this.annotationLayerFactory = options.annotationLayerFactory; - this.annotationEditorLayerFactory = options.annotationEditorLayerFactory; - this.xfaLayerFactory = options.xfaLayerFactory; - this.textHighlighter = options.textHighlighterFactory?.createTextHighlighter({ - pageIndex: this.id - 1, - eventBus: this.eventBus - }); - this.structTreeLayerFactory = options.structTreeLayerFactory; - this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.l10n = options.l10n || _l10n_utils.NullL10n; - this.paintTask = null; - this.paintedViewportMap = new WeakMap(); - this.renderingState = _ui_utils.RenderingStates.INITIAL; - this.resume = null; - this._renderError = null; - this._isStandalone = !this.renderingQueue?.hasViewer(); - this._annotationCanvasMap = null; - this.annotationLayer = null; - this.annotationEditorLayer = null; - this.textLayer = null; - this.zoomLayer = null; - this.xfaLayer = null; - this.structTreeLayer = null; - const div = document.createElement("div"); - div.className = "page"; - div.style.width = Math.floor(this.viewport.width) + "px"; - div.style.height = Math.floor(this.viewport.height) + "px"; - div.setAttribute("data-page-number", this.id); - div.setAttribute("role", "region"); - this.l10n.get("page_landmark", { - page: this.id - }).then(msg => { - div.setAttribute("aria-label", msg); + + +function getXfaHtmlForPrinting(printContainer, pdfDocument) { + const xfaHtml = pdfDocument.allXfaHtml; + const linkService = new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_1__.SimpleLinkService(); + const scale = Math.round(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; + for (const xfaPage of xfaHtml.children) { + const page = document.createElement("div"); + page.className = "xfaPrintedPage"; + printContainer.append(page); + const builder = new _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__.XfaLayerBuilder({ + pdfPage: null, + annotationStorage: pdfDocument.annotationStorage, + linkService, + xfaHtml: xfaPage }); - this.div = div; - container?.append(div); - if (this._isStandalone) { - const { - optionalContentConfigPromise - } = options; - if (optionalContentConfigPromise) { - optionalContentConfigPromise.then(optionalContentConfig => { - if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { - return; - } - this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; - }); - } - } - } - setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, - rotation: totalRotation + const viewport = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.getXfaPageViewport)(xfaPage, { + scale }); - this.reset(); + builder.render(viewport, "print"); + page.append(builder.div); } - destroy() { +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 1544: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SecondaryToolbar: () => (/* binding */ SecondaryToolbar) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); +/* harmony import */ var _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9290); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__]); +_pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + + +class SecondaryToolbar { + #opts; + constructor(options, eventBus) { + this.#opts = options; + const buttons = [{ + element: options.presentationModeButton, + eventName: "presentationmode", + close: true + }, { + element: options.printButton, + eventName: "print", + close: true + }, { + element: options.downloadButton, + eventName: "download", + close: true + }, { + element: options.viewBookmarkButton, + eventName: null, + close: true + }, { + element: options.firstPageButton, + eventName: "firstpage", + close: true + }, { + element: options.lastPageButton, + eventName: "lastpage", + close: true + }, { + element: options.pageRotateCwButton, + eventName: "rotatecw", + close: false + }, { + element: options.pageRotateCcwButton, + eventName: "rotateccw", + close: false + }, { + element: options.cursorSelectToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT + }, + close: true + }, { + element: options.cursorHandToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND + }, + close: true + }, { + element: options.scrollPageButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE + }, + close: true + }, { + element: options.scrollVerticalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL + }, + close: true + }, { + element: options.scrollHorizontalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL + }, + close: true + }, { + element: options.scrollWrappedButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.WRAPPED + }, + close: true + }, { + element: options.spreadNoneButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE + }, + close: true + }, { + element: options.spreadOddButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.ODD + }, + close: true + }, { + element: options.spreadEvenButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.EVEN + }, + close: true + }, { + element: options.documentPropertiesButton, + eventName: "documentproperties", + close: true + }]; + buttons.push({ + element: options.openFileButton, + eventName: "openfile", + close: true + }); + this.eventBus = eventBus; + this.opened = false; + this.#bindListeners(buttons); this.reset(); - this.pdfPage?.cleanup(); - } - async _renderAnnotationLayer() { - let error = null; - try { - await this.annotationLayer.render(this.viewport, "display"); - } catch (ex) { - console.error(`_renderAnnotationLayer: "${ex}".`); - error = ex; - } finally { - this.eventBus.dispatch("annotationlayerrendered", { - source: this, - pageNumber: this.id, - error - }); - } - } - async _renderAnnotationEditorLayer() { - let error = null; - try { - await this.annotationEditorLayer.render(this.viewport, "display"); - } catch (ex) { - console.error(`_renderAnnotationEditorLayer: "${ex}".`); - error = ex; - } finally { - this.eventBus.dispatch("annotationeditorlayerrendered", { - source: this, - pageNumber: this.id, - error - }); - } - } - async _renderXfaLayer() { - let error = null; - try { - const result = await this.xfaLayer.render(this.viewport, "display"); - if (result?.textDivs && this.textHighlighter) { - this._buildXfaTextContentItems(result.textDivs); - } - } catch (ex) { - console.error(`_renderXfaLayer: "${ex}".`); - error = ex; - } finally { - this.eventBus.dispatch("xfalayerrendered", { - source: this, - pageNumber: this.id, - error - }); - } } - async _buildXfaTextContentItems(textDivs) { - const text = await this.pdfPage.getTextContent(); - const items = []; - for (const item of text.items) { - items.push(item.str); - } - this.textHighlighter.setTextMapping(textDivs, items); - this.textHighlighter.enable(); + get isOpen() { + return this.opened; } - _resetZoomLayer(removeFromDOM = false) { - if (!this.zoomLayer) { - return; - } - const zoomLayerCanvas = this.zoomLayer.firstChild; - this.paintedViewportMap.delete(zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - if (removeFromDOM) { - this.zoomLayer.remove(); - } - this.zoomLayer = null; + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + this.#updateUIState(); } - reset({ - keepZoomLayer = false, - keepAnnotationLayer = false, - keepAnnotationEditorLayer = false, - keepXfaLayer = false - } = {}) { - this.cancelRendering({ - keepAnnotationLayer, - keepAnnotationEditorLayer, - keepXfaLayer + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + this.#updateUIState(); + } + reset() { + this.pageNumber = 0; + this.pagesCount = 0; + this.#updateUIState(); + this.#scrollModeChanged({ + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL }); - this.renderingState = _ui_utils.RenderingStates.INITIAL; - const div = this.div; - div.style.width = Math.floor(this.viewport.width) + "px"; - div.style.height = Math.floor(this.viewport.height) + "px"; - const childNodes = div.childNodes, - zoomLayerNode = keepZoomLayer && this.zoomLayer || null, - annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, - annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, - xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null; - for (let i = childNodes.length - 1; i >= 0; i--) { - const node = childNodes[i]; - switch (node) { - case zoomLayerNode: - case annotationLayerNode: - case annotationEditorLayerNode: - case xfaLayerNode: - continue; - } - node.remove(); - } - div.removeAttribute("data-loaded"); - if (annotationLayerNode) { - this.annotationLayer.hide(); - } - if (annotationEditorLayerNode) { - this.annotationEditorLayer.hide(); - } else { - this.annotationEditorLayer?.destroy(); - } - if (xfaLayerNode) { - this.xfaLayer.hide(); - } - if (!zoomLayerNode) { - if (this.canvas) { - this.paintedViewportMap.delete(this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - this._resetZoomLayer(); - } - if (this.svg) { - this.paintedViewportMap.delete(this.svg); - delete this.svg; - } - this.loadingIconDiv = document.createElement("div"); - this.loadingIconDiv.className = "loadingIcon notVisible"; - if (this._isStandalone) { - this.toggleLoadingIconSpinner(true); - } - this.loadingIconDiv.setAttribute("role", "img"); - this.l10n.get("loading").then(msg => { - this.loadingIconDiv?.setAttribute("aria-label", msg); + this.#spreadModeChanged({ + mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE }); - div.append(this.loadingIconDiv); } - update({ - scale = 0, - rotation = null, - optionalContentConfigPromise = null - }) { - this.scale = scale || this.scale; - if (typeof rotation === "number") { - this.rotation = rotation; - } - if (optionalContentConfigPromise instanceof Promise) { - this._optionalContentConfigPromise = optionalContentConfigPromise; - optionalContentConfigPromise.then(optionalContentConfig => { - if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { - return; + #updateUIState() { + const { + firstPageButton, + lastPageButton, + pageRotateCwButton, + pageRotateCcwButton + } = this.#opts; + firstPageButton.disabled = this.pageNumber <= 1; + lastPageButton.disabled = this.pageNumber >= this.pagesCount; + pageRotateCwButton.disabled = this.pagesCount === 0; + pageRotateCcwButton.disabled = this.pagesCount === 0; + } + #bindListeners(buttons) { + const { + eventBus + } = this; + const { + toggleButton + } = this.#opts; + toggleButton.addEventListener("click", this.toggle.bind(this)); + for (const { + element, + eventName, + close, + eventDetails + } of buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + eventBus.dispatch(eventName, { + source: this, + ...eventDetails + }); } - this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; - }); - } - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, - rotation: totalRotation - }); - if (this._isStandalone) { - _ui_utils.docStyle.setProperty("--scale-factor", this.viewport.scale); - } - if (this.svg) { - this.cssTransform({ - target: this.svg, - redrawAnnotationLayer: true, - redrawAnnotationEditorLayer: true, - redrawXfaLayer: true - }); - this.eventBus.dispatch("pagerendered", { - source: this, - pageNumber: this.id, - cssTransform: true, - timestamp: performance.now(), - error: this._renderError - }); - return; - } - let isScalingRestricted = false; - if (this.canvas && this.maxCanvasPixels > 0) { - const outputScale = this.outputScale; - if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { - isScalingRestricted = true; - } - } - if (this.canvas) { - if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { - this.cssTransform({ - target: this.canvas, - redrawAnnotationLayer: true, - redrawAnnotationEditorLayer: true, - redrawXfaLayer: true - }); - this.eventBus.dispatch("pagerendered", { + if (close) { + this.close(); + } + eventBus.dispatch("reporttelemetry", { source: this, - pageNumber: this.id, - cssTransform: true, - timestamp: performance.now(), - error: this._renderError + details: { + type: "buttons", + data: { + id: element.id + } + } }); - return; - } - if (!this.zoomLayer && !this.canvas.hidden) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = "absolute"; - } - } - if (this.zoomLayer) { - this.cssTransform({ - target: this.zoomLayer.firstChild }); } - this.reset({ - keepZoomLayer: true, - keepAnnotationLayer: true, - keepAnnotationEditorLayer: true, - keepXfaLayer: true - }); - } - cancelRendering({ - keepAnnotationLayer = false, - keepAnnotationEditorLayer = false, - keepXfaLayer = false - } = {}) { - if (this.paintTask) { - this.paintTask.cancel(); - this.paintTask = null; - } - this.resume = null; - if (this.textLayer) { - this.textLayer.cancel(); - this.textLayer = null; - } - if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - this._annotationCanvasMap = null; - } - if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { - this.annotationEditorLayer.cancel(); - this.annotationEditorLayer = null; - } - if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { - this.xfaLayer.cancel(); - this.xfaLayer = null; - this.textHighlighter?.disable(); - } - if (this._onTextLayerRendered) { - this.eventBus._off("textlayerrendered", this._onTextLayerRendered); - this._onTextLayerRendered = null; - } + eventBus._on("cursortoolchanged", this.#cursorToolChanged.bind(this)); + eventBus._on("scrollmodechanged", this.#scrollModeChanged.bind(this)); + eventBus._on("spreadmodechanged", this.#spreadModeChanged.bind(this)); } - cssTransform({ - target, - redrawAnnotationLayer = false, - redrawAnnotationEditorLayer = false, - redrawXfaLayer = false + #cursorToolChanged({ + tool }) { - const width = this.viewport.width; - const height = this.viewport.height; - const div = this.div; - target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; - target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; - const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; - const absRotation = Math.abs(relativeRotation); - let scaleX = 1, - scaleY = 1; - if (absRotation === 90 || absRotation === 270) { - scaleX = height / width; - scaleY = width / height; - } - target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; - if (this.textLayer) { - const textLayerViewport = this.textLayer.viewport; - const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; - const textAbsRotation = Math.abs(textRelativeRotation); - let scale = width / textLayerViewport.width; - if (textAbsRotation === 90 || textAbsRotation === 270) { - scale = width / textLayerViewport.height; - } - const textLayerDiv = this.textLayer.textLayerDiv; - let transX, transY; - switch (textAbsRotation) { - case 0: - transX = transY = 0; - break; - case 90: - transX = 0; - transY = "-" + textLayerDiv.style.height; - break; - case 180: - transX = "-" + textLayerDiv.style.width; - transY = "-" + textLayerDiv.style.height; - break; - case 270: - transX = "-" + textLayerDiv.style.width; - transY = 0; - break; - default: - console.error("Bad rotation value."); - break; - } - textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`; - textLayerDiv.style.transformOrigin = "0% 0%"; - } - if (redrawAnnotationLayer && this.annotationLayer) { - this._renderAnnotationLayer(); - } - if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { - this._renderAnnotationEditorLayer(); + const { + cursorSelectToolButton, + cursorHandToolButton + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(cursorSelectToolButton, tool === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(cursorHandToolButton, tool === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND); + } + #scrollModeChanged({ + mode + }) { + const { + scrollPageButton, + scrollVerticalButton, + scrollHorizontalButton, + scrollWrappedButton, + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollPageButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollVerticalButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollHorizontalButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollWrappedButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.WRAPPED); + const forceScrollModePage = this.pagesCount > _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__.PagesCountLimit.FORCE_SCROLL_MODE_PAGE; + scrollPageButton.disabled = forceScrollModePage; + scrollVerticalButton.disabled = forceScrollModePage; + scrollHorizontalButton.disabled = forceScrollModePage; + scrollWrappedButton.disabled = forceScrollModePage; + const isHorizontal = mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL; + spreadNoneButton.disabled = isHorizontal; + spreadOddButton.disabled = isHorizontal; + spreadEvenButton.disabled = isHorizontal; + } + #spreadModeChanged({ + mode + }) { + const { + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadNoneButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadOddButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.ODD); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadEvenButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.EVEN); + } + open() { + if (this.opened) { + return; } - if (redrawXfaLayer && this.xfaLayer) { - this._renderXfaLayer(); + this.opened = true; + const { + toggleButton, + toolbar + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(toggleButton, true, toolbar); + } + close() { + if (!this.opened) { + return; } + this.opened = false; + const { + toggleButton, + toolbar + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(toggleButton, false, toolbar); } - get width() { - return this.viewport.width; + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } } - get height() { - return this.viewport.height; +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 7498: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ StructTreeLayerBuilder: () => (/* binding */ StructTreeLayerBuilder) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); + +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; +class StructTreeLayerBuilder { + #treeDom = undefined; + get renderingDone() { + return this.#treeDom !== undefined; } - getPagePoint(x, y) { - return this.viewport.convertToPdfPoint(x, y); + render(structTree) { + if (this.#treeDom !== undefined) { + return this.#treeDom; + } + const treeDom = this.#walk(structTree); + treeDom?.classList.add("structTree"); + return this.#treeDom = treeDom; } - toggleLoadingIconSpinner(viewVisible = false) { - this.loadingIconDiv?.classList.toggle("notVisible", !viewVisible); + hide() { + if (this.#treeDom && !this.#treeDom.hidden) { + this.#treeDom.hidden = true; + } } - draw() { - if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { - console.error("Must be in new state before drawing"); - this.reset(); + show() { + if (this.#treeDom?.hidden) { + this.#treeDom.hidden = false; } + } + #setAttributes(structElement, htmlElement) { const { - div, - pdfPage - } = this; - if (!pdfPage) { - this.renderingState = _ui_utils.RenderingStates.FINISHED; - if (this.loadingIconDiv) { - this.loadingIconDiv.remove(); - delete this.loadingIconDiv; - } - return Promise.reject(new Error("pdfPage is not loaded")); - } - this.renderingState = _ui_utils.RenderingStates.RUNNING; - const canvasWrapper = document.createElement("div"); - canvasWrapper.style.width = div.style.width; - canvasWrapper.style.height = div.style.height; - canvasWrapper.classList.add("canvasWrapper"); - const lastDivBeforeTextDiv = this.annotationLayer?.div || this.annotationEditorLayer?.div; - if (lastDivBeforeTextDiv) { - lastDivBeforeTextDiv.before(canvasWrapper); - } else { - div.append(canvasWrapper); - } - let textLayer = null; - if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { - this._accessibilityManager ||= new _text_accessibility.TextAccessibilityManager(); - const textLayerDiv = document.createElement("div"); - textLayerDiv.className = "textLayer"; - textLayerDiv.style.width = canvasWrapper.style.width; - textLayerDiv.style.height = canvasWrapper.style.height; - if (lastDivBeforeTextDiv) { - lastDivBeforeTextDiv.before(textLayerDiv); - } else { - div.append(textLayerDiv); - } - textLayer = this.textLayerFactory.createTextLayerBuilder({ - textLayerDiv, - pageIndex: this.id - 1, - viewport: this.viewport, - eventBus: this.eventBus, - highlighter: this.textHighlighter, - accessibilityManager: this._accessibilityManager - }); - } - this.textLayer = textLayer; - if (this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE && this.annotationLayerFactory) { - this._annotationCanvasMap ||= new Map(); - this.annotationLayer ||= this.annotationLayerFactory.createAnnotationLayerBuilder({ - pageDiv: div, - pdfPage, - imageResourcesPath: this.imageResourcesPath, - renderForms: this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS, - l10n: this.l10n, - annotationCanvasMap: this._annotationCanvasMap, - accessibilityManager: this._accessibilityManager - }); - } - if (this.xfaLayer?.div) { - div.append(this.xfaLayer.div); - } - let renderContinueCallback = null; - if (this.renderingQueue) { - renderContinueCallback = cont => { - if (!this.renderingQueue.isHighestPriority(this)) { - this.renderingState = _ui_utils.RenderingStates.PAUSED; - this.resume = () => { - this.renderingState = _ui_utils.RenderingStates.RUNNING; - cont(); - }; - return; - } - cont(); - }; + alt, + id, + lang + } = structElement; + if (alt !== undefined) { + htmlElement.setAttribute("aria-label", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(alt)); } - const finishPaintTask = async (error = null) => { - if (paintTask === this.paintTask) { - this.paintTask = null; - } - if (error instanceof _pdfjsLib.RenderingCancelledException) { - this._renderError = null; - return; - } - this._renderError = error; - this.renderingState = _ui_utils.RenderingStates.FINISHED; - if (this.loadingIconDiv) { - this.loadingIconDiv.remove(); - delete this.loadingIconDiv; - } - this._resetZoomLayer(true); - this.#useThumbnailCanvas.regularAnnotations = !paintTask.separateAnnots; - this.eventBus.dispatch("pagerendered", { - source: this, - pageNumber: this.id, - cssTransform: false, - timestamp: performance.now(), - error: this._renderError - }); - if (error) { - throw error; - } - }; - const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); - paintTask.onRenderContinue = renderContinueCallback; - this.paintTask = paintTask; - const resultPromise = paintTask.promise.then(() => { - return finishPaintTask(null).then(() => { - if (textLayer) { - const readableStream = pdfPage.streamTextContent({ - includeMarkedContent: true - }); - textLayer.setTextContentStream(readableStream); - textLayer.render(); - } - if (this.annotationLayer) { - this._renderAnnotationLayer().then(() => { - if (this.annotationEditorLayerFactory) { - this.annotationEditorLayer ||= this.annotationEditorLayerFactory.createAnnotationEditorLayerBuilder({ - pageDiv: div, - pdfPage, - l10n: this.l10n, - accessibilityManager: this._accessibilityManager - }); - this._renderAnnotationEditorLayer(); - } - }); - } - }); - }, function (reason) { - return finishPaintTask(reason); - }); - if (this.xfaLayerFactory) { - this.xfaLayer ||= this.xfaLayerFactory.createXfaLayerBuilder({ - pageDiv: div, - pdfPage - }); - this._renderXfaLayer(); + if (id !== undefined) { + htmlElement.setAttribute("aria-owns", id); } - if (this.structTreeLayerFactory && this.textLayer && this.canvas) { - this._onTextLayerRendered = event => { - if (event.pageNumber !== this.id) { - return; - } - this.eventBus._off("textlayerrendered", this._onTextLayerRendered); - this._onTextLayerRendered = null; - if (!this.canvas) { - return; - } - this.pdfPage.getStructTree().then(tree => { - if (!tree) { - return; - } - if (!this.canvas) { - return; - } - const treeDom = this.structTreeLayer.render(tree); - treeDom.classList.add("structTree"); - this.canvas.append(treeDom); - }); - }; - this.eventBus._on("textlayerrendered", this._onTextLayerRendered); - this.structTreeLayer = this.structTreeLayerFactory.createStructTreeLayerBuilder({ - pdfPage - }); + if (lang !== undefined) { + htmlElement.setAttribute("lang", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(lang, true)); } - div.setAttribute("data-loaded", true); - this.eventBus.dispatch("pagerender", { - source: this, - pageNumber: this.id - }); - return resultPromise; } - paintOnCanvas(canvasWrapper) { - const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - const result = { - promise: renderCapability.promise, - onRenderContinue(cont) { - cont(); - }, - cancel() { - renderTask.cancel(); - }, - get separateAnnots() { - return renderTask.separateAnnots; - } - }; - const viewport = this.viewport; - const canvas = document.createElement("canvas"); - canvas.setAttribute("role", "presentation"); - canvas.hidden = true; - let isCanvasHidden = true; - const showCanvas = function () { - if (isCanvasHidden) { - canvas.hidden = false; - isCanvasHidden = false; - } - }; - canvasWrapper.append(canvas); - this.canvas = canvas; - const ctx = canvas.getContext("2d", { - alpha: false - }); - const outputScale = this.outputScale = new _ui_utils.OutputScale(); - if (this.useOnlyCssZoom) { - const actualSizeViewport = viewport.clone({ - scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS - }); - outputScale.sx *= actualSizeViewport.width / viewport.width; - outputScale.sy *= actualSizeViewport.height / viewport.height; + #walk(node) { + if (!node) { + return null; } - if (this.maxCanvasPixels > 0) { - const pixelsInViewport = viewport.width * viewport.height; - const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); - if (outputScale.sx > maxScale || outputScale.sy > maxScale) { - outputScale.sx = maxScale; - outputScale.sy = maxScale; - this.hasRestrictedScaling = true; - } else { - this.hasRestrictedScaling = false; + const element = document.createElement("span"); + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); } } - const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); - const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); - canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); - canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); - canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; - canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; - this.paintedViewportMap.set(canvas, viewport); - const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; - const renderContext = { - canvasContext: ctx, - transform, - viewport: this.viewport, - annotationMode: this.#annotationMode, - optionalContentConfigPromise: this._optionalContentConfigPromise, - annotationCanvasMap: this._annotationCanvasMap, - pageColors: this.pageColors - }; - const renderTask = this.pdfPage.render(renderContext); - renderTask.onContinue = function (cont) { - showCanvas(); - if (result.onRenderContinue) { - result.onRenderContinue(cont); + this.#setAttributes(node, element); + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this.#setAttributes(node.children[0], element); } else { - cont(); - } - }; - renderTask.promise.then(function () { - showCanvas(); - renderCapability.resolve(); - }, function (error) { - showCanvas(); - renderCapability.reject(error); - }); - return result; - } - paintOnSvg(wrapper) { - let cancelled = false; - const ensureNotCancelled = () => { - if (cancelled) { - throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); - } - }; - const pdfPage = this.pdfPage; - const actualSizeViewport = this.viewport.clone({ - scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS - }); - const promise = pdfPage.getOperatorList({ - annotationMode: this.#annotationMode - }).then(opList => { - ensureNotCancelled(); - const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); - return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { - ensureNotCancelled(); - this.svg = svg; - this.paintedViewportMap.set(svg, actualSizeViewport); - svg.style.width = wrapper.style.width; - svg.style.height = wrapper.style.height; - this.renderingState = _ui_utils.RenderingStates.FINISHED; - wrapper.append(svg); - }); - }); - return { - promise, - onRenderContinue(cont) { - cont(); - }, - cancel() { - cancelled = true; - }, - get separateAnnots() { - return false; + for (const kid of node.children) { + element.append(this.#walk(kid)); + } } - }; - } - setPageLabel(label) { - this.pageLabel = typeof label === "string" ? label : null; - if (this.pageLabel !== null) { - this.div.setAttribute("data-page-label", this.pageLabel); - } else { - this.div.removeAttribute("data-page-label"); } - } - get thumbnailCanvas() { - const { - initialOptionalContent, - regularAnnotations - } = this.#useThumbnailCanvas; - return initialOptionalContent && regularAnnotations ? this.canvas : null; + return element; } } -exports.PDFPageView = PDFPageView; + /***/ }), -/* 33 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 4630: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TextAccessibilityManager: () => (/* binding */ TextAccessibilityManager) +/* harmony export */ }); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4927); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.TextAccessibilityManager = void 0; -var _ui_utils = __webpack_require__(1); class TextAccessibilityManager { #enabled = false; #textChildren = null; @@ -10738,160 +13409,57 @@ class TextAccessibilityManager { id } = element; if (!id) { - return; + return null; } if (!this.#enabled) { this.#waitingElements.set(element, isRemovable); - return; + return null; } if (isRemovable) { this.removePointerInTextLayer(element); } const children = this.#textChildren; if (!children || children.length === 0) { - return; + return null; } - const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); + const index = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); const nodeIndex = Math.max(0, index - 1); - this.#addIdToAriaOwns(id, children[nodeIndex]); + const child = children[nodeIndex]; + this.#addIdToAriaOwns(id, child); this.#textNodes.set(id, nodeIndex); + const parent = child.parentNode; + return parent?.classList.contains("markedContent") ? parent.id : null; } moveElementInDOM(container, element, contentElement, isRemovable) { - this.addPointerInTextLayer(contentElement, isRemovable); + const id = this.addPointerInTextLayer(contentElement, isRemovable); if (!container.hasChildNodes()) { container.append(element); - return; + return id; } const children = Array.from(container.childNodes).filter(node => node !== element); if (children.length === 0) { - return; + return id; } const elementToCompare = contentElement || element; - const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); + const index = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); if (index === 0) { children[0].before(element); } else { children[index - 1].after(element); } + return id; } } -exports.TextAccessibilityManager = TextAccessibilityManager; - -/***/ }), -/* 34 */ -/***/ ((__unused_webpack_module, exports) => { - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.StructTreeLayerBuilder = void 0; -const PDF_ROLE_TO_HTML_ROLE = { - Document: null, - DocumentFragment: null, - Part: "group", - Sect: "group", - Div: "group", - Aside: "note", - NonStruct: "none", - P: null, - H: "heading", - Title: null, - FENote: "note", - Sub: "group", - Lbl: null, - Span: null, - Em: null, - Strong: null, - Link: "link", - Annot: "note", - Form: "form", - Ruby: null, - RB: null, - RT: null, - RP: null, - Warichu: null, - WT: null, - WP: null, - L: "list", - LI: "listitem", - LBody: null, - Table: "table", - TR: "row", - TH: "columnheader", - TD: "cell", - THead: "columnheader", - TBody: null, - TFoot: null, - Caption: null, - Figure: "figure", - Formula: null, - Artifact: null -}; -const HEADING_PATTERN = /^H(\d+)$/; -class StructTreeLayerBuilder { - constructor({ - pdfPage - }) { - this.pdfPage = pdfPage; - } - render(structTree) { - return this._walk(structTree); - } - _setAttributes(structElement, htmlElement) { - if (structElement.alt !== undefined) { - htmlElement.setAttribute("aria-label", structElement.alt); - } - if (structElement.id !== undefined) { - htmlElement.setAttribute("aria-owns", structElement.id); - } - if (structElement.lang !== undefined) { - htmlElement.setAttribute("lang", structElement.lang); - } - } - _walk(node) { - if (!node) { - return null; - } - const element = document.createElement("span"); - if ("role" in node) { - const { - role - } = node; - const match = role.match(HEADING_PATTERN); - if (match) { - element.setAttribute("role", "heading"); - element.setAttribute("aria-level", match[1]); - } else if (PDF_ROLE_TO_HTML_ROLE[role]) { - element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); - } - } - this._setAttributes(node, element); - if (node.children) { - if (node.children.length === 1 && "id" in node.children[0]) { - this._setAttributes(node.children[0], element); - } else { - for (const kid of node.children) { - element.append(this._walk(kid)); - } - } - } - return element; - } -} -exports.StructTreeLayerBuilder = StructTreeLayerBuilder; - /***/ }), -/* 35 */ -/***/ ((__unused_webpack_module, exports) => { +/***/ 4274: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.TextHighlighter = void 0; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TextHighlighter: () => (/* binding */ TextHighlighter) +/* harmony export */ }); class TextHighlighter { constructor({ findController, @@ -10938,6 +13506,7 @@ class TextHighlighter { this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); this._onUpdateTextLayerMatches = null; } + this._updateMatches(true); } _convertMatches(matches, matchesLength) { if (!matches) { @@ -11032,9 +13601,16 @@ class TextHighlighter { } else if (!isSelectedPage) { return; } + let lastDivIdx = -1; + let lastOffset = -1; for (let i = i0; i < i1; i++) { const match = matches[i]; const begin = match.begin; + if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) { + continue; + } + lastDivIdx = begin.divIdx; + lastOffset = begin.offset; const end = match.end; const isSelected = isSelectedPage && i === selectedMatchIdx; const highlightSuffix = isSelected ? " selected" : ""; @@ -11070,8 +13646,8 @@ class TextHighlighter { appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); } } - _updateMatches() { - if (!this.enabled) { + _updateMatches(reset = false) { + if (!this.enabled && !reset) { return; } const { @@ -11093,7 +13669,7 @@ class TextHighlighter { } clearedUntilDivIdx = match.end.divIdx + 1; } - if (!findController?.highlightMatches) { + if (!findController?.highlightMatches || reset) { return; } const pageMatches = findController.pageMatches[pageIdx] || null; @@ -11102,77 +13678,116 @@ class TextHighlighter { this._renderMatches(this.matches); } } -exports.TextHighlighter = TextHighlighter; + /***/ }), -/* 36 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 1013: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ TextLayerBuilder: () => (/* binding */ TextLayerBuilder) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.TextLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(5); class TextLayerBuilder { + #enablePermissions = false; + #rotation = 0; + #scale = 0; + #textContentSource = null; constructor({ - textLayerDiv, - eventBus, - pageIndex, - viewport, highlighter = null, - accessibilityManager = null + accessibilityManager = null, + isOffscreenCanvasSupported = true, + enablePermissions = false }) { - this.textLayerDiv = textLayerDiv; - this.eventBus = eventBus; - this.textContent = null; this.textContentItemsStr = []; - this.textContentStream = null; this.renderingDone = false; - this.pageNumber = pageIndex + 1; - this.viewport = viewport; this.textDivs = []; + this.textDivProperties = new WeakMap(); this.textLayerRenderTask = null; this.highlighter = highlighter; this.accessibilityManager = accessibilityManager; - this.#bindMouse(); + this.isOffscreenCanvasSupported = isOffscreenCanvasSupported; + this.#enablePermissions = enablePermissions === true; + this.onAppend = null; + this.div = document.createElement("div"); + this.div.className = "textLayer"; } #finishRendering() { this.renderingDone = true; const endOfContent = document.createElement("div"); endOfContent.className = "endOfContent"; - this.textLayerDiv.append(endOfContent); - this.eventBus.dispatch("textlayerrendered", { - source: this, - pageNumber: this.pageNumber, - numTextDivs: this.textDivs.length - }); + this.div.append(endOfContent); + this.#bindMouse(); + } + get numTextDivs() { + return this.textDivs.length; } - render(timeout = 0) { - if (!(this.textContent || this.textContentStream) || this.renderingDone) { + async render(viewport) { + if (!this.#textContentSource) { + throw new Error('No "textContentSource" parameter specified.'); + } + const scale = viewport.scale * (globalThis.devicePixelRatio || 1); + const { + rotation + } = viewport; + if (this.renderingDone) { + const mustRotate = rotation !== this.#rotation; + const mustRescale = scale !== this.#scale; + if (mustRotate || mustRescale) { + this.hide(); + (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.updateTextLayer)({ + container: this.div, + viewport, + textDivs: this.textDivs, + textDivProperties: this.textDivProperties, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + mustRescale, + mustRotate + }); + this.#scale = scale; + this.#rotation = rotation; + } + this.show(); return; } this.cancel(); - this.textDivs.length = 0; this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr); this.accessibilityManager?.setTextMapping(this.textDivs); - const textLayerFrag = document.createDocumentFragment(); - this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ - textContent: this.textContent, - textContentStream: this.textContentStream, - container: textLayerFrag, - viewport: this.viewport, + this.textLayerRenderTask = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.renderTextLayer)({ + textContentSource: this.#textContentSource, + container: this.div, + viewport, textDivs: this.textDivs, + textDivProperties: this.textDivProperties, textContentItemsStr: this.textContentItemsStr, - timeout + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported }); - this.textLayerRenderTask.promise.then(() => { - this.textLayerDiv.append(textLayerFrag); - this.#finishRendering(); + await this.textLayerRenderTask.promise; + this.#finishRendering(); + this.#scale = scale; + this.#rotation = rotation; + this.onAppend(this.div); + this.highlighter?.enable(); + this.accessibilityManager?.enable(); + } + hide() { + if (!this.div.hidden && this.renderingDone) { + this.highlighter?.disable(); + this.div.hidden = true; + } + } + show() { + if (this.div.hidden && this.renderingDone) { + this.div.hidden = false; this.highlighter?.enable(); - this.accessibilityManager?.enable(); - }, function (reason) {}); + } } cancel() { if (this.textLayerRenderTask) { @@ -11181,17 +13796,18 @@ class TextLayerBuilder { } this.highlighter?.disable(); this.accessibilityManager?.disable(); + this.textContentItemsStr.length = 0; + this.textDivs.length = 0; + this.textDivProperties = new WeakMap(); } - setTextContentStream(readableStream) { - this.cancel(); - this.textContentStream = readableStream; - } - setTextContent(textContent) { + setTextContentSource(source) { this.cancel(); - this.textContent = textContent; + this.#textContentSource = source; } #bindMouse() { - const div = this.textLayerDiv; + const { + div + } = this; div.addEventListener("mousedown", evt => { const end = div.querySelector(".endOfContent"); if (!end) { @@ -11209,423 +13825,46 @@ class TextLayerBuilder { div.addEventListener("mouseup", () => { const end = div.querySelector(".endOfContent"); if (!end) { - return; - } - end.style.top = ""; - end.classList.remove("active"); - }); - } -} -exports.TextLayerBuilder = TextLayerBuilder; - -/***/ }), -/* 37 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.XfaLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(5); -class XfaLayerBuilder { - constructor({ - pageDiv, - pdfPage, - annotationStorage = null, - linkService, - xfaHtml = null - }) { - this.pageDiv = pageDiv; - this.pdfPage = pdfPage; - this.annotationStorage = annotationStorage; - this.linkService = linkService; - this.xfaHtml = xfaHtml; - this.div = null; - this._cancelled = false; - } - render(viewport, intent = "display") { - if (intent === "print") { - const parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: this.div, - xfaHtml: this.xfaHtml, - annotationStorage: this.annotationStorage, - linkService: this.linkService, - intent - }; - const div = document.createElement("div"); - this.pageDiv.append(div); - parameters.div = div; - const result = _pdfjsLib.XfaLayer.render(parameters); - return Promise.resolve(result); - } - return this.pdfPage.getXfa().then(xfaHtml => { - if (this._cancelled || !xfaHtml) { - return { - textDivs: [] - }; - } - const parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: this.div, - xfaHtml, - annotationStorage: this.annotationStorage, - linkService: this.linkService, - intent - }; - if (this.div) { - return _pdfjsLib.XfaLayer.update(parameters); - } - this.div = document.createElement("div"); - this.pageDiv.append(this.div); - parameters.div = this.div; - return _pdfjsLib.XfaLayer.render(parameters); - }).catch(error => { - console.error(error); - }); - } - cancel() { - this._cancelled = true; - } - hide() { - if (!this.div) { - return; - } - this.div.hidden = true; - } -} -exports.XfaLayerBuilder = XfaLayerBuilder; - -/***/ }), -/* 38 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.SecondaryToolbar = void 0; -var _ui_utils = __webpack_require__(1); -var _pdf_cursor_tools = __webpack_require__(7); -var _pdf_viewer = __webpack_require__(28); -class SecondaryToolbar { - constructor(options, eventBus, externalServices) { - this.toolbar = options.toolbar; - this.toggleButton = options.toggleButton; - this.buttons = [{ - element: options.presentationModeButton, - eventName: "presentationmode", - close: true - }, { - element: options.printButton, - eventName: "print", - close: true - }, { - element: options.downloadButton, - eventName: "download", - close: true - }, { - element: options.viewBookmarkButton, - eventName: null, - close: true - }, { - element: options.firstPageButton, - eventName: "firstpage", - close: true - }, { - element: options.lastPageButton, - eventName: "lastpage", - close: true - }, { - element: options.pageRotateCwButton, - eventName: "rotatecw", - close: false - }, { - element: options.pageRotateCcwButton, - eventName: "rotateccw", - close: false - }, { - element: options.cursorSelectToolButton, - eventName: "switchcursortool", - eventDetails: { - tool: _pdf_cursor_tools.CursorTool.SELECT - }, - close: true - }, { - element: options.cursorHandToolButton, - eventName: "switchcursortool", - eventDetails: { - tool: _pdf_cursor_tools.CursorTool.HAND - }, - close: true - }, { - element: options.scrollPageButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils.ScrollMode.PAGE - }, - close: true - }, { - element: options.scrollVerticalButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils.ScrollMode.VERTICAL - }, - close: true - }, { - element: options.scrollHorizontalButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils.ScrollMode.HORIZONTAL - }, - close: true - }, { - element: options.scrollWrappedButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils.ScrollMode.WRAPPED - }, - close: true - }, { - element: options.spreadNoneButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils.SpreadMode.NONE - }, - close: true - }, { - element: options.spreadOddButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils.SpreadMode.ODD - }, - close: true - }, { - element: options.spreadEvenButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils.SpreadMode.EVEN - }, - close: true - }, { - element: options.documentPropertiesButton, - eventName: "documentproperties", - close: true - }]; - this.buttons.push({ - element: options.openFileButton, - eventName: "openfile", - close: true - }); - this.items = { - firstPage: options.firstPageButton, - lastPage: options.lastPageButton, - pageRotateCw: options.pageRotateCwButton, - pageRotateCcw: options.pageRotateCcwButton - }; - this.eventBus = eventBus; - this.externalServices = externalServices; - this.opened = false; - this.#bindClickListeners(); - this.#bindCursorToolsListener(options); - this.#bindScrollModeListener(options); - this.#bindSpreadModeListener(options); - this.reset(); - } - get isOpen() { - return this.opened; - } - setPageNumber(pageNumber) { - this.pageNumber = pageNumber; - this.#updateUIState(); - } - setPagesCount(pagesCount) { - this.pagesCount = pagesCount; - this.#updateUIState(); - } - reset() { - this.pageNumber = 0; - this.pagesCount = 0; - this.#updateUIState(); - this.eventBus.dispatch("secondarytoolbarreset", { - source: this - }); - } - #updateUIState() { - this.items.firstPage.disabled = this.pageNumber <= 1; - this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; - this.items.pageRotateCw.disabled = this.pagesCount === 0; - this.items.pageRotateCcw.disabled = this.pagesCount === 0; - } - #bindClickListeners() { - this.toggleButton.addEventListener("click", this.toggle.bind(this)); - for (const { - element, - eventName, - close, - eventDetails - } of this.buttons) { - element.addEventListener("click", evt => { - if (eventName !== null) { - const details = { - source: this - }; - for (const property in eventDetails) { - details[property] = eventDetails[property]; - } - this.eventBus.dispatch(eventName, details); - } - if (close) { - this.close(); - } - this.externalServices.reportTelemetry({ - type: "buttons", - data: { - id: element.id - } - }); - }); - } - } - #bindCursorToolsListener({ - cursorSelectToolButton, - cursorHandToolButton - }) { - this.eventBus._on("cursortoolchanged", function ({ - tool - }) { - const isSelect = tool === _pdf_cursor_tools.CursorTool.SELECT, - isHand = tool === _pdf_cursor_tools.CursorTool.HAND; - cursorSelectToolButton.classList.toggle("toggled", isSelect); - cursorHandToolButton.classList.toggle("toggled", isHand); - cursorSelectToolButton.setAttribute("aria-checked", isSelect); - cursorHandToolButton.setAttribute("aria-checked", isHand); - }); - } - #bindScrollModeListener({ - scrollPageButton, - scrollVerticalButton, - scrollHorizontalButton, - scrollWrappedButton, - spreadNoneButton, - spreadOddButton, - spreadEvenButton - }) { - const scrollModeChanged = ({ - mode - }) => { - const isPage = mode === _ui_utils.ScrollMode.PAGE, - isVertical = mode === _ui_utils.ScrollMode.VERTICAL, - isHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL, - isWrapped = mode === _ui_utils.ScrollMode.WRAPPED; - scrollPageButton.classList.toggle("toggled", isPage); - scrollVerticalButton.classList.toggle("toggled", isVertical); - scrollHorizontalButton.classList.toggle("toggled", isHorizontal); - scrollWrappedButton.classList.toggle("toggled", isWrapped); - scrollPageButton.setAttribute("aria-checked", isPage); - scrollVerticalButton.setAttribute("aria-checked", isVertical); - scrollHorizontalButton.setAttribute("aria-checked", isHorizontal); - scrollWrappedButton.setAttribute("aria-checked", isWrapped); - const forceScrollModePage = this.pagesCount > _pdf_viewer.PagesCountLimit.FORCE_SCROLL_MODE_PAGE; - scrollPageButton.disabled = forceScrollModePage; - scrollVerticalButton.disabled = forceScrollModePage; - scrollHorizontalButton.disabled = forceScrollModePage; - scrollWrappedButton.disabled = forceScrollModePage; - spreadNoneButton.disabled = isHorizontal; - spreadOddButton.disabled = isHorizontal; - spreadEvenButton.disabled = isHorizontal; - }; - this.eventBus._on("scrollmodechanged", scrollModeChanged); - this.eventBus._on("secondarytoolbarreset", evt => { - if (evt.source === this) { - scrollModeChanged({ - mode: _ui_utils.ScrollMode.VERTICAL - }); + return; } + end.style.top = ""; + end.classList.remove("active"); }); - } - #bindSpreadModeListener({ - spreadNoneButton, - spreadOddButton, - spreadEvenButton - }) { - function spreadModeChanged({ - mode - }) { - const isNone = mode === _ui_utils.SpreadMode.NONE, - isOdd = mode === _ui_utils.SpreadMode.ODD, - isEven = mode === _ui_utils.SpreadMode.EVEN; - spreadNoneButton.classList.toggle("toggled", isNone); - spreadOddButton.classList.toggle("toggled", isOdd); - spreadEvenButton.classList.toggle("toggled", isEven); - spreadNoneButton.setAttribute("aria-checked", isNone); - spreadOddButton.setAttribute("aria-checked", isOdd); - spreadEvenButton.setAttribute("aria-checked", isEven); - } - this.eventBus._on("spreadmodechanged", spreadModeChanged); - this.eventBus._on("secondarytoolbarreset", evt => { - if (evt.source === this) { - spreadModeChanged({ - mode: _ui_utils.SpreadMode.NONE - }); + div.addEventListener("copy", event => { + if (!this.#enablePermissions) { + const selection = document.getSelection(); + event.clipboardData.setData("text/plain", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.removeNullCharacters)((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.normalizeUnicode)(selection.toString()))); } + event.preventDefault(); + event.stopPropagation(); }); } - open() { - if (this.opened) { - return; - } - this.opened = true; - this.toggleButton.classList.add("toggled"); - this.toggleButton.setAttribute("aria-expanded", "true"); - this.toolbar.classList.remove("hidden"); - } - close() { - if (!this.opened) { - return; - } - this.opened = false; - this.toolbar.classList.add("hidden"); - this.toggleButton.classList.remove("toggled"); - this.toggleButton.setAttribute("aria-expanded", "false"); - } - toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } - } } -exports.SecondaryToolbar = SecondaryToolbar; + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); /***/ }), -/* 39 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 276: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ Toolbar: () => (/* binding */ Toolbar) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4927); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.Toolbar = void 0; -var _ui_utils = __webpack_require__(1); -var _pdfjsLib = __webpack_require__(5); -const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; class Toolbar { - #wasLocalized = false; - constructor(options, eventBus, l10n) { - this.toolbar = options.container; + #opts; + constructor(options, eventBus) { + this.#opts = options; this.eventBus = eventBus; - this.l10n = l10n; - this.buttons = [{ + const buttons = [{ element: options.previous, eventName: "previouspage" }, { @@ -11651,7 +13890,18 @@ class Toolbar { const { classList } = options.editorFreeTextButton; - return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.FREETEXT; + return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.FREETEXT; + } + } + }, { + element: options.editorHighlightButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorHighlightButton; + return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT; } } }, { @@ -11662,27 +13912,40 @@ class Toolbar { const { classList } = options.editorInkButton; - return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.INK; + return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.INK; + } + } + }, { + element: options.editorStampButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorStampButton; + return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.STAMP; } } }]; - this.buttons.push({ - element: options.openFile, - eventName: "openfile" - }); - this.items = { - numPages: options.numPages, - pageNumber: options.pageNumber, - scaleSelect: options.scaleSelect, - customScaleOption: options.customScaleOption, - previous: options.previous, - next: options.next, - zoomIn: options.zoomIn, - zoomOut: options.zoomOut - }; - this.#bindListeners(options); + this.#bindListeners(buttons); + if (options.editorHighlightColorPicker) { + eventBus._on("annotationeditoruimanager", ({ + uiManager + }) => { + this.#setAnnotationEditorUIManager(uiManager, options.editorHighlightColorPicker); + }, { + once: true + }); + } this.reset(); } + #setAnnotationEditorUIManager(uiManager, parentContainer) { + const colorPicker = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.ColorPicker({ + uiManager + }); + uiManager.setMainHighlightColorPicker(colorPicker); + parentContainer.append(colorPicker.renderMainDropdown()); + } setPageNumber(pageNumber, pageLabel) { this.pageNumber = pageNumber; this.pageLabel = pageLabel; @@ -11703,36 +13966,35 @@ class Toolbar { this.pageLabel = null; this.hasPageLabels = false; this.pagesCount = 0; - this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; - this.pageScale = _ui_utils.DEFAULT_SCALE; + this.pageScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; this.#updateUIState(true); this.updateLoadingIndicatorState(); - this.eventBus.dispatch("toolbarreset", { - source: this + this.#editorModeChanged({ + mode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE }); } - #bindListeners(options) { + #bindListeners(buttons) { + const { + eventBus + } = this; const { pageNumber, scaleSelect - } = this.items; + } = this.#opts; const self = this; for (const { element, eventName, eventDetails - } of this.buttons) { + } of buttons) { element.addEventListener("click", evt => { if (eventName !== null) { - const details = { - source: this - }; - if (eventDetails) { - for (const property in eventDetails) { - details[property] = eventDetails[property]; - } - } - this.eventBus.dispatch(eventName, details); + eventBus.dispatch(eventName, { + source: this, + ...eventDetails, + isFromKeyboard: evt.detail === 0 + }); } }); } @@ -11740,7 +14002,7 @@ class Toolbar { this.select(); }); pageNumber.addEventListener("change", function () { - self.eventBus.dispatch("pagenumberchanged", { + eventBus.dispatch("pagenumberchanged", { source: self, value: this.value }); @@ -11749,1659 +14011,744 @@ class Toolbar { if (this.value === "custom") { return; } - self.eventBus.dispatch("scalechanged", { + eventBus.dispatch("scalechanged", { source: self, value: this.value }); }); - scaleSelect.addEventListener("click", function (evt) { - const target = evt.target; + scaleSelect.addEventListener("click", function ({ + target + }) { if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { this.blur(); } }); - scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; - this.eventBus._on("localized", () => { - this.#wasLocalized = true; - this.#adjustScaleWidth(); - this.#updateUIState(true); - }); - this.#bindEditorToolsListener(options); - } - #bindEditorToolsListener({ - editorFreeTextButton, - editorFreeTextParamsToolbar, - editorInkButton, - editorInkParamsToolbar - }) { - const editorModeChanged = (evt, disableButtons = false) => { - const editorButtons = [{ - mode: _pdfjsLib.AnnotationEditorType.FREETEXT, - button: editorFreeTextButton, - toolbar: editorFreeTextParamsToolbar - }, { - mode: _pdfjsLib.AnnotationEditorType.INK, - button: editorInkButton, - toolbar: editorInkParamsToolbar - }]; - for (const { - mode, - button, - toolbar - } of editorButtons) { - const checked = mode === evt.mode; - button.classList.toggle("toggled", checked); - button.setAttribute("aria-checked", checked); - button.disabled = disableButtons; - toolbar?.classList.toggle("hidden", !checked); - } - }; - this.eventBus._on("annotationeditormodechanged", editorModeChanged); - this.eventBus._on("toolbarreset", evt => { - if (evt.source === this) { - editorModeChanged({ - mode: _pdfjsLib.AnnotationEditorType.NONE - }, true); - } - }); - } - #updateUIState(resetNumPages = false) { - if (!this.#wasLocalized) { - return; - } - const { - pageNumber, - pagesCount, - pageScaleValue, - pageScale, - items - } = this; - if (resetNumPages) { - if (this.hasPageLabels) { - items.pageNumber.type = "text"; - } else { - items.pageNumber.type = "number"; - this.l10n.get("of_pages", { - pagesCount - }).then(msg => { - items.numPages.textContent = msg; - }); - } - items.pageNumber.max = pagesCount; - } - if (this.hasPageLabels) { - items.pageNumber.value = this.pageLabel; - this.l10n.get("page_of_pages", { - pageNumber, - pagesCount - }).then(msg => { - items.numPages.textContent = msg; - }); - } else { - items.pageNumber.value = pageNumber; - } - items.previous.disabled = pageNumber <= 1; - items.next.disabled = pageNumber >= pagesCount; - items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; - items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; - this.l10n.get("page_scale_percent", { - scale: Math.round(pageScale * 10000) / 100 - }).then(msg => { - let predefinedValueFound = false; - for (const option of items.scaleSelect.options) { - if (option.value !== pageScaleValue) { - option.selected = false; - continue; - } - option.selected = true; - predefinedValueFound = true; - } - if (!predefinedValueFound) { - items.customScaleOption.textContent = msg; - items.customScaleOption.selected = true; - } - }); - } - updateLoadingIndicatorState(loading = false) { - const { - pageNumber - } = this.items; - pageNumber.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); - } - async #adjustScaleWidth() { - const { - items, - l10n - } = this; - const predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto"), l10n.get("page_scale_actual"), l10n.get("page_scale_fit"), l10n.get("page_scale_width")]); - await _ui_utils.animationStarted; - const style = getComputedStyle(items.scaleSelect); - const scaleSelectWidth = parseFloat(style.getPropertyValue("--scale-select-width")); - const canvas = document.createElement("canvas"); - const ctx = canvas.getContext("2d", { - alpha: false - }); - ctx.font = `${style.fontSize} ${style.fontFamily}`; - let maxWidth = 0; - for (const predefinedValue of await predefinedValuesPromise) { - const { - width - } = ctx.measureText(predefinedValue); - if (width > maxWidth) { - maxWidth = width; - } - } - maxWidth += 0.3 * scaleSelectWidth; - if (maxWidth > scaleSelectWidth) { - _ui_utils.docStyle.setProperty("--scale-select-width", `${maxWidth}px`); - } - canvas.width = 0; - canvas.height = 0; - } -} -exports.Toolbar = Toolbar; - -/***/ }), -/* 40 */ -/***/ ((__unused_webpack_module, exports) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.ViewHistory = void 0; -const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; -class ViewHistory { - constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { - this.fingerprint = fingerprint; - this.cacheSize = cacheSize; - this._initializedPromise = this._readFromStorage().then(databaseStr => { - const database = JSON.parse(databaseStr || "{}"); - let index = -1; - if (!Array.isArray(database.files)) { - database.files = []; - } else { - while (database.files.length >= this.cacheSize) { - database.files.shift(); - } - for (let i = 0, ii = database.files.length; i < ii; i++) { - const branch = database.files[i]; - if (branch.fingerprint === this.fingerprint) { - index = i; - break; - } - } - } - if (index === -1) { - index = database.files.push({ - fingerprint: this.fingerprint - }) - 1; - } - this.file = database.files[index]; - this.database = database; - }); - } - async _writeToStorage() { - const databaseStr = JSON.stringify(this.database); - localStorage.setItem("pdfjs.history", databaseStr); - } - async _readFromStorage() { - return localStorage.getItem("pdfjs.history"); - } - async set(name, val) { - await this._initializedPromise; - this.file[name] = val; - return this._writeToStorage(); - } - async setMultiple(properties) { - await this._initializedPromise; - for (const name in properties) { - this.file[name] = properties[name]; - } - return this._writeToStorage(); - } - async get(name, defaultValue) { - await this._initializedPromise; - const val = this.file[name]; - return val !== undefined ? val : defaultValue; - } - async getMultiple(properties) { - await this._initializedPromise; - const values = Object.create(null); - for (const name in properties) { - const val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - return values; - } -} -exports.ViewHistory = ViewHistory; - -/***/ }), -/* 41 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.GenericCom = void 0; -var _app = __webpack_require__(4); -var _preferences = __webpack_require__(42); -var _download_manager = __webpack_require__(43); -var _genericl10n = __webpack_require__(44); -var _generic_scripting = __webpack_require__(46); -; -const GenericCom = {}; -exports.GenericCom = GenericCom; -class GenericPreferences extends _preferences.BasePreferences { - async _writeToStorage(prefObj) { - localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); - } - async _readFromStorage(prefObj) { - return JSON.parse(localStorage.getItem("pdfjs.preferences")); - } -} -class GenericExternalServices extends _app.DefaultExternalServices { - static createDownloadManager(options) { - return new _download_manager.DownloadManager(); - } - static createPreferences() { - return new GenericPreferences(); - } - static createL10n({ - locale = "en-US" - }) { - return new _genericl10n.GenericL10n(locale); - } - static createScripting({ - sandboxBundleSrc - }) { - return new _generic_scripting.GenericScripting(sandboxBundleSrc); - } -} -_app.PDFViewerApplication.externalServices = GenericExternalServices; - -/***/ }), -/* 42 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.BasePreferences = void 0; -var _app_options = __webpack_require__(2); -class BasePreferences { - #defaults = Object.freeze({ - "annotationEditorMode": 0, - "annotationMode": 2, - "cursorToolOnLoad": 0, - "defaultZoomValue": "", - "disablePageLabels": false, - "enablePermissions": false, - "enablePrintAutoRotate": true, - "enableScripting": true, - "externalLinkTarget": 0, - "historyUpdateUrl": false, - "ignoreDestinationZoom": false, - "forcePageColors": false, - "pageColorsBackground": "Canvas", - "pageColorsForeground": "CanvasText", - "pdfBugEnabled": false, - "sidebarViewOnLoad": -1, - "scrollModeOnLoad": -1, - "spreadModeOnLoad": -1, - "textLayerMode": 1, - "useOnlyCssZoom": false, - "viewerCssTheme": 0, - "viewOnLoad": 0, - "disableAutoFetch": false, - "disableFontFace": false, - "disableRange": false, - "disableStream": false, - "enableXfa": true, - "renderer": "canvas" - }); - #prefs = Object.create(null); - #initializedPromise = null; - constructor() { - if (this.constructor === BasePreferences) { - throw new Error("Cannot initialize BasePreferences."); - } - this.#initializedPromise = this._readFromStorage(this.#defaults).then(prefs => { - for (const name in this.#defaults) { - const prefValue = prefs?.[name]; - if (typeof prefValue === typeof this.#defaults[name]) { - this.#prefs[name] = prefValue; - } - } - }); + scaleSelect.oncontextmenu = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.noContextMenu; + eventBus._on("annotationeditormodechanged", this.#editorModeChanged.bind(this)); } - async _writeToStorage(prefObj) { - throw new Error("Not implemented: _writeToStorage"); - } - async _readFromStorage(prefObj) { - throw new Error("Not implemented: _readFromStorage"); - } - async reset() { - await this.#initializedPromise; - const prefs = this.#prefs; - this.#prefs = Object.create(null); - return this._writeToStorage(this.#defaults).catch(reason => { - this.#prefs = prefs; - throw reason; - }); + #editorModeChanged({ + mode + }) { + const { + editorFreeTextButton, + editorFreeTextParamsToolbar, + editorHighlightButton, + editorHighlightParamsToolbar, + editorInkButton, + editorInkParamsToolbar, + editorStampButton, + editorStampParamsToolbar + } = this.#opts; + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorFreeTextButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.FREETEXT, editorFreeTextParamsToolbar); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorHighlightButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT, editorHighlightParamsToolbar); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorInkButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.INK, editorInkParamsToolbar); + (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorStampButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.STAMP, editorStampParamsToolbar); + const isDisable = mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; + editorFreeTextButton.disabled = isDisable; + editorHighlightButton.disabled = isDisable; + editorInkButton.disabled = isDisable; + editorStampButton.disabled = isDisable; } - async set(name, value) { - await this.#initializedPromise; - const defaultValue = this.#defaults[name], - prefs = this.#prefs; - if (defaultValue === undefined) { - throw new Error(`Set preference: "${name}" is undefined.`); - } else if (value === undefined) { - throw new Error("Set preference: no value is specified."); - } - const valueType = typeof value, - defaultType = typeof defaultValue; - if (valueType !== defaultType) { - if (valueType === "number" && defaultType === "string") { - value = value.toString(); + #updateUIState(resetNumPages = false) { + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale + } = this; + const opts = this.#opts; + if (resetNumPages) { + if (this.hasPageLabels) { + opts.pageNumber.type = "text"; + opts.numPages.setAttribute("data-l10n-id", "pdfjs-page-of-pages"); } else { - throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); + opts.pageNumber.type = "number"; + opts.numPages.setAttribute("data-l10n-id", "pdfjs-of-pages"); + opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ + pagesCount + })); } + opts.pageNumber.max = pagesCount; + } + if (this.hasPageLabels) { + opts.pageNumber.value = this.pageLabel; + opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ + pageNumber, + pagesCount + })); } else { - if (valueType === "number" && !Number.isInteger(value)) { - throw new Error(`Set preference: "${value}" must be an integer.`); + opts.pageNumber.value = pageNumber; + } + opts.previous.disabled = pageNumber <= 1; + opts.next.disabled = pageNumber >= pagesCount; + opts.zoomOut.disabled = pageScale <= _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE; + opts.zoomIn.disabled = pageScale >= _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE; + let predefinedValueFound = false; + for (const option of opts.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; } + option.selected = true; + predefinedValueFound = true; } - this.#prefs[name] = value; - return this._writeToStorage(this.#prefs).catch(reason => { - this.#prefs = prefs; - throw reason; - }); - } - async get(name) { - await this.#initializedPromise; - const defaultValue = this.#defaults[name]; - if (defaultValue === undefined) { - throw new Error(`Get preference: "${name}" is undefined.`); + if (!predefinedValueFound) { + opts.customScaleOption.selected = true; + opts.customScaleOption.setAttribute("data-l10n-args", JSON.stringify({ + scale: Math.round(pageScale * 10000) / 100 + })); } - return this.#prefs[name] ?? defaultValue; } - async getAll() { - await this.#initializedPromise; - const obj = Object.create(null); - for (const name in this.#defaults) { - obj[name] = this.#prefs[name] ?? this.#defaults[name]; - } - return obj; + updateLoadingIndicatorState(loading = false) { + const { + pageNumber + } = this.#opts; + pageNumber.classList.toggle("loading", loading); } } -exports.BasePreferences = BasePreferences; - -/***/ }), -/* 43 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); +/***/ }), -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.DownloadManager = void 0; -var _pdfjsLib = __webpack_require__(5); -; -function download(blobUrl, filename) { - const a = document.createElement("a"); - if (!a.click) { - throw new Error('DownloadManager: "a.click()" is not supported.'); +/***/ 4927: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AutoPrintRegExp: () => (/* binding */ AutoPrintRegExp), +/* harmony export */ CursorTool: () => (/* binding */ CursorTool), +/* harmony export */ DEFAULT_SCALE: () => (/* binding */ DEFAULT_SCALE), +/* harmony export */ DEFAULT_SCALE_DELTA: () => (/* binding */ DEFAULT_SCALE_DELTA), +/* harmony export */ DEFAULT_SCALE_VALUE: () => (/* binding */ DEFAULT_SCALE_VALUE), +/* harmony export */ MAX_AUTO_SCALE: () => (/* binding */ MAX_AUTO_SCALE), +/* harmony export */ MAX_SCALE: () => (/* binding */ MAX_SCALE), +/* harmony export */ MIN_SCALE: () => (/* binding */ MIN_SCALE), +/* harmony export */ OutputScale: () => (/* binding */ OutputScale), +/* harmony export */ PresentationModeState: () => (/* binding */ PresentationModeState), +/* harmony export */ ProgressBar: () => (/* binding */ ProgressBar), +/* harmony export */ RenderingStates: () => (/* binding */ RenderingStates), +/* harmony export */ SCROLLBAR_PADDING: () => (/* binding */ SCROLLBAR_PADDING), +/* harmony export */ ScrollMode: () => (/* binding */ ScrollMode), +/* harmony export */ SidebarView: () => (/* binding */ SidebarView), +/* harmony export */ SpreadMode: () => (/* binding */ SpreadMode), +/* harmony export */ TextLayerMode: () => (/* binding */ TextLayerMode), +/* harmony export */ UNKNOWN_SCALE: () => (/* binding */ UNKNOWN_SCALE), +/* harmony export */ VERTICAL_PADDING: () => (/* binding */ VERTICAL_PADDING), +/* harmony export */ animationStarted: () => (/* binding */ animationStarted), +/* harmony export */ apiPageLayoutToViewerModes: () => (/* binding */ apiPageLayoutToViewerModes), +/* harmony export */ apiPageModeToSidebarView: () => (/* binding */ apiPageModeToSidebarView), +/* harmony export */ approximateFraction: () => (/* binding */ approximateFraction), +/* harmony export */ binarySearchFirstItem: () => (/* binding */ binarySearchFirstItem), +/* harmony export */ docStyle: () => (/* binding */ docStyle), +/* harmony export */ getActiveOrFocusedElement: () => (/* binding */ getActiveOrFocusedElement), +/* harmony export */ getPageSizeInches: () => (/* binding */ getPageSizeInches), +/* harmony export */ getVisibleElements: () => (/* binding */ getVisibleElements), +/* harmony export */ isPortraitOrientation: () => (/* binding */ isPortraitOrientation), +/* harmony export */ isValidRotation: () => (/* binding */ isValidRotation), +/* harmony export */ isValidScrollMode: () => (/* binding */ isValidScrollMode), +/* harmony export */ isValidSpreadMode: () => (/* binding */ isValidSpreadMode), +/* harmony export */ normalizeWheelEventDelta: () => (/* binding */ normalizeWheelEventDelta), +/* harmony export */ normalizeWheelEventDirection: () => (/* binding */ normalizeWheelEventDirection), +/* harmony export */ parseQueryString: () => (/* binding */ parseQueryString), +/* harmony export */ removeNullCharacters: () => (/* binding */ removeNullCharacters), +/* harmony export */ roundToDivide: () => (/* binding */ roundToDivide), +/* harmony export */ scrollIntoView: () => (/* binding */ scrollIntoView), +/* harmony export */ toggleCheckedBtn: () => (/* binding */ toggleCheckedBtn), +/* harmony export */ toggleExpandedBtn: () => (/* binding */ toggleExpandedBtn), +/* harmony export */ watchScroll: () => (/* binding */ watchScroll) +/* harmony export */ }); +/* unused harmony export backtrackBeforeAllVisibleElements */ +const DEFAULT_SCALE_VALUE = "auto"; +const DEFAULT_SCALE = 1.0; +const DEFAULT_SCALE_DELTA = 1.1; +const MIN_SCALE = 0.1; +const MAX_SCALE = 10.0; +const UNKNOWN_SCALE = 0; +const MAX_AUTO_SCALE = 1.25; +const SCROLLBAR_PADDING = 40; +const VERTICAL_PADDING = 5; +const RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +const PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +const TextLayerMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_PERMISSIONS: 2 +}; +const ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2, + PAGE: 3 +}; +const SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +const CursorTool = { + SELECT: 0, + HAND: 1, + ZOOM: 2 +}; +const AutoPrintRegExp = /\bprint\s*\(/; +class OutputScale { + constructor() { + const pixelRatio = window.devicePixelRatio || 1; + this.sx = pixelRatio; + this.sy = pixelRatio; } - a.href = blobUrl; - a.target = "_parent"; - if ("download" in a) { - a.download = filename; + get scaled() { + return this.sx !== 1 || this.sy !== 1; } - (document.body || document.documentElement).append(a); - a.click(); - a.remove(); } -class DownloadManager { - constructor() { - this._openBlobUrls = new WeakMap(); +function scrollIntoView(element, spot, scrollMatches = false) { + let parent = element.offsetParent; + if (!parent) { + console.error("offsetParent is not set -- cannot scroll"); + return; } - downloadUrl(url, filename) { - if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { - console.error(`downloadUrl - not a valid URL: ${url}`); + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + if (!parent) { return; } - download(url + "#pdfjs.action=download", filename); } - downloadData(data, filename, contentType) { - const blobUrl = URL.createObjectURL(new Blob([data], { - type: contentType - })); - download(blobUrl, filename); + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } } - openOrDownloadData(element, data, filename) { - const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); - const contentType = isPdfData ? "application/pdf" : ""; - if (isPdfData) { - let blobUrl = this._openBlobUrls.get(element); - if (!blobUrl) { - blobUrl = URL.createObjectURL(new Blob([data], { - type: contentType - })); - this._openBlobUrls.set(element, blobUrl); + parent.scrollTop = offsetY; +} +function watchScroll(viewAreaElement, callback) { + const debounceScroll = function (evt) { + if (rAF) { + return; + } + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; + if (currentX !== lastX) { + state.right = currentX > lastX; } - let viewerUrl; - viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); - try { - window.open(viewerUrl); - return true; - } catch (ex) { - console.error(`openOrDownloadData: ${ex}`); - URL.revokeObjectURL(blobUrl); - this._openBlobUrls.delete(element); + state.lastX = currentX; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; + if (currentY !== lastY) { + state.down = currentY > lastY; } + state.lastY = currentY; + callback(state); + }); + }; + const state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); + return state; +} +function parseQueryString(query) { + const params = new Map(); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); + } + return params; +} +const InvisibleCharactersRegExp = /[\x00-\x1F]/g; +function removeNullCharacters(str, replaceInvisible = false) { + if (!InvisibleCharactersRegExp.test(str)) { + return str; + } + if (replaceInvisible) { + return str.replaceAll(InvisibleCharactersRegExp, m => { + return m === "\x00" ? "" : " "; + }); + } + return str.replaceAll("\x00", ""); +} +function binarySearchFirstItem(items, condition, start = 0) { + let minIndex = start; + let maxIndex = items.length - 1; + if (maxIndex < 0 || !condition(items[maxIndex])) { + return items.length; + } + if (condition(items[minIndex])) { + return minIndex; + } + while (minIndex < maxIndex) { + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + return minIndex; +} +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + const xinv = 1 / x; + const limit = 8; + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + const x_ = x > 1 ? xinv : x; + let a = 0, + b = 1, + c = 1, + d = 1; + while (true) { + const p = a + c, + q = b + d; + if (q > limit) { + break; + } + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; } - this.downloadData(data, filename, contentType); - return false; } - download(blob, url, filename) { - const blobUrl = URL.createObjectURL(blob); - download(blobUrl, filename); + let result; + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; } + return result; } -exports.DownloadManager = DownloadManager; - -/***/ }), -/* 44 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.GenericL10n = void 0; -__webpack_require__(45); -var _l10n_utils = __webpack_require__(30); -const webL10n = document.webL10n; -class GenericL10n { - constructor(lang) { - this._lang = lang; - this._ready = new Promise((resolve, reject) => { - webL10n.setLanguage((0, _l10n_utils.fixupLangCode)(lang), () => { - resolve(webL10n); - }); - }); +function roundToDivide(x, div) { + const r = x % div; + return r === 0 ? x : Math.round(x - r + div); +} +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; + return { + width: changeOrientation ? height : width, + height: changeOrientation ? width : height + }; +} +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; } - async getLanguage() { - const l10n = await this._ready; - return l10n.getLanguage(); + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; + if (pageTop >= top) { + elt = views[index - 1].div; + pageTop = elt.offsetTop + elt.clientTop; } - async getDirection() { - const l10n = await this._ready; - return l10n.getDirection(); + for (let i = index - 2; i >= 0; --i) { + elt = views[i].div; + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + index = i; } - async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) { - const l10n = await this._ready; - return l10n.get(key, args, fallback); + return index; +} +function getVisibleElements({ + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false +}) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; + function isElementBottomAfterViewTop(view) { + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; } - async translate(element) { - const l10n = await this._ready; - return l10n.translate(element); + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; } -} -exports.GenericL10n = GenericL10n; - -/***/ }), -/* 45 */ -/***/ (() => { - - - -document.webL10n = function (window, document, undefined) { - var gL10nData = {}; - var gTextData = ''; - var gTextProp = 'textContent'; - var gLanguage = ''; - var gMacros = {}; - var gReadyState = 'loading'; - var gAsyncResourceLoading = true; - function getL10nResourceLinks() { - return document.querySelectorAll('link[type="application/l10n"]'); - } - function getL10nDictionary() { - var script = document.querySelector('script[type="application/l10n"]'); - return script ? JSON.parse(script.innerHTML) : null; - } - function getTranslatableChildren(element) { - return element ? element.querySelectorAll('*[data-l10n-id]') : []; - } - function getL10nAttributes(element) { - if (!element) return {}; - var l10nId = element.getAttribute('data-l10n-id'); - var l10nArgs = element.getAttribute('data-l10n-args'); - var args = {}; - if (l10nArgs) { - try { - args = JSON.parse(l10nArgs); - } catch (e) { - console.warn('could not parse arguments for #' + l10nId); - } - } - return { - id: l10nId, - args: args - }; + const visible = [], + ids = new Set(), + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); } - function xhrLoadText(url, onSuccess, onFailure) { - onSuccess = onSuccess || function _onSuccess(data) {}; - onFailure = onFailure || function _onFailure() {}; - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, gAsyncResourceLoading); - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=utf-8'); - } - xhr.onreadystatechange = function () { - if (xhr.readyState == 4) { - if (xhr.status == 200 || xhr.status === 0) { - onSuccess(xhr.responseText); - } else { - onFailure(); - } - } - }; - xhr.onerror = onFailure; - xhr.ontimeout = onFailure; - try { - xhr.send(null); - } catch (e) { - onFailure(); - } - } - function parseResource(href, lang, successCallback, failureCallback) { - var baseURL = href.replace(/[^\/]*$/, '') || './'; - function evalString(text) { - if (text.lastIndexOf('\\') < 0) return text; - return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'"); - } - function parseProperties(text, parsedPropertiesCallback) { - var dictionary = {}; - var reBlank = /^\s*|\s*$/; - var reComment = /^\s*#|^\s*$/; - var reSection = /^\s*\[(.*)\]\s*$/; - var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; - var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; - function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) { - var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); - var currentLang = '*'; - var genericLang = lang.split('-', 1)[0]; - var skipLang = false; - var match = ''; - function nextEntry() { - while (true) { - if (!entries.length) { - parsedRawLinesCallback(); - return; - } - var line = entries.shift(); - if (reComment.test(line)) continue; - if (extendedSyntax) { - match = reSection.exec(line); - if (match) { - currentLang = match[1].toLowerCase(); - skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang; - continue; - } else if (skipLang) { - continue; - } - match = reImport.exec(line); - if (match) { - loadImport(baseURL + match[1], nextEntry); - return; - } - } - var tmp = line.match(reSplit); - if (tmp && tmp.length == 3) { - dictionary[tmp[1]] = evalString(tmp[2]); - } - } - } - nextEntry(); - } - function loadImport(url, callback) { - xhrLoadText(url, function (content) { - parseRawLines(content, false, callback); - }, function () { - console.warn(url + ' not found.'); - callback(); - }); - } - parseRawLines(text, true, function () { - parsedPropertiesCallback(dictionary); - }); - } - xhrLoadText(href, function (response) { - gTextData += response; - parseProperties(response, function (data) { - for (var key in data) { - var id, - prop, - index = key.lastIndexOf('.'); - if (index > 0) { - id = key.substring(0, index); - prop = key.substring(index + 1); - } else { - id = key; - prop = gTextProp; - } - if (!gL10nData[id]) { - gL10nData[id] = {}; - } - gL10nData[id][prop] = data[key]; - } - if (successCallback) { - successCallback(); - } - }); - }, failureCallback); - } - function loadLocale(lang, callback) { - if (lang) { - lang = lang.toLowerCase(); - } - callback = callback || function _callback() {}; - clear(); - gLanguage = lang; - var langLinks = getL10nResourceLinks(); - var langCount = langLinks.length; - if (langCount === 0) { - var dict = getL10nDictionary(); - if (dict && dict.locales && dict.default_locale) { - console.log('using the embedded JSON directory, early way out'); - gL10nData = dict.locales[lang]; - if (!gL10nData) { - var defaultLocale = dict.default_locale.toLowerCase(); - for (var anyCaseLang in dict.locales) { - anyCaseLang = anyCaseLang.toLowerCase(); - if (anyCaseLang === lang) { - gL10nData = dict.locales[lang]; - break; - } else if (anyCaseLang === defaultLocale) { - gL10nData = dict.locales[defaultLocale]; - } - } - } - callback(); - } else { - console.log('no resource to load, early way out'); - } - gReadyState = 'complete'; - return; - } - var onResourceLoaded = null; - var gResourceCount = 0; - onResourceLoaded = function () { - gResourceCount++; - if (gResourceCount >= langCount) { - callback(); - gReadyState = 'complete'; + let lastEdge = horizontal ? right : -1; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; + if (lastEdge === -1) { + if (viewBottom >= bottom) { + lastEdge = viewBottom; } - }; - function L10nResourceLink(link) { - var href = link.href; - this.load = function (lang, callback) { - parseResource(href, lang, callback, function () { - console.warn(href + ' not found.'); - console.warn('"' + lang + '" resource not found'); - gLanguage = ''; - callback(); - }); - }; - } - for (var i = 0; i < langCount; i++) { - var resource = new L10nResourceLink(langLinks[i]); - resource.load(lang, onResourceLoaded); - } - } - function clear() { - gL10nData = {}; - gTextData = ''; - gLanguage = ''; - } - function getPluralRules(lang) { - var locales2rules = { - 'af': 3, - 'ak': 4, - 'am': 4, - 'ar': 1, - 'asa': 3, - 'az': 0, - 'be': 11, - 'bem': 3, - 'bez': 3, - 'bg': 3, - 'bh': 4, - 'bm': 0, - 'bn': 3, - 'bo': 0, - 'br': 20, - 'brx': 3, - 'bs': 11, - 'ca': 3, - 'cgg': 3, - 'chr': 3, - 'cs': 12, - 'cy': 17, - 'da': 3, - 'de': 3, - 'dv': 3, - 'dz': 0, - 'ee': 3, - 'el': 3, - 'en': 3, - 'eo': 3, - 'es': 3, - 'et': 3, - 'eu': 3, - 'fa': 0, - 'ff': 5, - 'fi': 3, - 'fil': 4, - 'fo': 3, - 'fr': 5, - 'fur': 3, - 'fy': 3, - 'ga': 8, - 'gd': 24, - 'gl': 3, - 'gsw': 3, - 'gu': 3, - 'guw': 4, - 'gv': 23, - 'ha': 3, - 'haw': 3, - 'he': 2, - 'hi': 4, - 'hr': 11, - 'hu': 0, - 'id': 0, - 'ig': 0, - 'ii': 0, - 'is': 3, - 'it': 3, - 'iu': 7, - 'ja': 0, - 'jmc': 3, - 'jv': 0, - 'ka': 0, - 'kab': 5, - 'kaj': 3, - 'kcg': 3, - 'kde': 0, - 'kea': 0, - 'kk': 3, - 'kl': 3, - 'km': 0, - 'kn': 0, - 'ko': 0, - 'ksb': 3, - 'ksh': 21, - 'ku': 3, - 'kw': 7, - 'lag': 18, - 'lb': 3, - 'lg': 3, - 'ln': 4, - 'lo': 0, - 'lt': 10, - 'lv': 6, - 'mas': 3, - 'mg': 4, - 'mk': 16, - 'ml': 3, - 'mn': 3, - 'mo': 9, - 'mr': 3, - 'ms': 0, - 'mt': 15, - 'my': 0, - 'nah': 3, - 'naq': 7, - 'nb': 3, - 'nd': 3, - 'ne': 3, - 'nl': 3, - 'nn': 3, - 'no': 3, - 'nr': 3, - 'nso': 4, - 'ny': 3, - 'nyn': 3, - 'om': 3, - 'or': 3, - 'pa': 3, - 'pap': 3, - 'pl': 13, - 'ps': 3, - 'pt': 3, - 'rm': 3, - 'ro': 9, - 'rof': 3, - 'ru': 11, - 'rwk': 3, - 'sah': 0, - 'saq': 3, - 'se': 7, - 'seh': 3, - 'ses': 0, - 'sg': 0, - 'sh': 11, - 'shi': 19, - 'sk': 12, - 'sl': 14, - 'sma': 7, - 'smi': 7, - 'smj': 7, - 'smn': 7, - 'sms': 7, - 'sn': 3, - 'so': 3, - 'sq': 3, - 'sr': 11, - 'ss': 3, - 'ssy': 3, - 'st': 3, - 'sv': 3, - 'sw': 3, - 'syr': 3, - 'ta': 3, - 'te': 3, - 'teo': 3, - 'th': 0, - 'ti': 4, - 'tig': 3, - 'tk': 3, - 'tl': 4, - 'tn': 3, - 'to': 0, - 'tr': 0, - 'ts': 3, - 'tzm': 22, - 'uk': 11, - 'ur': 3, - 've': 3, - 'vi': 0, - 'vun': 3, - 'wa': 4, - 'wae': 3, - 'wo': 0, - 'xh': 3, - 'xog': 3, - 'yo': 0, - 'zh': 0, - 'zu': 3 - }; - function isIn(n, list) { - return list.indexOf(n) !== -1; + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; } - function isBetween(n, start, end) { - return start <= n && n <= end; + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; } - var pluralRules = { - '0': function (n) { - return 'other'; - }, - '1': function (n) { - if (isBetween(n % 100, 3, 10)) return 'few'; - if (n === 0) return 'zero'; - if (isBetween(n % 100, 11, 99)) return 'many'; - if (n == 2) return 'two'; - if (n == 1) return 'one'; - return 'other'; - }, - '2': function (n) { - if (n !== 0 && n % 10 === 0) return 'many'; - if (n == 2) return 'two'; - if (n == 1) return 'one'; - return 'other'; - }, - '3': function (n) { - if (n == 1) return 'one'; - return 'other'; - }, - '4': function (n) { - if (isBetween(n, 0, 1)) return 'one'; - return 'other'; - }, - '5': function (n) { - if (isBetween(n, 0, 2) && n != 2) return 'one'; - return 'other'; - }, - '6': function (n) { - if (n === 0) return 'zero'; - if (n % 10 == 1 && n % 100 != 11) return 'one'; - return 'other'; - }, - '7': function (n) { - if (n == 2) return 'two'; - if (n == 1) return 'one'; - return 'other'; - }, - '8': function (n) { - if (isBetween(n, 3, 6)) return 'few'; - if (isBetween(n, 7, 10)) return 'many'; - if (n == 2) return 'two'; - if (n == 1) return 'one'; - return 'other'; - }, - '9': function (n) { - if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; - if (n == 1) return 'one'; - return 'other'; - }, - '10': function (n) { - if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; - if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; - return 'other'; - }, - '11': function (n) { - if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; - if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; - if (n % 10 == 1 && n % 100 != 11) return 'one'; - return 'other'; - }, - '12': function (n) { - if (isBetween(n, 2, 4)) return 'few'; - if (n == 1) return 'one'; - return 'other'; - }, - '13': function (n) { - if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; - if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; - if (n == 1) return 'one'; - return 'other'; - }, - '14': function (n) { - if (isBetween(n % 100, 3, 4)) return 'few'; - if (n % 100 == 2) return 'two'; - if (n % 100 == 1) return 'one'; - return 'other'; - }, - '15': function (n) { - if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; - if (isBetween(n % 100, 11, 19)) return 'many'; - if (n == 1) return 'one'; - return 'other'; - }, - '16': function (n) { - if (n % 10 == 1 && n != 11) return 'one'; - return 'other'; - }, - '17': function (n) { - if (n == 3) return 'few'; - if (n === 0) return 'zero'; - if (n == 6) return 'many'; - if (n == 2) return 'two'; - if (n == 1) return 'one'; - return 'other'; - }, - '18': function (n) { - if (n === 0) return 'zero'; - if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; - return 'other'; - }, - '19': function (n) { - if (isBetween(n, 2, 10)) return 'few'; - if (isBetween(n, 0, 1)) return 'one'; - return 'other'; - }, - '20': function (n) { - if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; - if (n % 1000000 === 0 && n !== 0) return 'many'; - if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; - if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; - return 'other'; - }, - '21': function (n) { - if (n === 0) return 'zero'; - if (n == 1) return 'one'; - return 'other'; - }, - '22': function (n) { - if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; - return 'other'; - }, - '23': function (n) { - if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; - return 'other'; - }, - '24': function (n) { - if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; - if (isIn(n, [2, 12])) return 'two'; - if (isIn(n, [1, 11])) return 'one'; - return 'other'; + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; + visible.push({ + id: view.id, + x: currentWidth, + y: currentHeight, + view, + percent, + widthPercent: fractionWidth * 100 | 0 + }); + ids.add(view.id); + } + const first = visible[0], + last = visible.at(-1); + if (sortByVisibility) { + visible.sort(function (a, b) { + const pc = a.percent - b.percent; + if (Math.abs(pc) > 0.001) { + return -pc; } - }; - var index = locales2rules[lang.replace(/-.*$/, '')]; - if (!(index in pluralRules)) { - console.warn('plural form unknown for [' + lang + ']'); - return function () { - return 'other'; - }; - } - return pluralRules[index]; - } - gMacros.plural = function (str, param, key, prop) { - var n = parseFloat(param); - if (isNaN(n)) return str; - if (prop != gTextProp) return str; - if (!gMacros._pluralRules) { - gMacros._pluralRules = getPluralRules(gLanguage); - } - var index = '[' + gMacros._pluralRules(n) + ']'; - if (n === 0 && key + '[zero]' in gL10nData) { - str = gL10nData[key + '[zero]'][prop]; - } else if (n == 1 && key + '[one]' in gL10nData) { - str = gL10nData[key + '[one]'][prop]; - } else if (n == 2 && key + '[two]' in gL10nData) { - str = gL10nData[key + '[two]'][prop]; - } else if (key + index in gL10nData) { - str = gL10nData[key + index][prop]; - } else if (key + '[other]' in gL10nData) { - str = gL10nData[key + '[other]'][prop]; - } - return str; + return a.id - b.id; + }); + } + return { + first, + last, + views: visible, + ids }; - function getL10nData(key, args, fallback) { - var data = gL10nData[key]; - if (!data) { - console.warn('#' + key + ' is undefined.'); - if (!fallback) { - return null; - } - data = fallback; - } - var rv = {}; - for (var prop in data) { - var str = data[prop]; - str = substIndexes(str, args, key, prop); - str = substArguments(str, args, key); - rv[prop] = str; - } - return rv; - } - function substIndexes(str, args, key, prop) { - var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; - var reMatch = reIndex.exec(str); - if (!reMatch || !reMatch.length) return str; - var macroName = reMatch[1]; - var paramName = reMatch[2]; - var param; - if (args && paramName in args) { - param = args[paramName]; - } else if (paramName in gL10nData) { - param = gL10nData[paramName]; - } - if (macroName in gMacros) { - var macro = gMacros[macroName]; - str = macro(str, param, key, prop); - } - return str; +} +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); + if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { + delta = -delta; + } + return delta; +} +function normalizeWheelEventDelta(evt) { + const deltaMode = evt.deltaMode; + let delta = normalizeWheelEventDirection(evt); + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; + if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) { + delta /= MOUSE_LINES_PER_PAGE; + } + return delta; +} +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} +function isPortraitOrientation(size) { + return size.width <= size.height; +} +const animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +const docStyle = document.documentElement.style; +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +class ProgressBar { + #classList = null; + #disableAutoFetchTimeout = null; + #percent = 0; + #style = null; + #visible = true; + constructor(bar) { + this.#classList = bar.classList; + this.#style = bar.style; } - function substArguments(str, args, key) { - var reArgs = /\{\{\s*(.+?)\s*\}\}/g; - return str.replace(reArgs, function (matched_text, arg) { - if (args && arg in args) { - return args[arg]; - } - if (arg in gL10nData) { - return gL10nData[arg]; - } - console.log('argument {{' + arg + '}} for #' + key + ' is undefined.'); - return matched_text; - }); + get percent() { + return this.#percent; } - function translateElement(element) { - var l10n = getL10nAttributes(element); - if (!l10n.id) return; - var data = getL10nData(l10n.id, l10n.args); - if (!data) { - console.warn('#' + l10n.id + ' is undefined.'); + set percent(val) { + this.#percent = clamp(val, 0, 100); + if (isNaN(val)) { + this.#classList.add("indeterminate"); return; } - if (data[gTextProp]) { - if (getChildElementCount(element) === 0) { - element[gTextProp] = data[gTextProp]; - } else { - var children = element.childNodes; - var found = false; - for (var i = 0, l = children.length; i < l; i++) { - if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) { - if (found) { - children[i].nodeValue = ''; - } else { - children[i].nodeValue = data[gTextProp]; - found = true; - } - } - } - if (!found) { - var textNode = document.createTextNode(data[gTextProp]); - element.prepend(textNode); - } - } - delete data[gTextProp]; + this.#classList.remove("indeterminate"); + this.#style.setProperty("--progressBar-percent", `${this.#percent}%`); + } + setWidth(viewer) { + if (!viewer) { + return; } - for (var k in data) { - element[k] = data[k]; + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + if (scrollbarWidth > 0) { + this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); } } - function getChildElementCount(element) { - if (element.children) { - return element.children.length; - } - if (typeof element.childElementCount !== 'undefined') { - return element.childElementCount; + setDisableAutoFetch(delay = 5000) { + if (isNaN(this.#percent)) { + return; } - var count = 0; - for (var i = 0; i < element.childNodes.length; i++) { - count += element.nodeType === 1 ? 1 : 0; + if (this.#disableAutoFetchTimeout) { + clearTimeout(this.#disableAutoFetchTimeout); } - return count; + this.show(); + this.#disableAutoFetchTimeout = setTimeout(() => { + this.#disableAutoFetchTimeout = null; + this.hide(); + }, delay); } - function translateFragment(element) { - element = element || document.documentElement; - var children = getTranslatableChildren(element); - var elementCount = children.length; - for (var i = 0; i < elementCount; i++) { - translateElement(children[i]); + hide() { + if (!this.#visible) { + return; } - translateElement(element); + this.#visible = false; + this.#classList.add("hidden"); } - return { - get: function (key, args, fallbackString) { - var index = key.lastIndexOf('.'); - var prop = gTextProp; - if (index > 0) { - prop = key.substring(index + 1); - key = key.substring(0, index); - } - var fallback; - if (fallbackString) { - fallback = {}; - fallback[prop] = fallbackString; - } - var data = getL10nData(key, args, fallback); - if (data && prop in data) { - return data[prop]; - } - return '{{' + key + '}}'; - }, - getData: function () { - return gL10nData; - }, - getText: function () { - return gTextData; - }, - getLanguage: function () { - return gLanguage; - }, - setLanguage: function (lang, callback) { - loadLocale(lang, function () { - if (callback) callback(); - }); - }, - getDirection: function () { - var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; - var shortCode = gLanguage.split('-', 1)[0]; - return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; - }, - translate: translateFragment, - getReadyState: function () { - return gReadyState; - }, - ready: function (callback) { - if (!callback) { - return; - } else if (gReadyState == 'complete' || gReadyState == 'interactive') { - window.setTimeout(function () { - callback(); - }); - } else if (document.addEventListener) { - document.addEventListener('localized', function once() { - document.removeEventListener('localized', once); - callback(); - }); - } + show() { + if (this.#visible) { + return; } - }; -}(window, document); - -/***/ }), -/* 46 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.GenericScripting = void 0; -exports.docPropertiesLookup = docPropertiesLookup; -var _pdfjsLib = __webpack_require__(5); -async function docPropertiesLookup(pdfDocument) { - const url = "", - baseUrl = url.split("#")[0]; - let { - info, - metadata, - contentDispositionFilename, - contentLength - } = await pdfDocument.getMetadata(); - if (!contentLength) { - const { - length - } = await pdfDocument.getDownloadInfo(); - contentLength = length; + this.#visible = true; + this.#classList.remove("hidden"); } - return { - ...info, - baseURL: baseUrl, - filesize: contentLength, - filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url), - metadata: metadata?.getRaw(), - authors: metadata?.get("dc:creator"), - numPages: pdfDocument.numPages, - URL: url - }; } -class GenericScripting { - constructor(sandboxBundleSrc) { - this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => { - return window.pdfjsSandbox.QuickJSSandbox(); - }); - } - async createSandbox(data) { - const sandbox = await this._ready; - sandbox.create(data); - } - async dispatchEventInSandbox(event) { - const sandbox = await this._ready; - setTimeout(() => sandbox.dispatchEvent(event), 0); - } - async destroySandbox() { - const sandbox = await this._ready; - sandbox.nukeSandbox(); +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); } + return curActiveOrFocused; } -exports.GenericScripting = GenericScripting; - -/***/ }), -/* 47 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.PDFPrintService = PDFPrintService; -var _pdfjsLib = __webpack_require__(5); -var _app = __webpack_require__(4); -var _print_utils = __webpack_require__(48); -let activeService = null; -let dialog = null; -let overlayManager = null; -function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { - const scratchCanvas = activeService.scratchCanvas; - const PRINT_UNITS = printResolution / _pdfjsLib.PixelsPerInch.PDF; - scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); - scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); - const ctx = scratchCanvas.getContext("2d"); - ctx.save(); - ctx.fillStyle = "rgb(255, 255, 255)"; - ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); - ctx.restore(); - return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) { - const renderContext = { - canvasContext: ctx, - transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], - viewport: pdfPage.getViewport({ - scale: 1, - rotation: size.rotation - }), - intent: "print", - annotationMode: _pdfjsLib.AnnotationMode.ENABLE_STORAGE, - optionalContentConfigPromise, - printAnnotationStorage - }; - return pdfPage.render(renderContext).promise; - }); -} -function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, printAnnotationStoragePromise = null, l10n) { - this.pdfDocument = pdfDocument; - this.pagesOverview = pagesOverview; - this.printContainer = printContainer; - this._printResolution = printResolution || 150; - this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); - this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); - this.l10n = l10n; - this.currentPage = -1; - this.scratchCanvas = document.createElement("canvas"); -} -PDFPrintService.prototype = { - layout() { - this.throwIfInactive(); - const body = document.querySelector("body"); - body.setAttribute("data-pdfjsprinting", true); - const hasEqualPageSizes = this.pagesOverview.every(function (size) { - return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; - }, this); - if (!hasEqualPageSizes) { - console.warn("Not all pages have the same size. The printed " + "result may be incorrect!"); - } - this.pageStyleSheet = document.createElement("style"); - const pageSize = this.pagesOverview[0]; - this.pageStyleSheet.textContent = "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}"; - body.append(this.pageStyleSheet); - }, - destroy() { - if (activeService !== this) { - return; - } - this.printContainer.textContent = ""; - const body = document.querySelector("body"); - body.removeAttribute("data-pdfjsprinting"); - if (this.pageStyleSheet) { - this.pageStyleSheet.remove(); - this.pageStyleSheet = null; - } - this.scratchCanvas.width = this.scratchCanvas.height = 0; - this.scratchCanvas = null; - activeService = null; - ensureOverlay().then(function () { - if (overlayManager.active === dialog) { - overlayManager.close(dialog); - } - }); - }, - renderPages() { - if (this.pdfDocument.isPureXfa) { - (0, _print_utils.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); - return Promise.resolve(); - } - const pageCount = this.pagesOverview.length; - const renderNextPage = (resolve, reject) => { - this.throwIfInactive(); - if (++this.currentPage >= pageCount) { - renderProgress(pageCount, pageCount, this.l10n); - resolve(); - return; - } - const index = this.currentPage; - renderProgress(index, pageCount, this.l10n); - renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { - renderNextPage(resolve, reject); - }, reject); - }; - return new Promise(renderNextPage); - }, - useRenderedPage() { - this.throwIfInactive(); - const img = document.createElement("img"); - const scratchCanvas = this.scratchCanvas; - if ("toBlob" in scratchCanvas) { - scratchCanvas.toBlob(function (blob) { - img.src = URL.createObjectURL(blob); - }); - } else { - img.src = scratchCanvas.toDataURL(); - } - const wrapper = document.createElement("div"); - wrapper.className = "printedPage"; - wrapper.append(img); - this.printContainer.append(wrapper); - return new Promise(function (resolve, reject) { - img.onload = resolve; - img.onerror = reject; - }); - }, - performPrint() { - this.throwIfInactive(); - return new Promise(resolve => { - setTimeout(() => { - if (!this.active) { - resolve(); - return; - } - print.call(window); - setTimeout(resolve, 20); - }, 0); - }); - }, - get active() { - return this === activeService; - }, - throwIfInactive() { - if (!this.active) { - throw new Error("This print request was cancelled or completed."); - } +function apiPageLayoutToViewerModes(layout) { + let scrollMode = ScrollMode.VERTICAL, + spreadMode = SpreadMode.NONE; + switch (layout) { + case "SinglePage": + scrollMode = ScrollMode.PAGE; + break; + case "OneColumn": + break; + case "TwoPageLeft": + scrollMode = ScrollMode.PAGE; + case "TwoColumnLeft": + spreadMode = SpreadMode.ODD; + break; + case "TwoPageRight": + scrollMode = ScrollMode.PAGE; + case "TwoColumnRight": + spreadMode = SpreadMode.EVEN; + break; } -}; -const print = window.print; -window.print = function () { - if (activeService) { - console.warn("Ignored window.print() because of a pending print job."); - return; + return { + scrollMode, + spreadMode + }; +} +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; + case "UseThumbs": + return SidebarView.THUMBS; + case "UseOutlines": + return SidebarView.OUTLINE; + case "UseAttachments": + return SidebarView.ATTACHMENTS; + case "UseOC": + return SidebarView.LAYERS; } - ensureOverlay().then(function () { - if (activeService) { - overlayManager.open(dialog); - } - }); - try { - dispatchEvent("beforeprint"); - } finally { - if (!activeService) { - console.error("Expected print service to be initialized."); - ensureOverlay().then(function () { - if (overlayManager.active === dialog) { - overlayManager.close(dialog); + return SidebarView.NONE; +} +function toggleCheckedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-checked", toggle); + view?.classList.toggle("hidden", !toggle); +} +function toggleExpandedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-expanded", toggle); + view?.classList.toggle("hidden", !toggle); +} + + +/***/ }), + +/***/ 1096: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ViewHistory: () => (/* binding */ ViewHistory) +/* harmony export */ }); +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; + if (!Array.isArray(database.files)) { + database.files = []; + } else { + while (database.files.length >= this.cacheSize) { + database.files.shift(); } - }); - return; - } - const activeServiceOnEntry = activeService; - activeService.renderPages().then(function () { - return activeServiceOnEntry.performPrint(); - }).catch(function () {}).then(function () { - if (activeServiceOnEntry.active) { - abort(); + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } + } + } + if (index === -1) { + index = database.files.push({ + fingerprint: this.fingerprint + }) - 1; } + this.file = database.files[index]; + this.database = database; }); } -}; -function dispatchEvent(eventType) { - const event = document.createEvent("CustomEvent"); - event.initCustomEvent(eventType, false, false, "custom"); - window.dispatchEvent(event); -} -function abort() { - if (activeService) { - activeService.destroy(); - dispatchEvent("afterprint"); + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); } -} -function renderProgress(index, total, l10n) { - dialog ||= document.getElementById("printServiceDialog"); - const progress = Math.round(100 * index / total); - const progressBar = dialog.querySelector("progress"); - const progressPerc = dialog.querySelector(".relative-progress"); - progressBar.value = progress; - l10n.get("print_progress_percent", { - progress - }).then(msg => { - progressPerc.textContent = msg; - }); -} -window.addEventListener("keydown", function (event) { - if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { - window.print(); - event.preventDefault(); - event.stopImmediatePropagation(); + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); } -}, true); -if ("onbeforeprint" in window) { - const stopPropagationIfNeeded = function (event) { - if (event.detail !== "custom") { - event.stopImmediatePropagation(); - } - }; - window.addEventListener("beforeprint", stopPropagationIfNeeded); - window.addEventListener("afterprint", stopPropagationIfNeeded); -} -let overlayPromise; -function ensureOverlay() { - if (!overlayPromise) { - overlayManager = _app.PDFViewerApplication.overlayManager; - if (!overlayManager) { - throw new Error("The overlay manager has not yet been initialized."); + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } + async setMultiple(properties) { + await this._initializedPromise; + for (const name in properties) { + this.file[name] = properties[name]; } - dialog ||= document.getElementById("printServiceDialog"); - overlayPromise = overlayManager.register(dialog, true); - document.getElementById("printCancel").onclick = abort; - dialog.addEventListener("close", abort); + return this._writeToStorage(); } - return overlayPromise; -} -_app.PDFPrintServiceFactory.instance = { - supportsPrinting: true, - createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n) { - if (activeService) { - throw new Error("The print service is created and active."); + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; } - activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n); - return activeService; + return values; } -}; +} + /***/ }), -/* 48 */ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ 6400: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ PDFViewerApplication: () => (/* reexport safe */ _app_js__WEBPACK_IMPORTED_MODULE_5__.PDFViewerApplication), +/* harmony export */ PDFViewerApplicationConstants: () => (/* binding */ AppConstants), +/* harmony export */ PDFViewerApplicationOptions: () => (/* reexport safe */ _app_options_js__WEBPACK_IMPORTED_MODULE_3__.AppOptions) +/* harmony export */ }); +/* harmony import */ var web_com__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1546); +/* harmony import */ var web_print_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1834); +/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4927); +/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8961); +/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3234); +/* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([web_com__WEBPACK_IMPORTED_MODULE_0__, web_print_service__WEBPACK_IMPORTED_MODULE_1__, _app_js__WEBPACK_IMPORTED_MODULE_5__]); +([web_com__WEBPACK_IMPORTED_MODULE_0__, web_print_service__WEBPACK_IMPORTED_MODULE_1__, _app_js__WEBPACK_IMPORTED_MODULE_5__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.getXfaHtmlForPrinting = getXfaHtmlForPrinting; -var _pdfjsLib = __webpack_require__(5); -var _pdf_link_service = __webpack_require__(3); -var _xfa_layer_builder = __webpack_require__(37); -function getXfaHtmlForPrinting(printContainer, pdfDocument) { - const xfaHtml = pdfDocument.allXfaHtml; - const linkService = new _pdf_link_service.SimpleLinkService(); - const scale = Math.round(_pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; - for (const xfaPage of xfaHtml.children) { - const page = document.createElement("div"); - page.className = "xfaPrintedPage"; - printContainer.append(page); - const builder = new _xfa_layer_builder.XfaLayerBuilder({ - pageDiv: page, - pdfPage: null, - annotationStorage: pdfDocument.annotationStorage, - linkService, - xfaHtml: xfaPage - }); - const viewport = (0, _pdfjsLib.getXfaPageViewport)(xfaPage, { - scale - }); - builder.render(viewport, "print"); - } -} -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -var exports = __webpack_exports__; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "PDFViewerApplication", ({ - enumerable: true, - get: function () { - return _app.PDFViewerApplication; - } -})); -exports.PDFViewerApplicationConstants = void 0; -Object.defineProperty(exports, "PDFViewerApplicationOptions", ({ - enumerable: true, - get: function () { - return _app_options.AppOptions; - } -})); -var _ui_utils = __webpack_require__(1); -var _app_options = __webpack_require__(2); -var _pdf_link_service = __webpack_require__(3); -var _app = __webpack_require__(4); -const pdfjsVersion = '3.0.279'; -const pdfjsBuild = 'd0823066c'; + + + + +const pdfjsVersion = '4.0.379'; +const pdfjsBuild = '9e14d04fd'; const AppConstants = { - LinkTarget: _pdf_link_service.LinkTarget, - RenderingStates: _ui_utils.RenderingStates, - ScrollMode: _ui_utils.ScrollMode, - SpreadMode: _ui_utils.SpreadMode + LinkTarget: _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_4__.LinkTarget, + RenderingStates: _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__.RenderingStates, + ScrollMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__.ScrollMode, + SpreadMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_2__.SpreadMode }; -exports.PDFViewerApplicationConstants = AppConstants; -window.PDFViewerApplication = _app.PDFViewerApplication; +window.PDFViewerApplication = _app_js__WEBPACK_IMPORTED_MODULE_5__.PDFViewerApplication; window.PDFViewerApplicationConstants = AppConstants; -window.PDFViewerApplicationOptions = _app_options.AppOptions; -; -; -{ - __webpack_require__(41); -} -; -{ - __webpack_require__(47); -} +window.PDFViewerApplicationOptions = _app_options_js__WEBPACK_IMPORTED_MODULE_3__.AppOptions; function getViewerConfiguration() { return { appContainer: document.body, @@ -13418,12 +14765,16 @@ function getViewerConfiguration() { zoomIn: document.getElementById("zoomIn"), zoomOut: document.getElementById("zoomOut"), viewFind: document.getElementById("viewFind"), - openFile: document.getElementById("openFile"), print: document.getElementById("print"), editorFreeTextButton: document.getElementById("editorFreeText"), editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"), + editorHighlightButton: document.getElementById("editorHighlight"), + editorHighlightParamsToolbar: document.getElementById("editorHighlightParamsToolbar"), + editorHighlightColorPicker: document.getElementById("editorHighlightColorPicker"), editorInkButton: document.getElementById("editorInk"), editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"), + editorStampButton: document.getElementById("editorStamp"), + editorStampParamsToolbar: document.getElementById("editorStampParamsToolbar"), download: document.getElementById("download") }, secondaryToolbar: { @@ -13453,6 +14804,7 @@ function getViewerConfiguration() { outerContainer: document.getElementById("outerContainer"), sidebarContainer: document.getElementById("sidebarContainer"), toggleButton: document.getElementById("sidebarToggle"), + resizer: document.getElementById("sidebarResizer"), thumbnailButton: document.getElementById("viewThumbnail"), outlineButton: document.getElementById("viewOutline"), attachmentsButton: document.getElementById("viewAttachments"), @@ -13461,13 +14813,8 @@ function getViewerConfiguration() { outlineView: document.getElementById("outlineView"), attachmentsView: document.getElementById("attachmentsView"), layersView: document.getElementById("layersView"), - outlineOptionsContainer: document.getElementById("outlineOptionsContainer"), currentOutlineItemButton: document.getElementById("currentOutlineItem") }, - sidebarResizer: { - outerContainer: document.getElementById("outerContainer"), - resizer: document.getElementById("sidebarResizer") - }, findBar: { bar: document.getElementById("findbar"), toggleButton: document.getElementById("viewFind"), @@ -13508,23 +14855,35 @@ function getViewerConfiguration() { linearized: document.getElementById("linearizedField") } }, + altTextDialog: { + dialog: document.getElementById("altTextDialog"), + optionDescription: document.getElementById("descriptionButton"), + optionDecorative: document.getElementById("decorativeButton"), + textarea: document.getElementById("descriptionTextarea"), + cancelButton: document.getElementById("altTextCancel"), + saveButton: document.getElementById("altTextSave") + }, annotationEditorParams: { editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"), editorFreeTextColor: document.getElementById("editorFreeTextColor"), editorInkColor: document.getElementById("editorInkColor"), editorInkThickness: document.getElementById("editorInkThickness"), - editorInkOpacity: document.getElementById("editorInkOpacity") + editorInkOpacity: document.getElementById("editorInkOpacity"), + editorStampAddImage: document.getElementById("editorStampAddImage") }, printContainer: document.getElementById("printContainer"), openFileInput: document.getElementById("fileInput"), - debuggerScriptPath: "./debugger.js" + debuggerScriptPath: "./debugger.mjs" }; } function webViewerLoad() { const config = getViewerConfiguration(); - const event = document.createEvent("CustomEvent"); - event.initCustomEvent("webviewerloaded", true, true, { - source: window + const event = new CustomEvent("webviewerloaded", { + bubbles: true, + cancelable: true, + detail: { + source: window + } }); try { parent.document.dispatchEvent(event); @@ -13532,7 +14891,7 @@ function webViewerLoad() { console.error(`webviewerloaded: ${ex}`); document.dispatchEvent(event); } - _app.PDFViewerApplication.run(config); + _app_js__WEBPACK_IMPORTED_MODULE_5__.PDFViewerApplication.run(config); } document.blockUnblockOnload?.(true); if (document.readyState === "interactive" || document.readyState === "complete") { @@ -13540,8 +14899,216 @@ if (document.readyState === "interactive" || document.readyState === "complete") } else { document.addEventListener("DOMContentLoaded", webViewerLoad, true); } -})(); -/******/ })() -; -//# sourceMappingURL=viewer.js.map \ No newline at end of file +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }), + +/***/ 8012: +/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ XfaLayerBuilder: () => (/* binding */ XfaLayerBuilder) +/* harmony export */ }); +/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1869); +var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); +pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; + +class XfaLayerBuilder { + constructor({ + pdfPage, + annotationStorage = null, + linkService, + xfaHtml = null + }) { + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.linkService = linkService; + this.xfaHtml = xfaHtml; + this.div = null; + this._cancelled = false; + } + async render(viewport, intent = "display") { + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml: this.xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + this.div = document.createElement("div"); + parameters.div = this.div; + return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.render(parameters); + } + const xfaHtml = await this.pdfPage.getXfa(); + if (this._cancelled || !xfaHtml) { + return { + textDivs: [] + }; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + if (this.div) { + return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.update(parameters); + } + this.div = document.createElement("div"); + parameters.div = this.div; + return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.render(parameters); + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} + +__webpack_async_result__(); +} catch(e) { __webpack_async_result__(e); } }); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/async module */ +/******/ (() => { +/******/ var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__"; +/******/ var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__"; +/******/ var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__"; +/******/ var resolveQueue = (queue) => { +/******/ if(queue && queue.d < 1) { +/******/ queue.d = 1; +/******/ queue.forEach((fn) => (fn.r--)); +/******/ queue.forEach((fn) => (fn.r-- ? fn.r++ : fn())); +/******/ } +/******/ } +/******/ var wrapDeps = (deps) => (deps.map((dep) => { +/******/ if(dep !== null && typeof dep === "object") { +/******/ if(dep[webpackQueues]) return dep; +/******/ if(dep.then) { +/******/ var queue = []; +/******/ queue.d = 0; +/******/ dep.then((r) => { +/******/ obj[webpackExports] = r; +/******/ resolveQueue(queue); +/******/ }, (e) => { +/******/ obj[webpackError] = e; +/******/ resolveQueue(queue); +/******/ }); +/******/ var obj = {}; +/******/ obj[webpackQueues] = (fn) => (fn(queue)); +/******/ return obj; +/******/ } +/******/ } +/******/ var ret = {}; +/******/ ret[webpackQueues] = x => {}; +/******/ ret[webpackExports] = dep; +/******/ return ret; +/******/ })); +/******/ __webpack_require__.a = (module, body, hasAwait) => { +/******/ var queue; +/******/ hasAwait && ((queue = []).d = -1); +/******/ var depQueues = new Set(); +/******/ var exports = module.exports; +/******/ var currentDeps; +/******/ var outerResolve; +/******/ var reject; +/******/ var promise = new Promise((resolve, rej) => { +/******/ reject = rej; +/******/ outerResolve = resolve; +/******/ }); +/******/ promise[webpackExports] = exports; +/******/ promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {})); +/******/ module.exports = promise; +/******/ body((deps) => { +/******/ currentDeps = wrapDeps(deps); +/******/ var fn; +/******/ var getResult = () => (currentDeps.map((d) => { +/******/ if(d[webpackError]) throw d[webpackError]; +/******/ return d[webpackExports]; +/******/ })) +/******/ var promise = new Promise((resolve) => { +/******/ fn = () => (resolve(getResult)); +/******/ fn.r = 0; +/******/ var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)))); +/******/ currentDeps.map((dep) => (dep[webpackQueues](fnQueue))); +/******/ }); +/******/ return fn.r ? promise : getResult(); +/******/ }, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue))); +/******/ queue && queue.d < 0 && (queue.d = 0); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ var __webpack_exports__ = __webpack_require__(6400); +/******/ __webpack_exports__ = await __webpack_exports__; +/******/ var __webpack_exports__PDFViewerApplication = __webpack_exports__.PDFViewerApplication; +/******/ var __webpack_exports__PDFViewerApplicationConstants = __webpack_exports__.PDFViewerApplicationConstants; +/******/ var __webpack_exports__PDFViewerApplicationOptions = __webpack_exports__.PDFViewerApplicationOptions; +/******/ export { __webpack_exports__PDFViewerApplication as PDFViewerApplication, __webpack_exports__PDFViewerApplicationConstants as PDFViewerApplicationConstants, __webpack_exports__PDFViewerApplicationOptions as PDFViewerApplicationOptions }; +/******/ + +//# sourceMappingURL=viewer.mjs.map \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs.map b/src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs.map new file mode 100644 index 0000000000000000000000000000000000000000..2ade1af7aa7b8ba0f30d6588fa4f7d94b1f5b6a9 --- /dev/null +++ b/src/main/resources/META-INF/resources/file/preview/static/pdfjs/4.0.379/web/viewer.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"viewer.mjs","mappings":"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","sources":["webpack://pdf.js/node_modules/@fluent/bundle/esm/types.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/resolver.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/scope.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/builtins.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/memoizer.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/bundle.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/resource.js","webpack://pdf.js/node_modules/@fluent/bundle/esm/index.js","webpack://pdf.js/node_modules/@fluent/dom/esm/overlay.js","webpack://pdf.js/node_modules/cached-iterable/src/cached_iterable.mjs","webpack://pdf.js/node_modules/cached-iterable/src/cached_sync_iterable.mjs","webpack://pdf.js/node_modules/cached-iterable/src/cached_async_iterable.mjs","webpack://pdf.js/node_modules/cached-iterable/src/index.mjs","webpack://pdf.js/node_modules/@fluent/dom/esm/localization.js","webpack://pdf.js/node_modules/@fluent/dom/esm/dom_localization.js","webpack://pdf.js/node_modules/@fluent/dom/esm/index.js","webpack://pdf.js/web/alt_text_manager.js","webpack://pdf.js/web/annotation_editor_layer_builder.js","webpack://pdf.js/web/annotation_editor_params.js","webpack://pdf.js/web/annotation_layer_builder.js","webpack://pdf.js/web/app.js","webpack://pdf.js/web/app_options.js","webpack://pdf.js/web/base_tree_viewer.js","webpack://pdf.js/web/download_manager.js","webpack://pdf.js/web/draw_layer_builder.js","webpack://pdf.js/web/event_utils.js","webpack://pdf.js/web/generic_scripting.js","webpack://pdf.js/web/genericcom.js","webpack://pdf.js/web/genericl10n.js","webpack://pdf.js/web/grab_to_pan.js","webpack://pdf.js/web/l10n.js","webpack://pdf.js/web/l10n_utils.js","webpack://pdf.js/web/overlay_manager.js","webpack://pdf.js/web/password_prompt.js","webpack://pdf.js/web/pdf_attachment_viewer.js","webpack://pdf.js/web/pdf_cursor_tools.js","webpack://pdf.js/web/pdf_document_properties.js","webpack://pdf.js/web/pdf_find_bar.js","webpack://pdf.js/web/pdf_find_controller.js","webpack://pdf.js/web/pdf_find_utils.js","webpack://pdf.js/web/pdf_history.js","webpack://pdf.js/web/pdf_layer_viewer.js","webpack://pdf.js/web/pdf_link_service.js","webpack://pdf.js/web/pdf_outline_viewer.js","webpack://pdf.js/web/pdf_page_view.js","webpack://pdf.js/web/pdf_presentation_mode.js","webpack://pdf.js/web/pdf_print_service.js","webpack://pdf.js/web/pdf_rendering_queue.js","webpack://pdf.js/web/pdf_scripting_manager.js","webpack://pdf.js/web/pdf_sidebar.js","webpack://pdf.js/web/pdf_thumbnail_view.js","webpack://pdf.js/web/pdf_thumbnail_viewer.js","webpack://pdf.js/web/pdf_viewer.js","webpack://pdf.js/web/pdfjs.js","webpack://pdf.js/web/preferences.js","webpack://pdf.js/web/print_utils.js","webpack://pdf.js/web/secondary_toolbar.js","webpack://pdf.js/web/struct_tree_layer_builder.js","webpack://pdf.js/web/text_accessibility.js","webpack://pdf.js/web/text_highlighter.js","webpack://pdf.js/web/text_layer_builder.js","webpack://pdf.js/web/toolbar.js","webpack://pdf.js/web/ui_utils.js","webpack://pdf.js/web/view_history.js","webpack://pdf.js/web/viewer.js","webpack://pdf.js/web/xfa_layer_builder.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/async module","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/webpack/before-startup","webpack://pdf.js/webpack/startup","webpack://pdf.js/webpack/after-startup"],"sourcesContent":["/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n /**\n * Create a `FluentType` instance.\n *\n * @param value The JavaScript value to wrap.\n */\n constructor(value) {\n this.value = value;\n }\n /**\n * Unwrap the raw value stored by this `FluentType`.\n */\n valueOf() {\n return this.value;\n }\n}\n/**\n * A `FluentType` representing no correct value.\n */\nexport class FluentNone extends FluentType {\n /**\n * Create an instance of `FluentNone` with an optional fallback value.\n * @param value The fallback value of this `FluentNone`.\n */\n constructor(value = \"???\") {\n super(value);\n }\n /**\n * Format this `FluentNone` to the fallback string.\n */\n toString(scope) {\n return `{${this.value}}`;\n }\n}\n/**\n * A `FluentType` representing a number.\n *\n * A `FluentNumber` instance stores the number value of the number it\n * represents. It may also store an option bag of options which will be passed\n * to `Intl.NumerFormat` when the `FluentNumber` is formatted to a string.\n */\nexport class FluentNumber extends FluentType {\n /**\n * Create an instance of `FluentNumber` with options to the\n * `Intl.NumberFormat` constructor.\n *\n * @param value The number value of this `FluentNumber`.\n * @param opts Options which will be passed to `Intl.NumberFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentNumber` to a string.\n */\n toString(scope) {\n try {\n const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts);\n return nf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return this.value.toString(10);\n }\n }\n}\n/**\n * A `FluentType` representing a date and time.\n *\n * A `FluentDateTime` instance stores the number value of the date it\n * represents, as a numerical timestamp in milliseconds. It may also store an\n * option bag of options which will be passed to `Intl.DateTimeFormat` when the\n * `FluentDateTime` is formatted to a string.\n */\nexport class FluentDateTime extends FluentType {\n /**\n * Create an instance of `FluentDateTime` with options to the\n * `Intl.DateTimeFormat` constructor.\n *\n * @param value The number value of this `FluentDateTime`, in milliseconds.\n * @param opts Options which will be passed to `Intl.DateTimeFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentDateTime` to a string.\n */\n toString(scope) {\n try {\n const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);\n return dtf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return new Date(this.value).toISOString();\n }\n }\n}\n","/* global Intl */\n/**\n * @overview\n *\n * The role of the Fluent resolver is to format a `Pattern` to an instance of\n * `FluentValue`. For performance reasons, primitive strings are considered\n * such instances, too.\n *\n * Translations can contain references to other messages or variables,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers and dates into the bundle's languages.\n * See the documentation of the Fluent syntax for more information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * All expressions resolve to an instance of `FluentValue`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n * Functions in this file pass around an instance of the `Scope` class, which\n * stores the data required for successful resolution and error recovery.\n */\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\n/**\n * The maximum number of placeables which can be expanded in a single call to\n * `formatPattern`. The limit protects against the Billion Laughs and Quadratic\n * Blowup attacks. See https://msdn.microsoft.com/en-us/magazine/ee335713.aspx.\n */\nconst MAX_PLACEABLES = 100;\n/** Unicode bidi isolation characters. */\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n/** Helper: match a variant key to the given selector. */\nfunction match(scope, selector, key) {\n if (key === selector) {\n // Both are strings.\n return true;\n }\n // XXX Consider comparing options too, e.g. minimumFractionDigits.\n if (key instanceof FluentNumber &&\n selector instanceof FluentNumber &&\n key.value === selector.value) {\n return true;\n }\n if (selector instanceof FluentNumber && typeof key === \"string\") {\n let category = scope\n .memoizeIntlObject(Intl.PluralRules, selector.opts)\n .select(selector.value);\n if (key === category) {\n return true;\n }\n }\n return false;\n}\n/** Helper: resolve the default variant from a list of variants. */\nfunction getDefault(scope, variants, star) {\n if (variants[star]) {\n return resolvePattern(scope, variants[star].value);\n }\n scope.reportError(new RangeError(\"No default\"));\n return new FluentNone();\n}\n/** Helper: resolve arguments to a call expression. */\nfunction getArguments(scope, args) {\n const positional = [];\n const named = Object.create(null);\n for (const arg of args) {\n if (arg.type === \"narg\") {\n named[arg.name] = resolveExpression(scope, arg.value);\n }\n else {\n positional.push(resolveExpression(scope, arg));\n }\n }\n return { positional, named };\n}\n/** Resolve an expression to a Fluent type. */\nfunction resolveExpression(scope, expr) {\n switch (expr.type) {\n case \"str\":\n return expr.value;\n case \"num\":\n return new FluentNumber(expr.value, {\n minimumFractionDigits: expr.precision,\n });\n case \"var\":\n return resolveVariableReference(scope, expr);\n case \"mesg\":\n return resolveMessageReference(scope, expr);\n case \"term\":\n return resolveTermReference(scope, expr);\n case \"func\":\n return resolveFunctionReference(scope, expr);\n case \"select\":\n return resolveSelectExpression(scope, expr);\n default:\n return new FluentNone();\n }\n}\n/** Resolve a reference to a variable. */\nfunction resolveVariableReference(scope, { name }) {\n let arg;\n if (scope.params) {\n // We're inside a TermReference. It's OK to reference undefined parameters.\n if (Object.prototype.hasOwnProperty.call(scope.params, name)) {\n arg = scope.params[name];\n }\n else {\n return new FluentNone(`$${name}`);\n }\n }\n else if (scope.args &&\n Object.prototype.hasOwnProperty.call(scope.args, name)) {\n // We're in the top-level Pattern or inside a MessageReference. Missing\n // variables references produce ReferenceErrors.\n arg = scope.args[name];\n }\n else {\n scope.reportError(new ReferenceError(`Unknown variable: $${name}`));\n return new FluentNone(`$${name}`);\n }\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg.getTime());\n }\n // eslint-disable-next-line no-fallthrough\n default:\n scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));\n return new FluentNone(`$${name}`);\n }\n}\n/** Resolve a reference to another message. */\nfunction resolveMessageReference(scope, { name, attr }) {\n const message = scope.bundle._messages.get(name);\n if (!message) {\n scope.reportError(new ReferenceError(`Unknown message: ${name}`));\n return new FluentNone(name);\n }\n if (attr) {\n const attribute = message.attributes[attr];\n if (attribute) {\n return resolvePattern(scope, attribute);\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${name}.${attr}`);\n }\n if (message.value) {\n return resolvePattern(scope, message.value);\n }\n scope.reportError(new ReferenceError(`No value: ${name}`));\n return new FluentNone(name);\n}\n/** Resolve a call to a Term with key-value arguments. */\nfunction resolveTermReference(scope, { name, attr, args }) {\n const id = `-${name}`;\n const term = scope.bundle._terms.get(id);\n if (!term) {\n scope.reportError(new ReferenceError(`Unknown term: ${id}`));\n return new FluentNone(id);\n }\n if (attr) {\n const attribute = term.attributes[attr];\n if (attribute) {\n // Every TermReference has its own variables.\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, attribute);\n scope.params = null;\n return resolved;\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${id}.${attr}`);\n }\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, term.value);\n scope.params = null;\n return resolved;\n}\n/** Resolve a call to a Function with positional and key-value arguments. */\nfunction resolveFunctionReference(scope, { name, args }) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `FluentBundle` constructor.\n let func = scope.bundle._functions[name];\n if (!func) {\n scope.reportError(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n if (typeof func !== \"function\") {\n scope.reportError(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n try {\n let resolved = getArguments(scope, args);\n return func(resolved.positional, resolved.named);\n }\n catch (err) {\n scope.reportError(err);\n return new FluentNone(`${name}()`);\n }\n}\n/** Resolve a select expression to the member object. */\nfunction resolveSelectExpression(scope, { selector, variants, star }) {\n let sel = resolveExpression(scope, selector);\n if (sel instanceof FluentNone) {\n return getDefault(scope, variants, star);\n }\n // Match the selector against keys of each variant, in order.\n for (const variant of variants) {\n const key = resolveExpression(scope, variant.key);\n if (match(scope, sel, key)) {\n return resolvePattern(scope, variant.value);\n }\n }\n return getDefault(scope, variants, star);\n}\n/** Resolve a pattern (a complex string with placeables). */\nexport function resolveComplexPattern(scope, ptn) {\n if (scope.dirty.has(ptn)) {\n scope.reportError(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n // Tag the pattern as dirty for the purpose of the current resolution.\n scope.dirty.add(ptn);\n const result = [];\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = scope.bundle._useIsolating && ptn.length > 1;\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(scope.bundle._transform(elem));\n continue;\n }\n scope.placeables++;\n if (scope.placeables > MAX_PLACEABLES) {\n scope.dirty.delete(ptn);\n // This is a fatal error which causes the resolver to instantly bail out\n // on this pattern. The length check protects against excessive memory\n // usage, and throwing protects against eating up the CPU when long\n // placeables are deeply nested.\n throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` +\n `max allowed is ${MAX_PLACEABLES}`);\n }\n if (useIsolating) {\n result.push(FSI);\n }\n result.push(resolveExpression(scope, elem).toString(scope));\n if (useIsolating) {\n result.push(PDI);\n }\n }\n scope.dirty.delete(ptn);\n return result.join(\"\");\n}\n/**\n * Resolve a simple or a complex Pattern to a FluentString\n * (which is really the string primitive).\n */\nfunction resolvePattern(scope, value) {\n // Resolve a simple pattern.\n if (typeof value === \"string\") {\n return scope.bundle._transform(value);\n }\n return resolveComplexPattern(scope, value);\n}\n","export class Scope {\n constructor(bundle, errors, args) {\n /**\n * The Set of patterns already encountered during this resolution.\n * Used to detect and prevent cyclic resolutions.\n * @ignore\n */\n this.dirty = new WeakSet();\n /** A dict of parameters passed to a TermReference. */\n this.params = null;\n /**\n * The running count of placeables resolved so far.\n * Used to detect the Billion Laughs and Quadratic Blowup attacks.\n * @ignore\n */\n this.placeables = 0;\n this.bundle = bundle;\n this.errors = errors;\n this.args = args;\n }\n reportError(error) {\n if (!this.errors || !(error instanceof Error)) {\n throw error;\n }\n this.errors.push(error);\n }\n memoizeIntlObject(ctor, opts) {\n let cache = this.bundle._intls.get(ctor);\n if (!cache) {\n cache = {};\n this.bundle._intls.set(ctor, cache);\n }\n let id = JSON.stringify(opts);\n if (!cache[id]) {\n cache[id] = new ctor(this.bundle.locales, opts);\n }\n return cache[id];\n }\n}\n","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentValue`. Functions must return `FluentValues` as well.\n */\nimport { FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\nfunction values(opts, allowed) {\n const unwrapped = Object.create(null);\n for (const [name, opt] of Object.entries(opts)) {\n if (allowed.includes(name)) {\n unwrapped[name] = opt.valueOf();\n }\n }\n return unwrapped;\n}\nconst NUMBER_ALLOWED = [\n \"unitDisplay\",\n \"currencyDisplay\",\n \"useGrouping\",\n \"minimumIntegerDigits\",\n \"minimumFractionDigits\",\n \"maximumFractionDigits\",\n \"minimumSignificantDigits\",\n \"maximumSignificantDigits\",\n];\n/**\n * The implementation of the `NUMBER()` builtin available to translations.\n *\n * Translations may call the `NUMBER()` builtin in order to specify formatting\n * options of a number. For example:\n *\n * pi = The value of π is {NUMBER($pi, maximumFractionDigits: 2)}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * unitDisplay\n * currencyDisplay\n * useGrouping\n * minimumIntegerDigits\n * minimumFractionDigits\n * maximumFractionDigits\n * minimumSignificantDigits\n * maximumSignificantDigits\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `NUMBER()`.\n * @param opts The named argments passed to this `NUMBER()`.\n */\nexport function NUMBER(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`NUMBER(${arg.valueOf()})`);\n }\n if (arg instanceof FluentNumber) {\n return new FluentNumber(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n if (arg instanceof FluentDateTime) {\n return new FluentNumber(arg.valueOf(), {\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to NUMBER\");\n}\nconst DATETIME_ALLOWED = [\n \"dateStyle\",\n \"timeStyle\",\n \"fractionalSecondDigits\",\n \"dayPeriod\",\n \"hour12\",\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n];\n/**\n * The implementation of the `DATETIME()` builtin available to translations.\n *\n * Translations may call the `DATETIME()` builtin in order to specify\n * formatting options of a number. For example:\n *\n * now = It's {DATETIME($today, month: \"long\")}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * dateStyle\n * timeStyle\n * fractionalSecondDigits\n * dayPeriod\n * hour12\n * weekday\n * era\n * year\n * month\n * day\n * hour\n * minute\n * second\n * timeZoneName\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `DATETIME()`.\n * @param opts The named argments passed to this `DATETIME()`.\n */\nexport function DATETIME(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`DATETIME(${arg.valueOf()})`);\n }\n if (arg instanceof FluentDateTime) {\n return new FluentDateTime(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n if (arg instanceof FluentNumber) {\n return new FluentDateTime(arg.valueOf(), {\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to DATETIME\");\n}\n","const cache = new Map();\nexport function getMemoizerForLocale(locales) {\n const stringLocale = Array.isArray(locales) ? locales.join(\" \") : locales;\n let memoizer = cache.get(stringLocale);\n if (memoizer === undefined) {\n memoizer = new Map();\n cache.set(stringLocale, memoizer);\n }\n return memoizer;\n}\n","import { resolveComplexPattern } from \"./resolver.js\";\nimport { Scope } from \"./scope.js\";\nimport { FluentNone } from \"./types.js\";\nimport { NUMBER, DATETIME } from \"./builtins.js\";\nimport { getMemoizerForLocale } from \"./memoizer.js\";\n/**\n * Message bundles are single-language stores of translation resources. They are\n * responsible for formatting message values and attributes to strings.\n */\nexport class FluentBundle {\n /**\n * Create an instance of `FluentBundle`.\n *\n * @example\n * ```js\n * let bundle = new FluentBundle([\"en-US\", \"en\"]);\n *\n * let bundle = new FluentBundle(locales, {useIsolating: false});\n *\n * let bundle = new FluentBundle(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n * ```\n *\n * @param locales - Used to instantiate `Intl` formatters used by translations.\n * @param options - Optional configuration for the bundle.\n */\n constructor(locales, { functions, useIsolating = true, transform = (v) => v, } = {}) {\n /** @ignore */\n this._terms = new Map();\n /** @ignore */\n this._messages = new Map();\n this.locales = Array.isArray(locales) ? locales : [locales];\n this._functions = {\n NUMBER,\n DATETIME,\n ...functions,\n };\n this._useIsolating = useIsolating;\n this._transform = transform;\n this._intls = getMemoizerForLocale(locales);\n }\n /**\n * Check if a message is present in the bundle.\n *\n * @param id - The identifier of the message to check.\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n /**\n * Return a raw unformatted message object from the bundle.\n *\n * Raw messages are `{value, attributes}` shapes containing translation units\n * called `Patterns`. `Patterns` are implementation-specific; they should be\n * treated as black boxes and formatted with `FluentBundle.formatPattern`.\n *\n * @param id - The identifier of the message to check.\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n /**\n * Add a translation resource to the bundle.\n *\n * @example\n * ```js\n * let res = new FluentResource(\"foo = Foo\");\n * bundle.addResource(res);\n * bundle.getMessage(\"foo\");\n * // → {value: .., attributes: {..}}\n * ```\n *\n * @param res\n * @param options\n */\n addResource(res, { allowOverrides = false, } = {}) {\n const errors = [];\n for (let i = 0; i < res.body.length; i++) {\n let entry = res.body[i];\n if (entry.id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from FluentBundle.\n if (allowOverrides === false && this._terms.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing term: \"${entry.id}\"`));\n continue;\n }\n this._terms.set(entry.id, entry);\n }\n else {\n if (allowOverrides === false && this._messages.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing message: \"${entry.id}\"`));\n continue;\n }\n this._messages.set(entry.id, entry);\n }\n }\n return errors;\n }\n /**\n * Format a `Pattern` to a string.\n *\n * Format a raw `Pattern` into a string. `args` will be used to resolve\n * references to variables passed as arguments to the translation.\n *\n * In case of errors `formatPattern` will try to salvage as much of the\n * translation as possible and will still return a string. For performance\n * reasons, the encountered errors are not returned but instead are appended\n * to the `errors` array passed as the third argument.\n *\n * If `errors` is omitted, the first encountered error will be thrown.\n *\n * @example\n * ```js\n * let errors = [];\n * bundle.addResource(\n * new FluentResource(\"hello = Hello, {$name}!\"));\n *\n * let hello = bundle.getMessage(\"hello\");\n * if (hello.value) {\n * bundle.formatPattern(hello.value, {name: \"Jane\"}, errors);\n * // Returns \"Hello, Jane!\" and `errors` is empty.\n *\n * bundle.formatPattern(hello.value, undefined, errors);\n * // Returns \"Hello, {$name}!\" and `errors` is now:\n * // []\n * }\n * ```\n */\n formatPattern(pattern, args = null, errors = null) {\n // Resolve a simple pattern without creating a scope. No error handling is\n // required; by definition simple patterns don't have placeables.\n if (typeof pattern === \"string\") {\n return this._transform(pattern);\n }\n // Resolve a complex pattern.\n let scope = new Scope(this, errors, args);\n try {\n let value = resolveComplexPattern(scope, pattern);\n return value.toString(scope);\n }\n catch (err) {\n if (scope.errors && err instanceof Error) {\n scope.errors.push(err);\n return new FluentNone().toString(scope);\n }\n throw err;\n }\n }\n}\n","// This regex is used to iterate through the beginnings of messages and terms.\n// With the /m flag, the ^ matches at the beginning of every line.\nconst RE_MESSAGE_START = /^(-?[a-zA-Z][\\w-]*) *= */gm;\n// Both Attributes and Variants are parsed in while loops. These regexes are\n// used to break out of them.\nconst RE_ATTRIBUTE_START = /\\.([a-zA-Z][\\w-]*) *= */y;\nconst RE_VARIANT_START = /\\*?\\[/y;\nconst RE_NUMBER_LITERAL = /(-?[0-9]+(?:\\.([0-9]+))?)/y;\nconst RE_IDENTIFIER = /([a-zA-Z][\\w-]*)/y;\nconst RE_REFERENCE = /([$-])?([a-zA-Z][\\w-]*)(?:\\.([a-zA-Z][\\w-]*))?/y;\nconst RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;\n// A \"run\" is a sequence of text or string literal characters which don't\n// require any special handling. For TextElements such special characters are: {\n// (starts a placeable), and line breaks which require additional logic to check\n// if the next line is indented. For StringLiterals they are: \\ (starts an\n// escape sequence), \" (ends the literal), and line breaks which are not allowed\n// in StringLiterals. Note that string runs may be empty; text runs may not.\nconst RE_TEXT_RUN = /([^{}\\n\\r]+)/y;\nconst RE_STRING_RUN = /([^\\\\\"\\n\\r]*)/y;\n// Escape sequences.\nconst RE_STRING_ESCAPE = /\\\\([\\\\\"])/y;\nconst RE_UNICODE_ESCAPE = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{6})/y;\n// Used for trimming TextElements and indents.\nconst RE_LEADING_NEWLINES = /^\\n+/;\nconst RE_TRAILING_SPACES = / +$/;\n// Used in makeIndent to strip spaces from blank lines and normalize CRLF to LF.\nconst RE_BLANK_LINES = / *\\r?\\n/g;\n// Used in makeIndent to measure the indentation.\nconst RE_INDENT = /( *)$/;\n// Common tokens.\nconst TOKEN_BRACE_OPEN = /{\\s*/y;\nconst TOKEN_BRACE_CLOSE = /\\s*}/y;\nconst TOKEN_BRACKET_OPEN = /\\[\\s*/y;\nconst TOKEN_BRACKET_CLOSE = /\\s*] */y;\nconst TOKEN_PAREN_OPEN = /\\s*\\(\\s*/y;\nconst TOKEN_ARROW = /\\s*->\\s*/y;\nconst TOKEN_COLON = /\\s*:\\s*/y;\n// Note the optional comma. As a deviation from the Fluent EBNF, the parser\n// doesn't enforce commas between call arguments.\nconst TOKEN_COMMA = /\\s*,?\\s*/y;\nconst TOKEN_BLANK = /\\s+/y;\n/**\n * Fluent Resource is a structure storing parsed localization entries.\n */\nexport class FluentResource {\n constructor(source) {\n this.body = [];\n RE_MESSAGE_START.lastIndex = 0;\n let cursor = 0;\n // Iterate over the beginnings of messages and terms to efficiently skip\n // comments and recover from errors.\n while (true) {\n let next = RE_MESSAGE_START.exec(source);\n if (next === null) {\n break;\n }\n cursor = RE_MESSAGE_START.lastIndex;\n try {\n this.body.push(parseMessage(next[1]));\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n // Don't report any Fluent syntax errors. Skip directly to the\n // beginning of the next message or term.\n continue;\n }\n throw err;\n }\n }\n // The parser implementation is inlined below for performance reasons,\n // as well as for convenience of accessing `source` and `cursor`.\n // The parser focuses on minimizing the number of false negatives at the\n // expense of increasing the risk of false positives. In other words, it\n // aims at parsing valid Fluent messages with a success rate of 100%, but it\n // may also parse a few invalid messages which the reference parser would\n // reject. The parser doesn't perform any validation and may produce entries\n // which wouldn't make sense in the real world. For best results users are\n // advised to validate translations with the fluent-syntax parser\n // pre-runtime.\n // The parser makes an extensive use of sticky regexes which can be anchored\n // to any offset of the source string without slicing it. Errors are thrown\n // to bail out of parsing of ill-formed messages.\n function test(re) {\n re.lastIndex = cursor;\n return re.test(source);\n }\n // Advance the cursor by the char if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeChar(char, errorClass) {\n if (source[cursor] === char) {\n cursor++;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${char}`);\n }\n return false;\n }\n // Advance the cursor by the token if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeToken(re, errorClass) {\n if (test(re)) {\n cursor = re.lastIndex;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${re.toString()}`);\n }\n return false;\n }\n // Execute a regex, advance the cursor, and return all capture groups.\n function match(re) {\n re.lastIndex = cursor;\n let result = re.exec(source);\n if (result === null) {\n throw new SyntaxError(`Expected ${re.toString()}`);\n }\n cursor = re.lastIndex;\n return result;\n }\n // Execute a regex, advance the cursor, and return the capture group.\n function match1(re) {\n return match(re)[1];\n }\n function parseMessage(id) {\n let value = parsePattern();\n let attributes = parseAttributes();\n if (value === null && Object.keys(attributes).length === 0) {\n throw new SyntaxError(\"Expected message value or attributes\");\n }\n return { id, value, attributes };\n }\n function parseAttributes() {\n let attrs = Object.create(null);\n while (test(RE_ATTRIBUTE_START)) {\n let name = match1(RE_ATTRIBUTE_START);\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected attribute value\");\n }\n attrs[name] = value;\n }\n return attrs;\n }\n function parsePattern() {\n let first;\n // First try to parse any simple text on the same line as the id.\n if (test(RE_TEXT_RUN)) {\n first = match1(RE_TEXT_RUN);\n }\n // If there's a placeable on the first line, parse a complex pattern.\n if (source[cursor] === \"{\" || source[cursor] === \"}\") {\n // Re-use the text parsed above, if possible.\n return parsePatternElements(first ? [first] : [], Infinity);\n }\n // RE_TEXT_VALUE stops at newlines. Only continue parsing the pattern if\n // what comes after the newline is indented.\n let indent = parseIndent();\n if (indent) {\n if (first) {\n // If there's text on the first line, the blank block is part of the\n // translation content in its entirety.\n return parsePatternElements([first, indent], indent.length);\n }\n // Otherwise, we're dealing with a block pattern, i.e. a pattern which\n // starts on a new line. Discrad the leading newlines but keep the\n // inline indent; it will be used by the dedentation logic.\n indent.value = trim(indent.value, RE_LEADING_NEWLINES);\n return parsePatternElements([indent], indent.length);\n }\n if (first) {\n // It was just a simple inline text after all.\n return trim(first, RE_TRAILING_SPACES);\n }\n return null;\n }\n // Parse a complex pattern as an array of elements.\n function parsePatternElements(elements = [], commonIndent) {\n while (true) {\n if (test(RE_TEXT_RUN)) {\n elements.push(match1(RE_TEXT_RUN));\n continue;\n }\n if (source[cursor] === \"{\") {\n elements.push(parsePlaceable());\n continue;\n }\n if (source[cursor] === \"}\") {\n throw new SyntaxError(\"Unbalanced closing brace\");\n }\n let indent = parseIndent();\n if (indent) {\n elements.push(indent);\n commonIndent = Math.min(commonIndent, indent.length);\n continue;\n }\n break;\n }\n let lastIndex = elements.length - 1;\n let lastElement = elements[lastIndex];\n // Trim the trailing spaces in the last element if it's a TextElement.\n if (typeof lastElement === \"string\") {\n elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES);\n }\n let baked = [];\n for (let element of elements) {\n if (element instanceof Indent) {\n // Dedent indented lines by the maximum common indent.\n element = element.value.slice(0, element.value.length - commonIndent);\n }\n if (element) {\n baked.push(element);\n }\n }\n return baked;\n }\n function parsePlaceable() {\n consumeToken(TOKEN_BRACE_OPEN, SyntaxError);\n let selector = parseInlineExpression();\n if (consumeToken(TOKEN_BRACE_CLOSE)) {\n return selector;\n }\n if (consumeToken(TOKEN_ARROW)) {\n let variants = parseVariants();\n consumeToken(TOKEN_BRACE_CLOSE, SyntaxError);\n return {\n type: \"select\",\n selector,\n ...variants,\n };\n }\n throw new SyntaxError(\"Unclosed placeable\");\n }\n function parseInlineExpression() {\n if (source[cursor] === \"{\") {\n // It's a nested placeable.\n return parsePlaceable();\n }\n if (test(RE_REFERENCE)) {\n let [, sigil, name, attr = null] = match(RE_REFERENCE);\n if (sigil === \"$\") {\n return { type: \"var\", name };\n }\n if (consumeToken(TOKEN_PAREN_OPEN)) {\n let args = parseArguments();\n if (sigil === \"-\") {\n // A parameterized term: -term(...).\n return { type: \"term\", name, attr, args };\n }\n if (RE_FUNCTION_NAME.test(name)) {\n return { type: \"func\", name, args };\n }\n throw new SyntaxError(\"Function names must be all upper-case\");\n }\n if (sigil === \"-\") {\n // A non-parameterized term: -term.\n return {\n type: \"term\",\n name,\n attr,\n args: [],\n };\n }\n return { type: \"mesg\", name, attr };\n }\n return parseLiteral();\n }\n function parseArguments() {\n let args = [];\n while (true) {\n switch (source[cursor]) {\n case \")\": // End of the argument list.\n cursor++;\n return args;\n case undefined: // EOF\n throw new SyntaxError(\"Unclosed argument list\");\n }\n args.push(parseArgument());\n // Commas between arguments are treated as whitespace.\n consumeToken(TOKEN_COMMA);\n }\n }\n function parseArgument() {\n let expr = parseInlineExpression();\n if (expr.type !== \"mesg\") {\n return expr;\n }\n if (consumeToken(TOKEN_COLON)) {\n // The reference is the beginning of a named argument.\n return {\n type: \"narg\",\n name: expr.name,\n value: parseLiteral(),\n };\n }\n // It's a regular message reference.\n return expr;\n }\n function parseVariants() {\n let variants = [];\n let count = 0;\n let star;\n while (test(RE_VARIANT_START)) {\n if (consumeChar(\"*\")) {\n star = count;\n }\n let key = parseVariantKey();\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected variant value\");\n }\n variants[count++] = { key, value };\n }\n if (count === 0) {\n return null;\n }\n if (star === undefined) {\n throw new SyntaxError(\"Expected default variant\");\n }\n return { variants, star };\n }\n function parseVariantKey() {\n consumeToken(TOKEN_BRACKET_OPEN, SyntaxError);\n let key;\n if (test(RE_NUMBER_LITERAL)) {\n key = parseNumberLiteral();\n }\n else {\n key = {\n type: \"str\",\n value: match1(RE_IDENTIFIER),\n };\n }\n consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError);\n return key;\n }\n function parseLiteral() {\n if (test(RE_NUMBER_LITERAL)) {\n return parseNumberLiteral();\n }\n if (source[cursor] === '\"') {\n return parseStringLiteral();\n }\n throw new SyntaxError(\"Invalid expression\");\n }\n function parseNumberLiteral() {\n let [, value, fraction = \"\"] = match(RE_NUMBER_LITERAL);\n let precision = fraction.length;\n return {\n type: \"num\",\n value: parseFloat(value),\n precision,\n };\n }\n function parseStringLiteral() {\n consumeChar('\"', SyntaxError);\n let value = \"\";\n while (true) {\n value += match1(RE_STRING_RUN);\n if (source[cursor] === \"\\\\\") {\n value += parseEscapeSequence();\n continue;\n }\n if (consumeChar('\"')) {\n return { type: \"str\", value };\n }\n // We've reached an EOL of EOF.\n throw new SyntaxError(\"Unclosed string literal\");\n }\n }\n // Unescape known escape sequences.\n function parseEscapeSequence() {\n if (test(RE_STRING_ESCAPE)) {\n return match1(RE_STRING_ESCAPE);\n }\n if (test(RE_UNICODE_ESCAPE)) {\n let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE);\n let codepoint = parseInt(codepoint4 || codepoint6, 16);\n return codepoint <= 0xd7ff || 0xe000 <= codepoint\n ? // It's a Unicode scalar value.\n String.fromCodePoint(codepoint)\n : // Lonely surrogates can cause trouble when the parsing result is\n // saved using UTF-8. Use U+FFFD REPLACEMENT CHARACTER instead.\n \"�\";\n }\n throw new SyntaxError(\"Unknown escape sequence\");\n }\n // Parse blank space. Return it if it looks like indent before a pattern\n // line. Skip it othwerwise.\n function parseIndent() {\n let start = cursor;\n consumeToken(TOKEN_BLANK);\n // Check the first non-blank character after the indent.\n switch (source[cursor]) {\n case \".\":\n case \"[\":\n case \"*\":\n case \"}\":\n case undefined: // EOF\n // A special character. End the Pattern.\n return false;\n case \"{\":\n // Placeables don't require indentation (in EBNF: block-placeable).\n // Continue the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // If the first character on the line is not one of the special characters\n // listed above, it's a regular text character. Check if there's at least\n // one space of indent before it.\n if (source[cursor - 1] === \" \") {\n // It's an indented text character (in EBNF: indented-char). Continue\n // the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // A not-indented text character is likely the identifier of the next\n // message. End the Pattern.\n return false;\n }\n // Trim blanks in text according to the given regex.\n function trim(text, re) {\n return text.replace(re, \"\");\n }\n // Normalize a blank block and extract the indent details.\n function makeIndent(blank) {\n let value = blank.replace(RE_BLANK_LINES, \"\\n\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n let length = RE_INDENT.exec(blank)[1].length;\n return new Indent(value, length);\n }\n }\n}\nclass Indent {\n constructor(value, length) {\n this.value = value;\n this.length = length;\n }\n}\n","/**\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\nexport { FluentBundle } from \"./bundle.js\";\nexport { FluentResource } from \"./resource.js\";\nexport { FluentType, FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\n","/* eslint no-console: [\"error\", {allow: [\"warn\"]}] */\n/* global console */\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reOverlay = /<|&#?\\w+;/;\n/**\n * Elements allowed in translations even if they are not present in the source\n * HTML. They are text-level elements as defined by the HTML5 spec:\n * https://www.w3.org/TR/html5/text-level-semantics.html with the exception of:\n *\n * - a - because we don't allow href on it anyways,\n * - ruby, rt, rp - because we don't allow nested elements to be inserted.\n */\nconst TEXT_LEVEL_ELEMENTS = {\n \"http://www.w3.org/1999/xhtml\": [\n \"em\",\n \"strong\",\n \"small\",\n \"s\",\n \"cite\",\n \"q\",\n \"dfn\",\n \"abbr\",\n \"data\",\n \"time\",\n \"code\",\n \"var\",\n \"samp\",\n \"kbd\",\n \"sub\",\n \"sup\",\n \"i\",\n \"b\",\n \"u\",\n \"mark\",\n \"bdi\",\n \"bdo\",\n \"span\",\n \"br\",\n \"wbr\",\n ],\n};\nconst LOCALIZABLE_ATTRIBUTES = {\n \"http://www.w3.org/1999/xhtml\": {\n global: [\"title\", \"aria-label\", \"aria-valuetext\"],\n a: [\"download\"],\n area: [\"download\", \"alt\"],\n // value is special-cased in isAttrNameLocalizable\n input: [\"alt\", \"placeholder\"],\n menuitem: [\"label\"],\n menu: [\"label\"],\n optgroup: [\"label\"],\n option: [\"label\"],\n track: [\"label\"],\n img: [\"alt\"],\n textarea: [\"placeholder\"],\n th: [\"abbr\"],\n },\n \"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\": {\n global: [\n \"accesskey\",\n \"aria-label\",\n \"aria-valuetext\",\n \"label\",\n \"title\",\n \"tooltiptext\",\n ],\n description: [\"value\"],\n key: [\"key\", \"keycode\"],\n label: [\"value\"],\n textbox: [\"placeholder\", \"value\"],\n },\n};\n/**\n * Translate an element.\n *\n * Translate the element's text content and attributes. Some HTML markup is\n * allowed in the translation. The element's children with the data-l10n-name\n * attribute will be treated as arguments to the translation. If the\n * translation defines the same children, their attributes and text contents\n * will be used for translating the matching source child.\n *\n * @param {Element} element\n * @param {Object} translation\n * @private\n */\nexport default function translateElement(element, translation) {\n const { value } = translation;\n if (typeof value === \"string\") {\n if (element.localName === \"title\" &&\n element.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n // A special case for the HTML title element whose content must be text.\n element.textContent = value;\n }\n else if (!reOverlay.test(value)) {\n // If the translation doesn't contain any markup skip the overlay logic.\n element.textContent = value;\n }\n else {\n // Else parse the translation's HTML using an inert template element,\n // sanitize it and replace the element's content.\n const templateElement = element.ownerDocument.createElementNS(\"http://www.w3.org/1999/xhtml\", \"template\");\n templateElement.innerHTML = value;\n overlayChildNodes(templateElement.content, element);\n }\n }\n // Even if the translation doesn't define any localizable attributes, run\n // overlayAttributes to remove any localizable attributes set by previous\n // translations.\n overlayAttributes(translation, element);\n}\n/**\n * Replace child nodes of an element with child nodes of another element.\n *\n * The contents of the target element will be cleared and fully replaced with\n * sanitized contents of the source element.\n *\n * @param {DocumentFragment} fromFragment - The source of children to overlay.\n * @param {Element} toElement - The target of the overlay.\n * @private\n */\nfunction overlayChildNodes(fromFragment, toElement) {\n for (const childNode of fromFragment.childNodes) {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n // Keep the translated text node.\n continue;\n }\n if (childNode.hasAttribute(\"data-l10n-name\")) {\n const sanitized = getNodeForNamedElement(toElement, childNode);\n fromFragment.replaceChild(sanitized, childNode);\n continue;\n }\n if (isElementAllowed(childNode)) {\n const sanitized = createSanitizedElement(childNode);\n fromFragment.replaceChild(sanitized, childNode);\n continue;\n }\n console.warn(`An element of forbidden type \"${childNode.localName}\" was found in ` +\n \"the translation. Only safe text-level elements and elements with \" +\n \"data-l10n-name are allowed.\");\n // If all else fails, replace the element with its text content.\n fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode);\n }\n toElement.textContent = \"\";\n toElement.appendChild(fromFragment);\n}\nfunction hasAttribute(attributes, name) {\n if (!attributes) {\n return false;\n }\n for (let attr of attributes) {\n if (attr.name === name) {\n return true;\n }\n }\n return false;\n}\n/**\n * Transplant localizable attributes of an element to another element.\n *\n * Any localizable attributes already set on the target element will be\n * cleared.\n *\n * @param {Element|Object} fromElement - The source of child nodes to overlay.\n * @param {Element} toElement - The target of the overlay.\n * @private\n */\nfunction overlayAttributes(fromElement, toElement) {\n const explicitlyAllowed = toElement.hasAttribute(\"data-l10n-attrs\")\n ? toElement\n .getAttribute(\"data-l10n-attrs\")\n .split(\",\")\n .map(i => i.trim())\n : null;\n // Remove existing localizable attributes if they\n // will not be used in the new translation.\n for (const attr of Array.from(toElement.attributes)) {\n if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) &&\n !hasAttribute(fromElement.attributes, attr.name)) {\n toElement.removeAttribute(attr.name);\n }\n }\n // fromElement might be a {value, attributes} object as returned by\n // Localization.messageFromBundle. In which case attributes may be null to\n // save GC cycles.\n if (!fromElement.attributes) {\n return;\n }\n // Set localizable attributes.\n for (const attr of Array.from(fromElement.attributes)) {\n if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) &&\n toElement.getAttribute(attr.name) !== attr.value) {\n toElement.setAttribute(attr.name, attr.value);\n }\n }\n}\n/**\n * Sanitize a child element created by the translation.\n *\n * Try to find a corresponding child in sourceElement and use it as the base\n * for the sanitization. This will preserve functional attribtues defined on\n * the child element in the source HTML.\n *\n * @param {Element} sourceElement - The source for data-l10n-name lookups.\n * @param {Element} translatedChild - The translated child to be sanitized.\n * @returns {Element}\n * @private\n */\nfunction getNodeForNamedElement(sourceElement, translatedChild) {\n const childName = translatedChild.getAttribute(\"data-l10n-name\");\n const sourceChild = sourceElement.querySelector(`[data-l10n-name=\"${childName}\"]`);\n if (!sourceChild) {\n console.warn(`An element named \"${childName}\" wasn't found in the source.`);\n return createTextNodeFromTextContent(translatedChild);\n }\n if (sourceChild.localName !== translatedChild.localName) {\n console.warn(`An element named \"${childName}\" was found in the translation ` +\n `but its type ${translatedChild.localName} didn't match the ` +\n `element found in the source (${sourceChild.localName}).`);\n return createTextNodeFromTextContent(translatedChild);\n }\n // Remove it from sourceElement so that the translation cannot use\n // the same reference name again.\n sourceElement.removeChild(sourceChild);\n // We can't currently guarantee that a translation won't remove\n // sourceChild from the element completely, which could break the app if\n // it relies on an event handler attached to the sourceChild. Let's make\n // this limitation explicit for now by breaking the identitiy of the\n // sourceChild by cloning it. This will destroy all event handlers\n // attached to sourceChild via addEventListener and via on\n // properties.\n const clone = sourceChild.cloneNode(false);\n return shallowPopulateUsing(translatedChild, clone);\n}\n/**\n * Sanitize an allowed element.\n *\n * Text-level elements allowed in translations may only use safe attributes\n * and will have any nested markup stripped to text content.\n *\n * @param {Element} element - The element to be sanitized.\n * @returns {Element}\n * @private\n */\nfunction createSanitizedElement(element) {\n // Start with an empty element of the same type to remove nested children\n // and non-localizable attributes defined by the translation.\n const clone = element.ownerDocument.createElement(element.localName);\n return shallowPopulateUsing(element, clone);\n}\n/**\n * Convert an element to a text node.\n *\n * @param {Element} element - The element to be sanitized.\n * @returns {Node}\n * @private\n */\nfunction createTextNodeFromTextContent(element) {\n return element.ownerDocument.createTextNode(element.textContent);\n}\n/**\n * Check if element is allowed in the translation.\n *\n * This method is used by the sanitizer when the translation markup contains\n * an element which is not present in the source code.\n *\n * @param {Element} element\n * @returns {boolean}\n * @private\n */\nfunction isElementAllowed(element) {\n const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI];\n return allowed && allowed.includes(element.localName);\n}\n/**\n * Check if attribute is allowed for the given element.\n *\n * This method is used by the sanitizer when the translation markup contains\n * DOM attributes, or when the translation has traits which map to DOM\n * attributes.\n *\n * `explicitlyAllowed` can be passed as a list of attributes explicitly\n * allowed on this element.\n *\n * @param {string} name\n * @param {Element} element\n * @param {Array} explicitlyAllowed\n * @returns {boolean}\n * @private\n */\nfunction isAttrNameLocalizable(name, element, explicitlyAllowed = null) {\n if (explicitlyAllowed && explicitlyAllowed.includes(name)) {\n return true;\n }\n const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI];\n if (!allowed) {\n return false;\n }\n const attrName = name.toLowerCase();\n const elemName = element.localName;\n // Is it a globally safe attribute?\n if (allowed.global.includes(attrName)) {\n return true;\n }\n // Are there no allowed attributes for this element?\n if (!allowed[elemName]) {\n return false;\n }\n // Is it allowed on this element?\n if (allowed[elemName].includes(attrName)) {\n return true;\n }\n // Special case for value on HTML inputs with type button, reset, submit\n if (element.namespaceURI === \"http://www.w3.org/1999/xhtml\" &&\n elemName === \"input\" &&\n attrName === \"value\") {\n const type = element.type.toLowerCase();\n if (type === \"submit\" || type === \"button\" || type === \"reset\") {\n return true;\n }\n }\n return false;\n}\n/**\n * Helper to set textContent and localizable attributes on an element.\n *\n * @param {Element} fromElement\n * @param {Element} toElement\n * @returns {Element}\n * @private\n */\nfunction shallowPopulateUsing(fromElement, toElement) {\n toElement.textContent = fromElement.textContent;\n overlayAttributes(fromElement, toElement);\n return toElement;\n}\n","/*\n * Base CachedIterable class.\n */\nexport default class CachedIterable extends Array {\n /**\n * Create a `CachedIterable` instance from an iterable or, if another\n * instance of `CachedIterable` is passed, return it without any\n * modifications.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n static from(iterable) {\n if (iterable instanceof this) {\n return iterable;\n }\n\n return new this(iterable);\n }\n}\n","import CachedIterable from \"./cached_iterable.mjs\";\n\n/*\n * CachedSyncIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedSyncIterable extends CachedIterable {\n /**\n * Create an `CachedSyncIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedSyncIterable}\n */\n constructor(iterable) {\n super();\n\n if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n }\n\n [Symbol.iterator]() {\n const cached = this;\n let cur = 0;\n\n return {\n next() {\n if (cached.length <= cur) {\n cached.push(cached.iterator.next());\n }\n return cached[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n *\n * @param {number} count - number of elements to consume\n */\n touchNext(count = 1) {\n let idx = 0;\n while (idx++ < count) {\n const last = this[this.length - 1];\n if (last && last.done) {\n break;\n }\n this.push(this.iterator.next());\n }\n // Return the last cached {value, done} object to allow the calling\n // code to decide if it needs to call touchNext again.\n return this[this.length - 1];\n }\n}\n","import CachedIterable from \"./cached_iterable.mjs\";\n\n/*\n * CachedAsyncIterable caches the elements yielded by an async iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedAsyncIterable extends CachedIterable {\n /**\n * Create an `CachedAsyncIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedAsyncIterable}\n */\n constructor(iterable) {\n super();\n\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n }\n\n /**\n * Asynchronous iterator caching the yielded elements.\n *\n * Elements yielded by the original iterable will be cached and available\n * synchronously. Returns an async generator object implementing the\n * iterator protocol over the elements of the original (async or sync)\n * iterable.\n */\n [Symbol.asyncIterator]() {\n const cached = this;\n let cur = 0;\n\n return {\n async next() {\n if (cached.length <= cur) {\n cached.push(cached.iterator.next());\n }\n return cached[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n *\n * @param {number} count - number of elements to consume\n */\n async touchNext(count = 1) {\n let idx = 0;\n while (idx++ < count) {\n const last = this[this.length - 1];\n if (last && (await last).done) {\n break;\n }\n this.push(this.iterator.next());\n }\n // Return the last cached {value, done} object to allow the calling\n // code to decide if it needs to call touchNext again.\n return this[this.length - 1];\n }\n}\n","export {default as CachedSyncIterable} from \"./cached_sync_iterable.mjs\";\nexport {default as CachedAsyncIterable} from \"./cached_async_iterable.mjs\";\n","/* eslint no-console: [\"error\", { allow: [\"warn\", \"error\"] }] */\n/* global console */\nimport { CachedAsyncIterable } from \"cached-iterable\";\n/**\n * The `Localization` class is a central high-level API for vanilla\n * JavaScript use of Fluent.\n * It combines language negotiation, FluentBundle and I/O to\n * provide a scriptable API to format translations.\n */\nexport default class Localization {\n /**\n * @param {Array} resourceIds - List of resource IDs\n * @param {Function} generateBundles - Function that returns a\n * generator over FluentBundles\n *\n * @returns {Localization}\n */\n constructor(resourceIds = [], generateBundles) {\n this.resourceIds = resourceIds;\n this.generateBundles = generateBundles;\n this.onChange(true);\n }\n addResourceIds(resourceIds, eager = false) {\n this.resourceIds.push(...resourceIds);\n this.onChange(eager);\n return this.resourceIds.length;\n }\n removeResourceIds(resourceIds) {\n this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r));\n this.onChange();\n return this.resourceIds.length;\n }\n /**\n * Format translations and handle fallback if needed.\n *\n * Format translations for `keys` from `FluentBundle` instances on this\n * DOMLocalization. In case of errors, fetch the next context in the\n * fallback chain.\n *\n * @param {Array} keys - Translation keys to format.\n * @param {Function} method - Formatting function.\n * @returns {Promise>}\n * @private\n */\n async formatWithFallback(keys, method) {\n const translations = [];\n let hasAtLeastOneBundle = false;\n for await (const bundle of this.bundles) {\n hasAtLeastOneBundle = true;\n const missingIds = keysFromBundle(method, bundle, keys, translations);\n if (missingIds.size === 0) {\n break;\n }\n if (typeof console !== \"undefined\") {\n const locale = bundle.locales[0];\n const ids = Array.from(missingIds).join(\", \");\n console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);\n }\n }\n if (!hasAtLeastOneBundle && typeof console !== \"undefined\") {\n // eslint-disable-next-line max-len\n console.warn(`[fluent] Request for keys failed because no resource bundles got generated.\n keys: ${JSON.stringify(keys)}.\n resourceIds: ${JSON.stringify(this.resourceIds)}.`);\n }\n return translations;\n }\n /**\n * Format translations into `{value, attributes}` objects.\n *\n * The fallback logic is the same as in `formatValues`\n * but it returns `{value, attributes}` objects\n * which are suitable for the translation of DOM elements.\n *\n * Returns a Promise resolving to an array of the translation strings.\n *\n * @example\n * ```js\n * docL10n.formatMessages([\n * {id: 'hello', args: { who: 'Mary' }},\n * {id: 'welcome'}\n * ]).then(console.log);\n *\n * // [\n * // { value: 'Hello, Mary!', attributes: null },\n * // {\n * // value: 'Welcome!',\n * // attributes: [ { name: \"title\", value: 'Hello' } ]\n * // }\n * // ]\n * ```\n *\n * @param {Array} keys\n * @returns {Promise>}\n * @private\n */\n formatMessages(keys) {\n return this.formatWithFallback(keys, messageFromBundle);\n }\n /**\n * Retrieve translations corresponding to the passed keys.\n *\n * A generalized version of `DOMLocalization.formatValue`. Keys must\n * be `{id, args}` objects.\n *\n * Returns a Promise resolving to an array of the translation strings.\n *\n * @example\n * ```js\n * docL10n.formatValues([\n * {id: 'hello', args: { who: 'Mary' }},\n * {id: 'hello', args: { who: 'John' }},\n * {id: 'welcome'}\n * ]).then(console.log);\n *\n * // ['Hello, Mary!', 'Hello, John!', 'Welcome!']\n * ```\n *\n * @param {Array} keys\n * @returns {Promise>}\n */\n formatValues(keys) {\n return this.formatWithFallback(keys, valueFromBundle);\n }\n /**\n * Retrieve the translation corresponding to the `id` identifier.\n *\n * If passed, `args` is a simple hash object with a list of variables that\n * will be interpolated in the value of the translation.\n *\n * Returns a Promise resolving to the translation string.\n *\n * Use this sparingly for one-off messages which don't need to be\n * retranslated when the user changes their language preferences, e.g. in\n * notifications.\n *\n * @example\n * ```js\n * docL10n.formatValue(\n * 'hello', { who: 'world' }\n * ).then(console.log);\n *\n * // 'Hello, world!'\n * ```\n *\n * @param {string} id - Identifier of the translation to format\n * @param {Object} [args] - Optional external arguments\n * @returns {Promise}\n */\n async formatValue(id, args) {\n const [val] = await this.formatValues([{ id, args }]);\n return val;\n }\n handleEvent() {\n this.onChange();\n }\n /**\n * This method should be called when there's a reason to believe\n * that language negotiation or available resources changed.\n */\n onChange(eager = false) {\n this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds));\n if (eager) {\n this.bundles.touchNext(2);\n }\n }\n}\n/**\n * Format the value of a message into a string or `null`.\n *\n * This function is passed as a method to `keysFromBundle` and resolve\n * a value of a single L10n Entity using provided `FluentBundle`.\n *\n * If the message doesn't have a value, return `null`.\n *\n * @param {FluentBundle} bundle\n * @param {Array} errors\n * @param {Object} message\n * @param {Object} args\n * @returns {string|null}\n * @private\n */\nfunction valueFromBundle(bundle, errors, message, args) {\n if (message.value) {\n return bundle.formatPattern(message.value, args, errors);\n }\n return null;\n}\n/**\n * Format all public values of a message into a {value, attributes} object.\n *\n * This function is passed as a method to `keysFromBundle` and resolve\n * a single L10n Entity using provided `FluentBundle`.\n *\n * The function will return an object with a value and attributes of the\n * entity.\n *\n * @param {FluentBundle} bundle\n * @param {Array} errors\n * @param {Object} message\n * @param {Object} args\n * @returns {Object}\n * @private\n */\nfunction messageFromBundle(bundle, errors, message, args) {\n const formatted = {\n value: null,\n attributes: null,\n };\n if (message.value) {\n formatted.value = bundle.formatPattern(message.value, args, errors);\n }\n let attrNames = Object.keys(message.attributes);\n if (attrNames.length > 0) {\n formatted.attributes = new Array(attrNames.length);\n for (let [i, name] of attrNames.entries()) {\n let value = bundle.formatPattern(message.attributes[name], args, errors);\n formatted.attributes[i] = { name, value };\n }\n }\n return formatted;\n}\n/**\n * This function is an inner function for `Localization.formatWithFallback`.\n *\n * It takes a `FluentBundle`, list of l10n-ids and a method to be used for\n * key resolution (either `valueFromBundle` or `messageFromBundle`) and\n * optionally a value returned from `keysFromBundle` executed against\n * another `FluentBundle`.\n *\n * The idea here is that if the previous `FluentBundle` did not resolve\n * all keys, we're calling this function with the next context to resolve\n * the remaining ones.\n *\n * In the function, we loop over `keys` and check if we have the `prev`\n * passed and if it has an error entry for the position we're in.\n *\n * If it doesn't, it means that we have a good translation for this key and\n * we return it. If it does, we'll try to resolve the key using the passed\n * `FluentBundle`.\n *\n * In the end, we fill the translations array, and return the Set with\n * missing ids.\n *\n * See `Localization.formatWithFallback` for more info on how this is used.\n *\n * @param {Function} method\n * @param {FluentBundle} bundle\n * @param {Array} keys\n * @param {{Array<{value: string, attributes: Object}>}} translations\n *\n * @returns {Set}\n * @private\n */\nfunction keysFromBundle(method, bundle, keys, translations) {\n const messageErrors = [];\n const missingIds = new Set();\n keys.forEach(({ id, args }, i) => {\n if (translations[i] !== undefined) {\n return;\n }\n let message = bundle.getMessage(id);\n if (message) {\n messageErrors.length = 0;\n translations[i] = method(bundle, messageErrors, message, args);\n if (messageErrors.length > 0 && typeof console !== \"undefined\") {\n const locale = bundle.locales[0];\n const errors = messageErrors.join(\", \");\n // eslint-disable-next-line max-len\n console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`);\n }\n }\n else {\n missingIds.add(id);\n }\n });\n return missingIds;\n}\n","import translateElement from \"./overlay.js\";\nimport Localization from \"./localization.js\";\nconst L10NID_ATTR_NAME = \"data-l10n-id\";\nconst L10NARGS_ATTR_NAME = \"data-l10n-args\";\nconst L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`;\n/**\n * The `DOMLocalization` class is responsible for fetching resources and\n * formatting translations.\n *\n * It implements the fallback strategy in case of errors encountered during the\n * formatting of translations and methods for observing DOM\n * trees with a `MutationObserver`.\n */\nexport default class DOMLocalization extends Localization {\n /**\n * @param {Array} resourceIds - List of resource IDs\n * @param {Function} generateBundles - Function that returns a\n * generator over FluentBundles\n * @returns {DOMLocalization}\n */\n constructor(resourceIds, generateBundles) {\n super(resourceIds, generateBundles);\n // A Set of DOM trees observed by the `MutationObserver`.\n this.roots = new Set();\n // requestAnimationFrame handler.\n this.pendingrAF = null;\n // list of elements pending for translation.\n this.pendingElements = new Set();\n this.windowElement = null;\n this.mutationObserver = null;\n this.observerConfig = {\n attributes: true,\n characterData: false,\n childList: true,\n subtree: true,\n attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME],\n };\n }\n onChange(eager = false) {\n super.onChange(eager);\n if (this.roots) {\n this.translateRoots();\n }\n }\n /**\n * Set the `data-l10n-id` and `data-l10n-args` attributes on DOM elements.\n * FluentDOM makes use of mutation observers to detect changes\n * to `data-l10n-*` attributes and translate elements asynchronously.\n * `setAttributes` is a convenience method which allows to translate\n * DOM elements declaratively.\n *\n * You should always prefer to use `data-l10n-id` on elements (statically in\n * HTML or dynamically via `setAttributes`) over manually retrieving\n * translations with `format`. The use of attributes ensures that the\n * elements can be retranslated when the user changes their language\n * preferences.\n *\n * ```javascript\n * localization.setAttributes(\n * document.querySelector('#welcome'), 'hello', { who: 'world' }\n * );\n * ```\n *\n * This will set the following attributes on the `#welcome` element.\n * The MutationObserver will pick up this change and will localize the element\n * asynchronously.\n *\n * ```html\n *

      \n *

      \n * ```\n *\n * @param {Element} element - Element to set attributes on\n * @param {string} id - l10n-id string\n * @param {Object} args - KVP list of l10n arguments\n * @returns {Element}\n */\n setAttributes(element, id, args) {\n element.setAttribute(L10NID_ATTR_NAME, id);\n if (args) {\n element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args));\n }\n else {\n element.removeAttribute(L10NARGS_ATTR_NAME);\n }\n return element;\n }\n /**\n * Get the `data-l10n-*` attributes from DOM elements.\n *\n * ```javascript\n * localization.getAttributes(\n * document.querySelector('#welcome')\n * );\n * // -> { id: 'hello', args: { who: 'world' } }\n * ```\n *\n * @param {Element} element - HTML element\n * @returns {{id: string, args: Object}}\n */\n getAttributes(element) {\n return {\n id: element.getAttribute(L10NID_ATTR_NAME),\n args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null),\n };\n }\n /**\n * Add `newRoot` to the list of roots managed by this `DOMLocalization`.\n *\n * Additionally, if this `DOMLocalization` has an observer, start observing\n * `newRoot` in order to translate mutations in it.\n *\n * @param {Element} newRoot - Root to observe.\n */\n connectRoot(newRoot) {\n for (const root of this.roots) {\n if (root === newRoot ||\n root.contains(newRoot) ||\n newRoot.contains(root)) {\n throw new Error(\"Cannot add a root that overlaps with existing root.\");\n }\n }\n if (this.windowElement) {\n if (this.windowElement !== newRoot.ownerDocument.defaultView) {\n throw new Error(`Cannot connect a root:\n DOMLocalization already has a root from a different window.`);\n }\n }\n else {\n this.windowElement = newRoot.ownerDocument.defaultView;\n this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations));\n }\n this.roots.add(newRoot);\n this.mutationObserver.observe(newRoot, this.observerConfig);\n }\n /**\n * Remove `root` from the list of roots managed by this `DOMLocalization`.\n *\n * Additionally, if this `DOMLocalization` has an observer, stop observing\n * `root`.\n *\n * Returns `true` if the root was the last one managed by this\n * `DOMLocalization`.\n *\n * @param {Element} root - Root to disconnect.\n * @returns {boolean}\n */\n disconnectRoot(root) {\n this.roots.delete(root);\n // Pause the mutation observer to stop observing `root`.\n this.pauseObserving();\n if (this.roots.size === 0) {\n this.mutationObserver = null;\n this.windowElement = null;\n this.pendingrAF = null;\n this.pendingElements.clear();\n return true;\n }\n // Resume observing all other roots.\n this.resumeObserving();\n return false;\n }\n /**\n * Translate all roots associated with this `DOMLocalization`.\n *\n * @returns {Promise}\n */\n translateRoots() {\n const roots = Array.from(this.roots);\n return Promise.all(roots.map(root => this.translateFragment(root)));\n }\n /**\n * Pauses the `MutationObserver`.\n *\n * @private\n */\n pauseObserving() {\n if (!this.mutationObserver) {\n return;\n }\n this.translateMutations(this.mutationObserver.takeRecords());\n this.mutationObserver.disconnect();\n }\n /**\n * Resumes the `MutationObserver`.\n *\n * @private\n */\n resumeObserving() {\n if (!this.mutationObserver) {\n return;\n }\n for (const root of this.roots) {\n this.mutationObserver.observe(root, this.observerConfig);\n }\n }\n /**\n * Translate mutations detected by the `MutationObserver`.\n *\n * @private\n */\n translateMutations(mutations) {\n for (const mutation of mutations) {\n switch (mutation.type) {\n case \"attributes\":\n if (mutation.target.hasAttribute(\"data-l10n-id\")) {\n this.pendingElements.add(mutation.target);\n }\n break;\n case \"childList\":\n for (const addedNode of mutation.addedNodes) {\n if (addedNode.nodeType === addedNode.ELEMENT_NODE) {\n if (addedNode.childElementCount) {\n for (const element of this.getTranslatables(addedNode)) {\n this.pendingElements.add(element);\n }\n }\n else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) {\n this.pendingElements.add(addedNode);\n }\n }\n }\n break;\n }\n }\n // This fragment allows us to coalesce all pending translations\n // into a single requestAnimationFrame.\n if (this.pendingElements.size > 0) {\n if (this.pendingrAF === null) {\n this.pendingrAF = this.windowElement.requestAnimationFrame(() => {\n this.translateElements(Array.from(this.pendingElements));\n this.pendingElements.clear();\n this.pendingrAF = null;\n });\n }\n }\n }\n /**\n * Translate a DOM element or fragment asynchronously using this\n * `DOMLocalization` object.\n *\n * Manually trigger the translation (or re-translation) of a DOM fragment.\n * Use the `data-l10n-id` and `data-l10n-args` attributes to mark up the DOM\n * with information about which translations to use.\n *\n * Returns a `Promise` that gets resolved once the translation is complete.\n *\n * @param {DOMFragment} frag - Element or DocumentFragment to be translated\n * @returns {Promise}\n */\n translateFragment(frag) {\n return this.translateElements(this.getTranslatables(frag));\n }\n /**\n * Translate a list of DOM elements asynchronously using this\n * `DOMLocalization` object.\n *\n * Manually trigger the translation (or re-translation) of a list of elements.\n * Use the `data-l10n-id` and `data-l10n-args` attributes to mark up the DOM\n * with information about which translations to use.\n *\n * Returns a `Promise` that gets resolved once the translation is complete.\n *\n * @param {Array} elements - List of elements to be translated\n * @returns {Promise}\n */\n async translateElements(elements) {\n if (!elements.length) {\n return undefined;\n }\n const keys = elements.map(this.getKeysForElement);\n const translations = await this.formatMessages(keys);\n return this.applyTranslations(elements, translations);\n }\n /**\n * Applies translations onto elements.\n *\n * @param {Array} elements\n * @param {Array} translations\n * @private\n */\n applyTranslations(elements, translations) {\n this.pauseObserving();\n for (let i = 0; i < elements.length; i++) {\n if (translations[i] !== undefined) {\n translateElement(elements[i], translations[i]);\n }\n }\n this.resumeObserving();\n }\n /**\n * Collects all translatable child elements of the element.\n *\n * @param {Element} element\n * @returns {Array}\n * @private\n */\n getTranslatables(element) {\n const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY));\n if (typeof element.hasAttribute === \"function\" &&\n element.hasAttribute(L10NID_ATTR_NAME)) {\n nodes.push(element);\n }\n return nodes;\n }\n /**\n * Get the `data-l10n-*` attributes from DOM elements as a two-element\n * array.\n *\n * @param {Element} element\n * @returns {Object}\n * @private\n */\n getKeysForElement(element) {\n return {\n id: element.getAttribute(L10NID_ATTR_NAME),\n args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null),\n };\n }\n}\n","export { default as DOMLocalization } from \"./dom_localization.js\";\nexport { default as Localization } from \"./localization.js\";\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DOMSVGFactory, shadow } from \"pdfjs-lib\";\n\nclass AltTextManager {\n #boundUpdateUIState = this.#updateUIState.bind(this);\n\n #boundSetPosition = this.#setPosition.bind(this);\n\n #boundOnClick = this.#onClick.bind(this);\n\n #currentEditor = null;\n\n #cancelButton;\n\n #dialog;\n\n #eventBus;\n\n #hasUsedPointer = false;\n\n #optionDescription;\n\n #optionDecorative;\n\n #overlayManager;\n\n #saveButton;\n\n #textarea;\n\n #uiManager;\n\n #previousAltText = null;\n\n #svgElement = null;\n\n #rectElement = null;\n\n #container;\n\n #telemetryData = null;\n\n constructor(\n {\n dialog,\n optionDescription,\n optionDecorative,\n textarea,\n cancelButton,\n saveButton,\n },\n container,\n overlayManager,\n eventBus\n ) {\n this.#dialog = dialog;\n this.#optionDescription = optionDescription;\n this.#optionDecorative = optionDecorative;\n this.#textarea = textarea;\n this.#cancelButton = cancelButton;\n this.#saveButton = saveButton;\n this.#overlayManager = overlayManager;\n this.#eventBus = eventBus;\n this.#container = container;\n\n dialog.addEventListener(\"close\", this.#close.bind(this));\n dialog.addEventListener(\"contextmenu\", event => {\n if (event.target !== this.#textarea) {\n event.preventDefault();\n }\n });\n cancelButton.addEventListener(\"click\", this.#finish.bind(this));\n saveButton.addEventListener(\"click\", this.#save.bind(this));\n optionDescription.addEventListener(\"change\", this.#boundUpdateUIState);\n optionDecorative.addEventListener(\"change\", this.#boundUpdateUIState);\n\n this.#overlayManager.register(dialog);\n }\n\n get _elements() {\n return shadow(this, \"_elements\", [\n this.#optionDescription,\n this.#optionDecorative,\n this.#textarea,\n this.#saveButton,\n this.#cancelButton,\n ]);\n }\n\n #createSVGElement() {\n if (this.#svgElement) {\n return;\n }\n\n // We create a mask to add to the dialog backdrop: the idea is to have a\n // darken background everywhere except on the editor to clearly see the\n // picture to describe.\n\n const svgFactory = new DOMSVGFactory();\n const svg = (this.#svgElement = svgFactory.createElement(\"svg\"));\n svg.setAttribute(\"width\", \"0\");\n svg.setAttribute(\"height\", \"0\");\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const mask = svgFactory.createElement(\"mask\");\n defs.append(mask);\n mask.setAttribute(\"id\", \"alttext-manager-mask\");\n mask.setAttribute(\"maskContentUnits\", \"objectBoundingBox\");\n let rect = svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"fill\", \"white\");\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n\n rect = this.#rectElement = svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"fill\", \"black\");\n this.#dialog.append(svg);\n }\n\n async editAltText(uiManager, editor) {\n if (this.#currentEditor || !editor) {\n return;\n }\n\n this.#createSVGElement();\n\n this.#hasUsedPointer = false;\n for (const element of this._elements) {\n element.addEventListener(\"click\", this.#boundOnClick);\n }\n\n const { altText, decorative } = editor.altTextData;\n if (decorative === true) {\n this.#optionDecorative.checked = true;\n this.#optionDescription.checked = false;\n } else {\n this.#optionDecorative.checked = false;\n this.#optionDescription.checked = true;\n }\n this.#previousAltText = this.#textarea.value = altText?.trim() || \"\";\n this.#updateUIState();\n\n this.#currentEditor = editor;\n this.#uiManager = uiManager;\n this.#uiManager.removeEditListeners();\n this.#eventBus._on(\"resize\", this.#boundSetPosition);\n\n try {\n await this.#overlayManager.open(this.#dialog);\n this.#setPosition();\n } catch (ex) {\n this.#close();\n throw ex;\n }\n }\n\n #setPosition() {\n if (!this.#currentEditor) {\n return;\n }\n const dialog = this.#dialog;\n const { style } = dialog;\n const {\n x: containerX,\n y: containerY,\n width: containerW,\n height: containerH,\n } = this.#container.getBoundingClientRect();\n const { innerWidth: windowW, innerHeight: windowH } = window;\n const { width: dialogW, height: dialogH } = dialog.getBoundingClientRect();\n const { x, y, width, height } = this.#currentEditor.getClientDimensions();\n const MARGIN = 10;\n const isLTR = this.#uiManager.direction === \"ltr\";\n\n const xs = Math.max(x, containerX);\n const xe = Math.min(x + width, containerX + containerW);\n const ys = Math.max(y, containerY);\n const ye = Math.min(y + height, containerY + containerH);\n this.#rectElement.setAttribute(\"width\", `${(xe - xs) / windowW}`);\n this.#rectElement.setAttribute(\"height\", `${(ye - ys) / windowH}`);\n this.#rectElement.setAttribute(\"x\", `${xs / windowW}`);\n this.#rectElement.setAttribute(\"y\", `${ys / windowH}`);\n\n let left = null;\n let top = Math.max(y, 0);\n top += Math.min(windowH - (top + dialogH), 0);\n\n if (isLTR) {\n // Prefer to position the dialog \"after\" (so on the right) the editor.\n if (x + width + MARGIN + dialogW < windowW) {\n left = x + width + MARGIN;\n } else if (x > dialogW + MARGIN) {\n left = x - dialogW - MARGIN;\n }\n } else if (x > dialogW + MARGIN) {\n left = x - dialogW - MARGIN;\n } else if (x + width + MARGIN + dialogW < windowW) {\n left = x + width + MARGIN;\n }\n\n if (left === null) {\n top = null;\n left = Math.max(x, 0);\n left += Math.min(windowW - (left + dialogW), 0);\n if (y > dialogH + MARGIN) {\n top = y - dialogH - MARGIN;\n } else if (y + height + MARGIN + dialogH < windowH) {\n top = y + height + MARGIN;\n }\n }\n\n if (top !== null) {\n dialog.classList.add(\"positioned\");\n if (isLTR) {\n style.left = `${left}px`;\n } else {\n style.right = `${windowW - left - dialogW}px`;\n }\n style.top = `${top}px`;\n } else {\n dialog.classList.remove(\"positioned\");\n style.left = \"\";\n style.top = \"\";\n }\n }\n\n #finish() {\n if (this.#overlayManager.active === this.#dialog) {\n this.#overlayManager.close(this.#dialog);\n }\n }\n\n #close() {\n this.#eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.#currentEditor.editorType,\n data: this.#telemetryData || {\n action: \"alt_text_cancel\",\n alt_text_keyboard: !this.#hasUsedPointer,\n },\n },\n });\n this.#telemetryData = null;\n\n this.#removeOnClickListeners();\n this.#uiManager?.addEditListeners();\n this.#eventBus._off(\"resize\", this.#boundSetPosition);\n this.#currentEditor.altTextFinish();\n this.#currentEditor = null;\n this.#uiManager = null;\n }\n\n #updateUIState() {\n this.#textarea.disabled = this.#optionDecorative.checked;\n }\n\n #save() {\n const altText = this.#textarea.value.trim();\n const decorative = this.#optionDecorative.checked;\n this.#currentEditor.altTextData = {\n altText,\n decorative,\n };\n this.#telemetryData = {\n action: \"alt_text_save\",\n alt_text_description: !!altText,\n alt_text_edit:\n !!this.#previousAltText && this.#previousAltText !== altText,\n alt_text_decorative: decorative,\n alt_text_keyboard: !this.#hasUsedPointer,\n };\n this.#finish();\n }\n\n #onClick(evt) {\n if (evt.detail === 0) {\n return; // The keyboard was used.\n }\n this.#hasUsedPointer = true;\n this.#removeOnClickListeners();\n }\n\n #removeOnClickListeners() {\n for (const element of this._elements) {\n element.removeEventListener(\"click\", this.#boundOnClick);\n }\n }\n\n destroy() {\n this.#uiManager = null; // Avoid re-adding the edit listeners.\n this.#finish();\n this.#svgElement?.remove();\n this.#svgElement = this.#rectElement = null;\n }\n}\n\nexport { AltTextManager };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/editor/tools.js\").AnnotationEditorUIManager} AnnotationEditorUIManager */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/annotation_layer.js\").AnnotationLayer} AnnotationLayer */\n\nimport { AnnotationEditorLayer } from \"pdfjs-lib\";\nimport { NullL10n } from \"web-l10n_utils\";\n\n/**\n * @typedef {Object} AnnotationEditorLayerBuilderOptions\n * @property {AnnotationEditorUIManager} [uiManager]\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {IL10n} [l10n]\n * @property {TextAccessibilityManager} [accessibilityManager]\n * @property {AnnotationLayer} [annotationLayer]\n * @property {TextLayer} [textLayer]\n * @property {DrawLayer} [drawLayer]\n */\n\nclass AnnotationEditorLayerBuilder {\n #annotationLayer = null;\n\n #drawLayer = null;\n\n #textLayer = null;\n\n #uiManager;\n\n /**\n * @param {AnnotationEditorLayerBuilderOptions} options\n */\n constructor(options) {\n this.pageDiv = options.pageDiv;\n this.pdfPage = options.pdfPage;\n this.accessibilityManager = options.accessibilityManager;\n this.l10n = options.l10n || NullL10n;\n this.annotationEditorLayer = null;\n this.div = null;\n this._cancelled = false;\n this.#uiManager = options.uiManager;\n this.#annotationLayer = options.annotationLayer || null;\n this.#textLayer = options.textLayer || null;\n this.#drawLayer = options.drawLayer || null;\n }\n\n /**\n * @param {PageViewport} viewport\n * @param {string} intent (default value is 'display')\n */\n async render(viewport, intent = \"display\") {\n if (intent !== \"display\") {\n return;\n }\n\n if (this._cancelled) {\n return;\n }\n\n const clonedViewport = viewport.clone({ dontFlip: true });\n if (this.div) {\n this.annotationEditorLayer.update({ viewport: clonedViewport });\n this.show();\n return;\n }\n\n // Create an AnnotationEditor layer div\n const div = (this.div = document.createElement(\"div\"));\n div.className = \"annotationEditorLayer\";\n div.tabIndex = 0;\n div.hidden = true;\n div.dir = this.#uiManager.direction;\n this.pageDiv.append(div);\n\n this.annotationEditorLayer = new AnnotationEditorLayer({\n uiManager: this.#uiManager,\n div,\n accessibilityManager: this.accessibilityManager,\n pageIndex: this.pdfPage.pageNumber - 1,\n l10n: this.l10n,\n viewport: clonedViewport,\n annotationLayer: this.#annotationLayer,\n textLayer: this.#textLayer,\n drawLayer: this.#drawLayer,\n });\n\n const parameters = {\n viewport: clonedViewport,\n div,\n annotations: null,\n intent,\n };\n\n this.annotationEditorLayer.render(parameters);\n this.show();\n }\n\n cancel() {\n this._cancelled = true;\n\n if (!this.div) {\n return;\n }\n this.pageDiv = null;\n this.annotationEditorLayer.destroy();\n this.div.remove();\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n\n show() {\n if (!this.div || this.annotationEditorLayer.isEmpty) {\n return;\n }\n this.div.hidden = false;\n }\n}\n\nexport { AnnotationEditorLayerBuilder };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AnnotationEditorParamsType } from \"pdfjs-lib\";\n\nclass AnnotationEditorParams {\n /**\n * @param {AnnotationEditorParamsOptions} options\n * @param {EventBus} eventBus\n */\n constructor(options, eventBus) {\n this.eventBus = eventBus;\n this.#bindListeners(options);\n }\n\n #bindListeners({\n editorFreeTextFontSize,\n editorFreeTextColor,\n editorInkColor,\n editorInkThickness,\n editorInkOpacity,\n editorStampAddImage,\n }) {\n const dispatchEvent = (typeStr, value) => {\n this.eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: AnnotationEditorParamsType[typeStr],\n value,\n });\n };\n editorFreeTextFontSize.addEventListener(\"input\", function () {\n dispatchEvent(\"FREETEXT_SIZE\", this.valueAsNumber);\n });\n editorFreeTextColor.addEventListener(\"input\", function () {\n dispatchEvent(\"FREETEXT_COLOR\", this.value);\n });\n editorInkColor.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_COLOR\", this.value);\n });\n editorInkThickness.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_THICKNESS\", this.valueAsNumber);\n });\n editorInkOpacity.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_OPACITY\", this.valueAsNumber);\n });\n editorStampAddImage.addEventListener(\"click\", () => {\n dispatchEvent(\"CREATE\");\n });\n\n this.eventBus._on(\"annotationeditorparamschanged\", evt => {\n for (const [type, value] of evt.details) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n editorFreeTextFontSize.value = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n editorFreeTextColor.value = value;\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n editorInkColor.value = value;\n break;\n case AnnotationEditorParamsType.INK_THICKNESS:\n editorInkThickness.value = value;\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n editorInkOpacity.value = value;\n break;\n }\n }\n });\n }\n}\n\nexport { AnnotationEditorParams };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/annotation_storage\").AnnotationStorage} AnnotationStorage */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n\nimport { AnnotationLayer } from \"pdfjs-lib\";\nimport { PresentationModeState } from \"./ui_utils.js\";\n\n/**\n * @typedef {Object} AnnotationLayerBuilderOptions\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} [downloadManager]\n * @property {boolean} [enableScripting]\n * @property {Promise} [hasJSActionsPromise]\n * @property {Promise> | null>}\n * [fieldObjectsPromise]\n * @property {Map} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\nclass AnnotationLayerBuilder {\n #onPresentationModeChanged = null;\n\n /**\n * @param {AnnotationLayerBuilderOptions} options\n */\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n enableScripting = false,\n hasJSActionsPromise = null,\n fieldObjectsPromise = null,\n annotationCanvasMap = null,\n accessibilityManager = null,\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderForms = renderForms;\n this.annotationStorage = annotationStorage;\n this.enableScripting = enableScripting;\n this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false);\n this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null);\n this._annotationCanvasMap = annotationCanvasMap;\n this._accessibilityManager = accessibilityManager;\n\n this.annotationLayer = null;\n this.div = null;\n this._cancelled = false;\n this._eventBus = linkService.eventBus;\n }\n\n /**\n * @param {PageViewport} viewport\n * @param {string} intent (default value is 'display')\n * @returns {Promise} A promise that is resolved when rendering of the\n * annotations is complete.\n */\n async render(viewport, intent = \"display\") {\n if (this.div) {\n if (this._cancelled || !this.annotationLayer) {\n return;\n }\n // If an annotationLayer already exists, refresh its children's\n // transformation matrices.\n this.annotationLayer.update({\n viewport: viewport.clone({ dontFlip: true }),\n });\n return;\n }\n\n const [annotations, hasJSActions, fieldObjects] = await Promise.all([\n this.pdfPage.getAnnotations({ intent }),\n this._hasJSActionsPromise,\n this._fieldObjectsPromise,\n ]);\n if (this._cancelled) {\n return;\n }\n\n // Create an annotation layer div and render the annotations\n // if there is at least one annotation.\n const div = (this.div = document.createElement(\"div\"));\n div.className = \"annotationLayer\";\n this.pageDiv.append(div);\n\n if (annotations.length === 0) {\n this.hide();\n return;\n }\n\n this.annotationLayer = new AnnotationLayer({\n div,\n accessibilityManager: this._accessibilityManager,\n annotationCanvasMap: this._annotationCanvasMap,\n page: this.pdfPage,\n viewport: viewport.clone({ dontFlip: true }),\n });\n\n await this.annotationLayer.render({\n annotations,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage,\n enableScripting: this.enableScripting,\n hasJSActions,\n fieldObjects,\n });\n\n // Ensure that interactive form elements in the annotationLayer are\n // disabled while PresentationMode is active (see issue 12232).\n if (this.linkService.isInPresentationMode) {\n this.#updatePresentationModeState(PresentationModeState.FULLSCREEN);\n }\n if (!this.#onPresentationModeChanged) {\n this.#onPresentationModeChanged = evt => {\n this.#updatePresentationModeState(evt.state);\n };\n this._eventBus?._on(\n \"presentationmodechanged\",\n this.#onPresentationModeChanged\n );\n }\n }\n\n cancel() {\n this._cancelled = true;\n\n if (this.#onPresentationModeChanged) {\n this._eventBus?._off(\n \"presentationmodechanged\",\n this.#onPresentationModeChanged\n );\n this.#onPresentationModeChanged = null;\n }\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n\n #updatePresentationModeState(state) {\n if (!this.div) {\n return;\n }\n let disableFormElements = false;\n\n switch (state) {\n case PresentationModeState.FULLSCREEN:\n disableFormElements = true;\n break;\n case PresentationModeState.NORMAL:\n break;\n default:\n return;\n }\n for (const section of this.div.childNodes) {\n if (section.hasAttribute(\"data-internal-link\")) {\n continue;\n }\n section.inert = disableFormElements;\n }\n }\n}\n\nexport { AnnotationLayerBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n AutoPrintRegExp,\n CursorTool,\n DEFAULT_SCALE_VALUE,\n getActiveOrFocusedElement,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n normalizeWheelEventDirection,\n parseQueryString,\n ProgressBar,\n RenderingStates,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n} from \"./ui_utils.js\";\nimport {\n AnnotationEditorType,\n build,\n FeatureTest,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n GlobalWorkerOptions,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n MissingPDFException,\n PDFWorker,\n PromiseCapability,\n shadow,\n UnexpectedResponseException,\n version,\n} from \"pdfjs-lib\";\nimport { AppOptions, OptionKind } from \"./app_options.js\";\nimport { AutomationEventBus, EventBus } from \"./event_utils.js\";\nimport { LinkTarget, PDFLinkService } from \"./pdf_link_service.js\";\nimport { AltTextManager } from \"web-alt_text_manager\";\nimport { AnnotationEditorParams } from \"web-annotation_editor_params\";\nimport { OverlayManager } from \"./overlay_manager.js\";\nimport { PasswordPrompt } from \"./password_prompt.js\";\nimport { PDFAttachmentViewer } from \"web-pdf_attachment_viewer\";\nimport { PDFCursorTools } from \"web-pdf_cursor_tools\";\nimport { PDFDocumentProperties } from \"web-pdf_document_properties\";\nimport { PDFFindBar } from \"web-pdf_find_bar\";\nimport { PDFFindController } from \"./pdf_find_controller.js\";\nimport { PDFHistory } from \"./pdf_history.js\";\nimport { PDFLayerViewer } from \"web-pdf_layer_viewer\";\nimport { PDFOutlineViewer } from \"web-pdf_outline_viewer\";\nimport { PDFPresentationMode } from \"web-pdf_presentation_mode\";\nimport { PDFRenderingQueue } from \"./pdf_rendering_queue.js\";\nimport { PDFScriptingManager } from \"./pdf_scripting_manager.js\";\nimport { PDFSidebar } from \"web-pdf_sidebar\";\nimport { PDFThumbnailViewer } from \"web-pdf_thumbnail_viewer\";\nimport { PDFViewer } from \"./pdf_viewer.js\";\nimport { SecondaryToolbar } from \"web-secondary_toolbar\";\nimport { Toolbar } from \"web-toolbar\";\nimport { ViewHistory } from \"./view_history.js\";\n\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000; // ms\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\n\nconst ViewOnLoad = {\n UNKNOWN: -1,\n PREVIOUS: 0, // Default value.\n INITIAL: 1,\n};\n\nclass DefaultExternalServices {\n constructor() {\n throw new Error(\"Cannot initialize DefaultExternalServices.\");\n }\n\n static updateFindControlState(data) {}\n\n static updateFindMatchesCount(data) {}\n\n static initPassiveLoading(callbacks) {}\n\n static reportTelemetry(data) {}\n\n static createDownloadManager() {\n throw new Error(\"Not implemented: createDownloadManager\");\n }\n\n static createPreferences() {\n throw new Error(\"Not implemented: createPreferences\");\n }\n\n static async createL10n() {\n throw new Error(\"Not implemented: createL10n\");\n }\n\n static createScripting() {\n throw new Error(\"Not implemented: createScripting\");\n }\n\n static updateEditorStates(data) {\n throw new Error(\"Not implemented: updateEditorStates\");\n }\n\n static getNimbusExperimentData() {\n return shadow(this, \"getNimbusExperimentData\", Promise.resolve(null));\n }\n}\n\nconst PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n _initializedCapability: new PromiseCapability(),\n appConfig: null,\n pdfDocument: null,\n pdfLoadingTask: null,\n printService: null,\n /** @type {PDFViewer} */\n pdfViewer: null,\n /** @type {PDFThumbnailViewer} */\n pdfThumbnailViewer: null,\n /** @type {PDFRenderingQueue} */\n pdfRenderingQueue: null,\n /** @type {PDFPresentationMode} */\n pdfPresentationMode: null,\n /** @type {PDFDocumentProperties} */\n pdfDocumentProperties: null,\n /** @type {PDFLinkService} */\n pdfLinkService: null,\n /** @type {PDFHistory} */\n pdfHistory: null,\n /** @type {PDFSidebar} */\n pdfSidebar: null,\n /** @type {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFLayerViewer} */\n pdfLayerViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {PDFScriptingManager} */\n pdfScriptingManager: null,\n /** @type {ViewHistory} */\n store: null,\n /** @type {DownloadManager} */\n downloadManager: null,\n /** @type {OverlayManager} */\n overlayManager: null,\n /** @type {Preferences} */\n preferences: null,\n /** @type {Toolbar} */\n toolbar: null,\n /** @type {SecondaryToolbar} */\n secondaryToolbar: null,\n /** @type {EventBus} */\n eventBus: null,\n /** @type {IL10n} */\n l10n: null,\n /** @type {AnnotationEditorParams} */\n annotationEditorParams: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: window.parent !== window,\n url: \"\",\n baseUrl: \"\",\n _downloadUrl: \"\",\n externalServices: DefaultExternalServices,\n _boundEvents: Object.create(null),\n documentInfo: null,\n metadata: null,\n _contentDispositionFilename: null,\n _contentLength: null,\n _saveInProgress: false,\n _wheelUnusedTicks: 0,\n _wheelUnusedFactor: 1,\n _touchUnusedTicks: 0,\n _touchUnusedFactor: 1,\n _PDFBug: null,\n _hasAnnotationEditors: false,\n _title: document.title,\n _printAnnotationStoragePromise: null,\n _touchInfo: null,\n _isCtrlKeyDown: false,\n _nimbusDataPromise: null,\n\n // Called once when the document is loaded.\n async initialize(appConfig) {\n let l10nPromise;\n // In the (various) extension builds, where the locale is set automatically,\n // initialize the `L10n`-instance as soon as possible.\n if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n l10nPromise = this.externalServices.createL10n();\n }\n this.appConfig = appConfig;\n\n if (\n typeof PDFJSDev === \"undefined\"\n ? window.isGECKOVIEW\n : PDFJSDev.test(\"GECKOVIEW\")\n ) {\n this._nimbusDataPromise = this.externalServices.getNimbusExperimentData();\n }\n\n // Ensure that `Preferences`, and indirectly `AppOptions`, have initialized\n // before creating e.g. the various viewer components.\n try {\n await this.preferences.initializedPromise;\n } catch (ex) {\n console.error(`initialize: \"${ex.message}\".`);\n }\n if (AppOptions.get(\"pdfBugEnabled\")) {\n await this._parseHashParams();\n }\n\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n let mode;\n switch (AppOptions.get(\"viewerCssTheme\")) {\n case 1:\n mode = \"is-light\";\n break;\n case 2:\n mode = \"is-dark\";\n break;\n }\n if (mode) {\n document.documentElement.classList.add(mode);\n }\n }\n\n // Ensure that the `L10n`-instance has been initialized before creating\n // e.g. the various viewer components.\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n l10nPromise = this.externalServices.createL10n();\n }\n this.l10n = await l10nPromise;\n document.getElementsByTagName(\"html\")[0].dir = this.l10n.getDirection();\n // Connect Fluent, when necessary, and translate what we already have.\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n this.l10n.translate(appConfig.appContainer || document.documentElement);\n }\n\n if (\n this.isViewerEmbedded &&\n AppOptions.get(\"externalLinkTarget\") === LinkTarget.NONE\n ) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an '),e.remove()):r&&r[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):i&&i[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):a&&a[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):o&&o[0]?(e.insertAdjacentHTML("afterend",''),e.remove()):s&&s[2]?(e.insertAdjacentHTML("afterend",''),e.remove()):c&&c[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):d&&d[1]&&(e.insertAdjacentHTML("afterend",''),e.remove())}(e,t))}))}},40:(e,t,n)=>{n.d(t,{i:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t,n){void 0===t&&(t=r.g.CDN);var o=a.mermaidRenderAdapter.getElements(e);0!==o.length&&(0,i.G)(t+"/dist/js/mermaid/mermaid.min.js?v=10.8.0","vditorMermaidScript").then((function(){var e={securityLevel:"loose",altFontFamily:"sans-serif",fontFamily:"sans-serif",startOnLoad:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequence:{useMaxWidth:!0,diagramMarginX:8,diagramMarginY:8,boxMargin:8},gantt:{leftPadding:75,rightPadding:20}};"dark"===n&&(e.theme="dark"),mermaid.initialize(e),o.forEach((function(e){var t=a.mermaidRenderAdapter.getCode(e);"true"!==e.getAttribute("data-processed")&&""!==t.trim()&&(mermaid.init(void 0,e),e.setAttribute("data-processed","true"))}))}))}},749:(e,t,n)=>{n.d(t,{P:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t,n){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var o=a.mindmapRenderAdapter.getElements(e);o.length>0&&(0,i.G)(t+"/dist/js/echarts/echarts.min.js","vditorEchartsScript").then((function(){o.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")){var t=a.mindmapRenderAdapter.getCode(e);if(t)try{if("true"===e.getAttribute("data-processed"))return;echarts.init(e,"dark"===n?"dark":void 0).setOption({series:[{data:[JSON.parse(decodeURIComponent(t))],initialTreeDepth:-1,itemStyle:{borderWidth:0,color:"#4285f4"},label:{backgroundColor:"#f6f8fa",borderColor:"#d1d5da",borderRadius:5,borderWidth:.5,color:"#586069",lineHeight:20,offset:[-5,0],padding:[0,5],position:"insideRight"},lineStyle:{color:"#d1d5da",width:1},roam:!0,symbol:function(e,t){var n;return(null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.children)?"circle":"path://"},type:"tree"}],tooltip:{trigger:"item",triggerOn:"mousemove"}}),e.setAttribute("data-processed","true")}catch(t){e.className="vditor-reset--error",e.innerHTML="mindmap render error:
      "+t}}}))}))}},818:(e,t,n)=>{n.d(t,{k:()=>a});var r=n(64),i=n(466),a=function(e,t,n){var a="",o=[];if(Array.from(e.children).forEach((function(e,t){if((0,r.W)(e)){if(n){var i=e.id.lastIndexOf("_");e.id=e.id.substring(0,-1===i?void 0:i)+"_"+t}o.push(e.id),a+=e.outerHTML.replace("","")}})),""===a)return t.innerHTML="","";var s=document.createElement("div");if(n)n.lute.SetToC(!0),"wysiwyg"!==n.currentMode||n.preview.element.contains(e)?"ir"!==n.currentMode||n.preview.element.contains(e)?s.innerHTML=n.lute.HTML2VditorDOM("

      [ToC]

      "+a):s.innerHTML=n.lute.SpinVditorIRDOM("

      [ToC]

      "+a):s.innerHTML=n.lute.SpinVditorDOM("

      [ToC]

      "+a),n.lute.SetToC(n.options.preview.markdown.toc);else{t.classList.add("vditor-outline");var c=Lute.New();c.SetToC(!0),s.innerHTML=c.HTML2VditorDOM("

      [ToC]

      "+a)}var d=s.firstElementChild.querySelectorAll("li > span[data-target-id]");return d.forEach((function(e,t){if(e.nextElementSibling&&"UL"===e.nextElementSibling.tagName){var n="";document.getElementById("vditorIconScript")||(n=''),e.innerHTML=n+""+e.innerHTML+""}else e.innerHTML=""+e.innerHTML+"";e.setAttribute("data-target-id",o[t])})),a=s.firstElementChild.innerHTML,0===d.length?(t.innerHTML="",a):(t.innerHTML=a,n&&(0,i.H)(t,{cdn:n.options.cdn,math:n.options.preview.math}),t.firstElementChild.addEventListener("click",(function(r){for(var i=r.target;i&&!i.isEqualNode(t);){if(i.classList.contains("vditor-outline__action")){i.classList.contains("vditor-outline__action--close")?(i.classList.remove("vditor-outline__action--close"),i.parentElement.nextElementSibling.setAttribute("style","display:block")):(i.classList.add("vditor-outline__action--close"),i.parentElement.nextElementSibling.setAttribute("style","display:none")),r.preventDefault(),r.stopPropagation();break}if(i.getAttribute("data-target-id")){r.preventDefault(),r.stopPropagation();var a=document.getElementById(i.getAttribute("data-target-id"));if(!a)return;if(n)if("auto"===n.options.height){var o=a.offsetTop+n.element.offsetTop;n.options.toolbarConfig.pin||(o+=n.toolbar.element.offsetHeight),window.scrollTo(window.scrollX,o)}else n.element.offsetTop{n.d(t,{B:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var n=a.plantumlRenderAdapter.getElements(e);0!==n.length&&(0,i.G)(t+"/dist/js/plantuml/plantuml-encoder.min.js","vditorPlantumlScript").then((function(){n.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")){var t=a.plantumlRenderAdapter.getCode(e).trim();if(t)try{e.innerHTML=''}catch(t){e.className="vditor-reset--error",e.innerHTML="plantuml render error:
      "+t}}}))}))}},895:(e,t,n)=>{n.d(t,{X:()=>r});var r=function(e){var t=Lute.New();return t.PutEmojis(e.emojis),t.SetEmojiSite(e.emojiSite),t.SetHeadingAnchor(e.headingAnchor),t.SetInlineMathAllowDigitAfterOpenMarker(e.inlineMathDigit),t.SetAutoSpace(e.autoSpace),t.SetToC(e.toc),t.SetFootnotes(e.footnotes),t.SetFixTermTypo(e.fixTermTypo),t.SetVditorCodeBlockPreview(e.codeBlockPreview),t.SetVditorMathBlockPreview(e.mathBlockPreview),t.SetSanitize(e.sanitize),t.SetChineseParagraphBeginningSpace(e.paragraphBeginningSpace),t.SetRenderListStyle(e.listStyle),t.SetLinkBase(e.linkBase),t.SetLinkPrefix(e.linkPrefix),t.SetMark(e.mark),t.SetGFMAutoLink(e.gfmAutoLink),e.lazyLoadImage&&t.SetImageLazyLoading(e.lazyLoadImage),t}},863:(e,t,n)=>{n.d(t,{E:()=>r});var r=function(e,t,n){void 0===t&&(t="zh_CN"),void 0===n&&(n="classic");var r=e.getBoundingClientRect();document.body.insertAdjacentHTML("beforeend",'
      \n
      \n \n \n '+window.VditorI18n.spin+"\n \n \n X  "+window.VditorI18n.close+'\n \n
      \n
      \n \n
      \n
      '),document.body.style.overflow="hidden";var i=document.querySelector(".vditor-img img"),a="translate3d("+Math.max(0,window.innerWidth-e.naturalWidth)/2+"px, "+Math.max(0,window.innerHeight-36-e.naturalHeight)/2+"px, 0)";setTimeout((function(){i.setAttribute("style","transition: transform .3s ease-in-out;transform: "+a),setTimeout((function(){i.parentElement.scrollTo((i.parentElement.scrollWidth-i.parentElement.clientWidth)/2,(i.parentElement.scrollHeight-i.parentElement.clientHeight)/2)}),400)}));var o=document.querySelector(".vditor-img__btn");o.addEventListener("click",(function(){var t=parseInt(o.getAttribute("data-deg"),10)+90;t/90%2==1&&e.naturalWidth>i.parentElement.clientHeight?i.style.transform="translate3d("+Math.max(0,window.innerWidth-e.naturalWidth)/2+"px, "+(e.naturalWidth/2-e.naturalHeight/2)+"px, 0) rotateZ("+t+"deg)":i.style.transform=a+" rotateZ("+t+"deg)",o.setAttribute("data-deg",t.toString()),setTimeout((function(){i.parentElement.scrollTo((i.parentElement.scrollWidth-i.parentElement.clientWidth)/2,(i.parentElement.scrollHeight-i.parentElement.clientHeight)/2)}),400)}))}},312:(e,t,n)=>{n.d(t,{Y:()=>a});var r=n(54),i=n(578),a=function(e,t){void 0===t&&(t=r.g.CDN),r.g.CODE_THEME.includes(e)||(e="github");var n=document.getElementById("vditorHljsStyle"),a=t+"/dist/js/highlight.js/styles/"+e+".css";n?n.href!==a&&(n.remove(),(0,i.c)(a,"vditorHljsStyle")):(0,i.c)(a,"vditorHljsStyle")}},227:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(578),i=function(e,t){if(e&&t){var n=document.getElementById("vditorContentTheme"),i=t+"/"+e+".css";n?n.getAttribute("href")!==i&&(n.remove(),(0,r.c)(i,"vditorContentTheme")):(0,r.c)(i,"vditorContentTheme")}}},526:(e,t,n)=>{n.d(t,{G:()=>i,J:()=>r});var r=function(e,t){if(document.getElementById(t))return!1;var n=new XMLHttpRequest;n.open("GET",e,!1),n.setRequestHeader("Accept","text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"),n.send("");var r=document.createElement("script");r.type="text/javascript",r.text=n.responseText,r.id=t,document.head.appendChild(r)},i=function(e,t){return new Promise((function(n,r){if(document.getElementById(t))return n(),!1;var i=document.createElement("script");i.src=e,i.async=!0,document.head.appendChild(i),i.onerror=function(e){r(e)},i.onload=function(){if(document.getElementById(t))return i.remove(),n(),!1;i.id=t,n()}}))}},578:(e,t,n)=>{n.d(t,{c:()=>r});var r=function(e,t){if(!document.getElementById(t)){var n=document.createElement("link");n.id=t,n.rel="stylesheet",n.type="text/css",n.href=e,document.getElementsByTagName("head")[0].appendChild(n)}}},51:(e,t,n)=>{n.d(t,{X:()=>r});var r=function(e){return e.replace(/\u00a0/g," ")}},827:(e,t,n)=>{n.d(t,{fb:()=>i,lG:()=>r});var r=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)n.nodeName===t?r=!0:n=n.parentElement;return r&&n},i=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)n.classList.contains(t)?r=!0:n=n.parentElement;return r&&n}},64:(e,t,n)=>{n.d(t,{W:()=>r});var r=function(e){var t=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)0===n.nodeName.indexOf(t)?r=!0:n=n.parentElement;return r&&n}(e,"H");return!(!t||2!==t.tagName.length||"HR"===t.tagName)&&t}},640:(e,t,n)=>{n.d(t,{T:()=>r});var r=function(){for(var e=[],t=0;t{n.d(t,{Hc:()=>r});n(54);var r=function(e){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}}},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.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 r={};return(()=>{n.d(r,{default:()=>C});var e=n(478),t=n(156),i=n(314),a=n(730),o=n(66),s=n(218),c=n(702),d=function(e){void 0===e&&(e=document);var t=function(e){var t=document.createElement("img");t.src=e.getAttribute("data-src"),t.addEventListener("load",(function(){e.getAttribute("style")||e.getAttribute("class")||e.getAttribute("width")||e.getAttribute("height")||t.naturalHeight>t.naturalWidth&&t.naturalWidth/t.naturalHeightwindow.innerHeight-40&&(e.style.height=window.innerHeight-40+"px"),e.src=t.src})),e.removeAttribute("data-src")};if(!("IntersectionObserver"in window))return e.querySelectorAll("img").forEach((function(e){e.getAttribute("data-src")&&t(e)})),!1;window.vditorImageIntersectionObserver?(window.vditorImageIntersectionObserver.disconnect(),e.querySelectorAll("img").forEach((function(e){window.vditorImageIntersectionObserver.observe(e)}))):(window.vditorImageIntersectionObserver=new IntersectionObserver((function(e){e.forEach((function(e){(void 0===e.isIntersecting?0!==e.intersectionRatio:e.isIntersecting)&&e.target.getAttribute("data-src")&&t(e.target)}))})),e.querySelectorAll("img").forEach((function(e){window.vditorImageIntersectionObserver.observe(e)})))},l=n(466),m=n(554),u=n(40),p=n(563),h=n(749),g=n(818),v=n(408),f=n(54),w=n(227),y=n(526),b=n(827),S=n(640),E=n(895),L=n(393),k=function(e,t){if(void 0===t&&(t="zh_CN"),"undefined"!=typeof speechSynthesis&&"undefined"!=typeof SpeechSynthesisUtterance){var n='',r='';document.getElementById("vditorIconScript")||(n='',r='');var i=document.querySelector(".vditor-speech");if(!i){(i=document.createElement("div")).className="vditor-speech",document.body.insertAdjacentElement("beforeend",i);var a=function(){var e,n;return speechSynthesis.getVoices().forEach((function(r){r.lang===t.replace("_","-")&&(e=r),r.default&&(n=r)})),e||(e=n),e};void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=a);var o=a();i.onclick=function(){if("vditor-speech"===i.className){var e=new SpeechSynthesisUtterance(i.getAttribute("data-text"));e.voice=o,e.onend=function(){i.className="vditor-speech",speechSynthesis.cancel(),i.innerHTML=n},speechSynthesis.speak(e),i.className="vditor-speech vditor-speech--current",i.innerHTML=r}else speechSynthesis.speaking&&(speechSynthesis.paused?(speechSynthesis.resume(),i.innerHTML=r):(speechSynthesis.pause(),i.innerHTML=n));(0,L.Hc)(window.vditorSpeechRange)},document.body.addEventListener("click",(function(){""===getSelection().toString().trim()&&"block"===i.style.display&&(i.className="vditor-speech",speechSynthesis.cancel(),i.style.display="none")}))}e.addEventListener("mouseup",(function(e){var t=getSelection().toString().trim();if(speechSynthesis.cancel(),""!==getSelection().toString().trim()){window.vditorSpeechRange=getSelection().getRangeAt(0).cloneRange();var r=getSelection().getRangeAt(0).getBoundingClientRect();i.innerHTML=n,i.style.display="block",i.style.top=r.top+r.height+document.querySelector("html").scrollTop-20+"px",i.style.left=e.clientX+2+"px",i.setAttribute("data-text",t)}else"block"===i.style.display&&(i.className="vditor-speech",i.style.display="none")}))}},A=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))},T=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1](()=>{"use strict";var e={54:(e,t,n)=>{n.d(t,{g:()=>r});var r=function(){function e(){}return e.ZWSP="​",e.DROP_EDITOR="application/editor",e.MOBILE_WIDTH=520,e.CLASS_MENU_DISABLED="vditor-menu--disabled",e.EDIT_TOOLBARS=["emoji","headings","bold","italic","strike","link","list","ordered-list","outdent","indent","check","line","quote","code","inline-code","insert-after","insert-before","upload","record","table"],e.CODE_THEME=["abap","algol","algol_nu","arduino","autumn","borland","bw","colorful","dracula","emacs","friendly","fruity","github","igor","lovelace","manni","monokai","monokailight","murphy","native","paraiso-dark","paraiso-light","pastie","perldoc","pygments","rainbow_dash","rrt","solarized-dark","solarized-dark256","solarized-light","swapoff","tango","trac","vim","vs","xcode","ant-design"],e.CODE_LANGUAGES=["mermaid","echarts","mindmap","plantuml","abc","graphviz","flowchart","apache","js","ts","html","markmap","properties","apache","bash","c","csharp","cpp","css","coffeescript","diff","go","xml","http","json","java","javascript","kotlin","less","lua","makefile","markdown","nginx","objectivec","php","php-template","perl","plaintext","python","python-repl","r","ruby","rust","scss","sql","shell","swift","ini","typescript","vbnet","yaml","ada","clojure","dart","erb","fortran","gradle","haskell","julia","julia-repl","lisp","matlab","pgsql","powershell","sql_more","stata","cmake","mathematica","solidity","yul"],e.CDN="https://unpkg.com/vditor@3.9.9",e.MARKDOWN_OPTIONS={autoSpace:!1,gfmAutoLink:!0,codeBlockPreview:!0,fixTermTypo:!1,footnotes:!0,linkBase:"",linkPrefix:"",listStyle:!1,mark:!1,mathBlockPreview:!0,paragraphBeginningSpace:!1,sanitize:!0,toc:!1},e.HLJS_OPTIONS={enable:!0,lineNumber:!1,defaultLang:"",style:"github"},e.MATH_OPTIONS={engine:"KaTeX",inlineDigit:!1,macros:{}},e.THEME_OPTIONS={current:"light",list:{"ant-design":"Ant Design",dark:"Dark",light:"Light",wechat:"WeChat"},path:e.CDN+"/dist/css/content-theme"},e}()},478:(e,t,n)=>{n.d(t,{Q:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var n=a.abcRenderAdapter.getElements(e);n.length>0&&(0,i.G)(t+"/dist/js/abcjs/abcjs_basic.min.js","vditorAbcjsScript").then((function(){n.forEach((function(e){e.parentElement.classList.contains("vditor-wysiwyg__pre")||e.parentElement.classList.contains("vditor-ir__marker--pre")||"true"!==e.getAttribute("data-processed")&&(ABCJS.renderAbc(e,a.abcRenderAdapter.getCode(e).trim()),e.style.overflowX="auto",e.setAttribute("data-processed","true"))}))}))}},156:(e,t,n)=>{n.r(t),n.d(t,{abcRenderAdapter:()=>c,chartRenderAdapter:()=>s,flowchartRenderAdapter:()=>l,graphvizRenderAdapter:()=>d,markmapRenderAdapter:()=>a,mathRenderAdapter:()=>r,mermaidRenderAdapter:()=>i,mindmapRenderAdapter:()=>o,plantumlRenderAdapter:()=>m});var r={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-math")}},i={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-mermaid")}},a={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-markmap")}},o={getCode:function(e){return e.getAttribute("data-code")},getElements:function(e){return e.querySelectorAll(".language-mindmap")}},s={getCode:function(e){return e.innerText},getElements:function(e){return e.querySelectorAll(".language-echarts")}},c={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-abc")}},d={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-graphviz")}},l={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-flowchart")}},m={getCode:function(e){return e.textContent},getElements:function(e){return e.querySelectorAll(".language-plantuml")}}},314:(e,t,n)=>{n.d(t,{p:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t,n){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var o=a.chartRenderAdapter.getElements(e);o.length>0&&(0,i.G)(t+"/dist/js/echarts/echarts.min.js","vditorEchartsScript").then((function(){o.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")){var t=a.chartRenderAdapter.getCode(e).trim();if(t)try{if("true"===e.getAttribute("data-processed"))return;var r=JSON.parse(t);echarts.init(e,"dark"===n?"dark":void 0).setOption(r),e.setAttribute("data-processed","true")}catch(t){e.className="vditor-reset--error",e.innerHTML="echarts render error:
      "+t}}}))}))}},730:(e,t,n)=>{n.d(t,{O:()=>a});var r=n(51),i=n(54),a=function(e){Array.from(e.querySelectorAll("pre > code")).filter((function(t,n){return!t.parentElement.classList.contains("vditor-wysiwyg__pre")&&!t.parentElement.classList.contains("vditor-ir__marker--pre")&&(!(t.classList.contains("language-mermaid")||t.classList.contains("language-flowchart")||t.classList.contains("language-echarts")||t.classList.contains("language-mindmap")||t.classList.contains("language-plantuml")||t.classList.contains("language-markmap")||t.classList.contains("language-abc")||t.classList.contains("language-graphviz")||t.classList.contains("language-math"))&&(!(t.style.maxHeight.indexOf("px")>-1)&&!(e.classList.contains("vditor-preview")&&n>5)))})).forEach((function(e){var t,n,a,o=e.innerText;if(e.classList.contains("highlight-chroma")){var s=e.cloneNode(!0);s.querySelectorAll(".highlight-ln").forEach((function(e){e.remove()})),o=s.innerText}else o.endsWith("\n")&&(o=o.substr(0,o.length-1));var c='';document.getElementById("vditorIconScript")||(c='');var d=document.createElement("div");d.className="vditor-copy",d.innerHTML='"+c+"";var l=document.createElement("textarea");l.value=(0,r.X)(o),d.insertAdjacentElement("afterbegin",l),e.before(d),e.style.maxHeight=window.outerHeight-40+"px",e.insertAdjacentHTML("afterend",''+i.g.ZWSP+"")}))}},66:(e,t,n)=>{n.d(t,{P:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t){void 0===t&&(t=r.g.CDN);var n=a.flowchartRenderAdapter.getElements(e);0!==n.length&&(0,i.G)(t+"/dist/js/flowchart.js/flowchart.min.js","vditorFlowchartScript").then((function(){n.forEach((function(e){if("true"!==e.getAttribute("data-processed")){var t=flowchart.parse(a.flowchartRenderAdapter.getCode(e));e.innerHTML="",t.drawSVG(e),e.setAttribute("data-processed","true")}}))}))}},218:(e,t,n)=>{n.d(t,{v:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t){void 0===t&&(t=r.g.CDN);var n=a.graphvizRenderAdapter.getElements(e);0!==n.length&&(0,i.G)(t+"/dist/js/graphviz/viz.js","vditorGraphVizScript").then((function(){n.forEach((function(e){var t=a.graphvizRenderAdapter.getCode(e);if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")&&"true"!==e.getAttribute("data-processed")&&""!==t.trim()){try{var n=new Blob(["importScripts('"+document.getElementById("vditorGraphVizScript").src.replace("viz.js","full.render.js")+"');"],{type:"application/javascript"}),r=(window.URL||window.webkitURL).createObjectURL(n),i=new Worker(r);new Viz({worker:i}).renderSVGElement(t).then((function(t){e.innerHTML=t.outerHTML})).catch((function(t){e.innerHTML="graphviz render error:
      "+t,e.className="vditor-reset--error"}))}catch(e){console.error("graphviz error",e)}e.setAttribute("data-processed","true")}}))}))}},702:(e,t,n)=>{n.d(t,{s:()=>o});var r=n(54),i=n(526),a=n(578),o=function(e,t,n){void 0===t&&(t=document),void 0===n&&(n=r.g.CDN);var o=e.style;r.g.CODE_THEME.includes(o)||(o="github");var s=document.getElementById("vditorHljsStyle"),c=n+"/dist/js/highlight.js/styles/"+o+".css";(s&&s.href!==c&&s.remove(),(0,a.c)(n+"/dist/js/highlight.js/styles/"+o+".css","vditorHljsStyle"),!1!==e.enable)&&(0!==t.querySelectorAll("pre > code").length&&(0,i.G)(n+"/dist/js/highlight.js/highlight.pack.js","vditorHljsScript").then((function(){(0,i.G)(n+"/dist/js/highlight.js/solidity.min.js","vditorHljsSolidityScript").then((function(){(0,i.G)(n+"/dist/js/highlight.js/yul.min.js","vditorHljsYulScript").then((function(){t.querySelectorAll("pre > code").forEach((function(t){if(!t.parentElement.classList.contains("vditor-ir__marker--pre")&&!t.parentElement.classList.contains("vditor-wysiwyg__pre")&&!(t.classList.contains("language-mermaid")||t.classList.contains("language-flowchart")||t.classList.contains("language-echarts")||t.classList.contains("language-mindmap")||t.classList.contains("language-plantuml")||t.classList.contains("language-abc")||t.classList.contains("language-graphviz")||t.classList.contains("language-math"))&&(""!==e.defaultLang&&-1===t.className.indexOf("language-")&&t.classList.add("language-"+e.defaultLang),hljs.highlightElement(t),e.lineNumber)){t.classList.add("vditor-linenumber");var n=t.querySelector(".vditor-linenumber__temp");n||((n=document.createElement("div")).className="vditor-linenumber__temp",t.insertAdjacentElement("beforeend",n));var r=getComputedStyle(t).whiteSpace,i=!1;"pre-wrap"!==r&&"pre-line"!==r||(i=!0);var a="",o=t.textContent.split(/\r\n|\r|\n/g);o.pop(),o.map((function(e){var t="";i&&(n.textContent=e||"\n",t=' style="height:'+n.getBoundingClientRect().height+'px"'),a+=""})),n.style.display="none",a=''+a+"",t.insertAdjacentHTML("beforeend",a)}}))}))}))})))}},563:(e,t,n)=>{n.d(t,{K:()=>c});var r=n(54),i=n(526),a=n(156),o={},s=function(e,t){var n=window.markmap,r=n.Transformer,i=n.Markmap,a=n.deriveOptions,s=(n.globalCSS,new r);e.innerHTML='';var c=e.firstChild,d=i.create(c,null),l=function(e,t){var n=e.transform(t),r=Object.keys(n.features).filter((function(e){return!o[e]}));r.forEach((function(e){o[e]=!0}));var i=e.getAssets(r),a=i.styles,s=i.scripts,c=window.markmap;return a&&c.loadCSS(a),s&&c.loadJS(s),n}(s,t),m=l.root,u=l.frontmatter,p=a(null==u?void 0:u.markmap);d.setData(m,p),d.fit()},c=function(e,t,n){void 0===t&&(t=r.g.CDN);var o=a.markmapRenderAdapter.getElements(e);0!==o.length&&(0,i.G)(t+"/dist/js/markmap/markmap.min.js","vditorMermaidScript").then((function(){o.forEach((function(e){var t=a.markmapRenderAdapter.getCode(e);if("true"!==e.getAttribute("data-processed")&&""!==t.trim()){var n=document.createElement("div");n.className="language-markmap",e.parentNode.appendChild(n),s(n,t),"CODE"==e.parentNode.childNodes[0].nodeName&&e.parentNode.removeChild(e.parentNode.childNodes[0])}}))}))}},466:(e,t,n)=>{n.d(t,{H:()=>c});var r=n(54),i=n(526),a=n(578),o=n(51),s=n(156),c=function(e,t){var n=s.mathRenderAdapter.getElements(e);if(0!==n.length){var c={cdn:r.g.CDN,math:{engine:"KaTeX",inlineDigit:!1,macros:{}}};if(t&&t.math&&(t.math=Object.assign({},c.math,t.math)),"KaTeX"===(t=Object.assign({},c,t)).math.engine)(0,a.c)(t.cdn+"/dist/js/katex/katex.min.css?v=0.16.9","vditorKatexStyle"),(0,i.G)(t.cdn+"/dist/js/katex/katex.min.js?v=0.16.9","vditorKatexScript").then((function(){(0,i.G)(t.cdn+"/dist/js/katex/mhchem.min.js?v=0.16.9","vditorKatexChemScript").then((function(){n.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")&&!e.getAttribute("data-math")){var n=(0,o.X)(s.mathRenderAdapter.getCode(e));e.setAttribute("data-math",n);try{e.innerHTML=katex.renderToString(n,{displayMode:"DIV"===e.tagName,output:"html",macros:t.math.macros})}catch(t){e.innerHTML=t.message,e.className="language-math vditor-reset--error"}e.addEventListener("copy",(function(e){e.stopPropagation(),e.preventDefault();var t=e.currentTarget.closest(".language-math");e.clipboardData.setData("text/html",t.innerHTML),e.clipboardData.setData("text/plain",t.getAttribute("data-math"))}))}}))}))}));else if("MathJax"===t.math.engine){window.MathJax||(window.MathJax={loader:{paths:{mathjax:t.cdn+"/dist/js/mathjax"}},startup:{typeset:!1},tex:{macros:t.math.macros}},Object.assign(window.MathJax,t.math.mathJaxOptions)),(0,i.J)(t.cdn+"/dist/js/mathjax/tex-svg-full.js","protyleMathJaxScript");var d=function(e,t){var n=(0,o.X)(e.textContent).trim(),r=window.MathJax.getMetricsFor(e);r.display="DIV"===e.tagName,window.MathJax.tex2svgPromise(n,r).then((function(r){e.innerHTML="",e.setAttribute("data-math",n),e.append(r),window.MathJax.startup.document.clear(),window.MathJax.startup.document.updateDocument();var i=r.querySelector('[data-mml-node="merror"]');i&&""!==i.textContent.trim()&&(e.innerHTML=i.textContent.trim(),e.className="vditor-reset--error"),t&&t()}))};window.MathJax.startup.promise.then((function(){for(var e=[],t=function(t){var r=n[t];r.parentElement.classList.contains("vditor-wysiwyg__pre")||r.parentElement.classList.contains("vditor-ir__marker--pre")||r.getAttribute("data-math")||!(0,o.X)(r.textContent).trim()||e.push((function(e){t===n.length-1?d(r):d(r,e)}))},r=0;r{n.d(t,{Y:()=>r});var r=function(e){e&&e.querySelectorAll("a").forEach((function(e){var t=e.getAttribute("href");t&&(t.match(/^.+.(mp4|m4v|ogg|ogv|webm)$/)?function(e,t){e.insertAdjacentHTML("afterend",''),e.remove()}(e,t):t.match(/^.+.(mp3|wav|flac)$/)?function(e,t){e.insertAdjacentHTML("afterend",''),e.remove()}(e,t):function(e,t){var n=t.match(/\/\/(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))([\w|-]{11})(?:(?:[\?&]t=)(\S+))?/),r=t.match(/\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/),i=t.match(/\/\/v\.qq\.com\/x\/cover\/.*\/([^\/]+)\.html\??.*/),a=t.match(/(?:www\.|\/\/)coub\.com\/view\/(\w+)/),o=t.match(/(?:www\.|\/\/)facebook\.com\/([^\/]+)\/videos\/([0-9]+)/),s=t.match(/.+dailymotion.com\/(video|hub)\/(\w+)\?/),c=t.match(/(?:www\.|\/\/)bilibili\.com\/video\/(\w+)/),d=t.match(/(?:www\.|\/\/)ted\.com\/talks\/(\w+)/);n&&11===n[1].length?(e.insertAdjacentHTML("afterend",''),e.remove()):r&&r[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):i&&i[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):a&&a[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):o&&o[0]?(e.insertAdjacentHTML("afterend",''),e.remove()):s&&s[2]?(e.insertAdjacentHTML("afterend",''),e.remove()):c&&c[1]?(e.insertAdjacentHTML("afterend",''),e.remove()):d&&d[1]&&(e.insertAdjacentHTML("afterend",''),e.remove())}(e,t))}))}},40:(e,t,n)=>{n.d(t,{i:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t,n){void 0===t&&(t=r.g.CDN);var o=a.mermaidRenderAdapter.getElements(e);0!==o.length&&(0,i.G)(t+"/dist/js/mermaid/mermaid.min.js","vditorMermaidScript").then((function(){var e={securityLevel:"loose",altFontFamily:"sans-serif",fontFamily:"sans-serif",startOnLoad:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequence:{useMaxWidth:!0,diagramMarginX:8,diagramMarginY:8,boxMargin:8},gantt:{leftPadding:75,rightPadding:20}};"dark"===n&&(e.theme="dark"),mermaid.initialize(e),o.forEach((function(e){var t=a.mermaidRenderAdapter.getCode(e);"true"!==e.getAttribute("data-processed")&&""!==t.trim()&&(mermaid.init(void 0,e),e.setAttribute("data-processed","true"))}))}))}},749:(e,t,n)=>{n.d(t,{P:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t,n){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var o=a.mindmapRenderAdapter.getElements(e);o.length>0&&(0,i.G)(t+"/dist/js/echarts/echarts.min.js","vditorEchartsScript").then((function(){o.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")){var t=a.mindmapRenderAdapter.getCode(e);if(t)try{if("true"===e.getAttribute("data-processed"))return;echarts.init(e,"dark"===n?"dark":void 0).setOption({series:[{data:[JSON.parse(decodeURIComponent(t))],initialTreeDepth:-1,itemStyle:{borderWidth:0,color:"#4285f4"},label:{backgroundColor:"#f6f8fa",borderColor:"#d1d5da",borderRadius:5,borderWidth:.5,color:"#586069",lineHeight:20,offset:[-5,0],padding:[0,5],position:"insideRight"},lineStyle:{color:"#d1d5da",width:1},roam:!0,symbol:function(e,t){var n;return(null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.children)?"circle":"path://"},type:"tree"}],tooltip:{trigger:"item",triggerOn:"mousemove"}}),e.setAttribute("data-processed","true")}catch(t){e.className="vditor-reset--error",e.innerHTML="mindmap render error:
      "+t}}}))}))}},818:(e,t,n)=>{n.d(t,{k:()=>a});var r=n(64),i=n(466),a=function(e,t,n){var a="",o=[];if(Array.from(e.children).forEach((function(e,t){if((0,r.W)(e)){if(n){var i=e.id.lastIndexOf("_");e.id=e.id.substring(0,-1===i?void 0:i)+"_"+t}o.push(e.id),a+=e.outerHTML.replace("","")}})),""===a)return t.innerHTML="","";var s=document.createElement("div");if(n)n.lute.SetToC(!0),"wysiwyg"!==n.currentMode||n.preview.element.contains(e)?"ir"!==n.currentMode||n.preview.element.contains(e)?s.innerHTML=n.lute.HTML2VditorDOM("

      [ToC]

      "+a):s.innerHTML=n.lute.SpinVditorIRDOM("

      [ToC]

      "+a):s.innerHTML=n.lute.SpinVditorDOM("

      [ToC]

      "+a),n.lute.SetToC(n.options.preview.markdown.toc);else{t.classList.add("vditor-outline");var c=Lute.New();c.SetToC(!0),s.innerHTML=c.HTML2VditorDOM("

      [ToC]

      "+a)}var d=s.firstElementChild.querySelectorAll("li > span[data-target-id]");return d.forEach((function(e,t){if(e.nextElementSibling&&"UL"===e.nextElementSibling.tagName){var n="";document.getElementById("vditorIconScript")||(n=''),e.innerHTML=n+""+e.innerHTML+""}else e.innerHTML=""+e.innerHTML+"";e.setAttribute("data-target-id",o[t])})),a=s.firstElementChild.innerHTML,0===d.length?(t.innerHTML="",a):(t.innerHTML=a,n&&(0,i.H)(t,{cdn:n.options.cdn,math:n.options.preview.math}),t.firstElementChild.addEventListener("click",(function(r){for(var i=r.target;i&&!i.isEqualNode(t);){if(i.classList.contains("vditor-outline__action")){i.classList.contains("vditor-outline__action--close")?(i.classList.remove("vditor-outline__action--close"),i.parentElement.nextElementSibling.setAttribute("style","display:block")):(i.classList.add("vditor-outline__action--close"),i.parentElement.nextElementSibling.setAttribute("style","display:none")),r.preventDefault(),r.stopPropagation();break}if(i.getAttribute("data-target-id")){r.preventDefault(),r.stopPropagation();var a=document.getElementById(i.getAttribute("data-target-id"));if(!a)return;if(n)if("auto"===n.options.height){var o=a.offsetTop+n.element.offsetTop;n.options.toolbarConfig.pin||(o+=n.toolbar.element.offsetHeight),window.scrollTo(window.scrollX,o)}else n.element.offsetTop{n.d(t,{B:()=>o});var r=n(54),i=n(526),a=n(156),o=function(e,t){void 0===e&&(e=document),void 0===t&&(t=r.g.CDN);var n=a.plantumlRenderAdapter.getElements(e);0!==n.length&&(0,i.G)(t+"/dist/js/plantuml/plantuml-encoder.min.js","vditorPlantumlScript").then((function(){n.forEach((function(e){if(!e.parentElement.classList.contains("vditor-wysiwyg__pre")&&!e.parentElement.classList.contains("vditor-ir__marker--pre")){var t=a.plantumlRenderAdapter.getCode(e).trim();if(t)try{e.innerHTML=''}catch(t){e.className="vditor-reset--error",e.innerHTML="plantuml render error:
      "+t}}}))}))}},895:(e,t,n)=>{n.d(t,{X:()=>r});var r=function(e){var t=Lute.New();return t.PutEmojis(e.emojis),t.SetEmojiSite(e.emojiSite),t.SetHeadingAnchor(e.headingAnchor),t.SetInlineMathAllowDigitAfterOpenMarker(e.inlineMathDigit),t.SetAutoSpace(e.autoSpace),t.SetToC(e.toc),t.SetFootnotes(e.footnotes),t.SetFixTermTypo(e.fixTermTypo),t.SetVditorCodeBlockPreview(e.codeBlockPreview),t.SetVditorMathBlockPreview(e.mathBlockPreview),t.SetSanitize(e.sanitize),t.SetChineseParagraphBeginningSpace(e.paragraphBeginningSpace),t.SetRenderListStyle(e.listStyle),t.SetLinkBase(e.linkBase),t.SetLinkPrefix(e.linkPrefix),t.SetMark(e.mark),t.SetGFMAutoLink(e.gfmAutoLink),e.lazyLoadImage&&t.SetImageLazyLoading(e.lazyLoadImage),t}},863:(e,t,n)=>{n.d(t,{E:()=>r});var r=function(e,t,n){void 0===t&&(t="zh_CN"),void 0===n&&(n="classic");var r=e.getBoundingClientRect();document.body.insertAdjacentHTML("beforeend",'
      \n
      \n \n \n '+window.VditorI18n.spin+"\n \n \n X  "+window.VditorI18n.close+'\n \n
      \n
      \n \n
      \n
      '),document.body.style.overflow="hidden";var i=document.querySelector(".vditor-img img"),a="translate3d("+Math.max(0,window.innerWidth-e.naturalWidth)/2+"px, "+Math.max(0,window.innerHeight-36-e.naturalHeight)/2+"px, 0)";setTimeout((function(){i.setAttribute("style","transition: transform .3s ease-in-out;transform: "+a),setTimeout((function(){i.parentElement.scrollTo((i.parentElement.scrollWidth-i.parentElement.clientWidth)/2,(i.parentElement.scrollHeight-i.parentElement.clientHeight)/2)}),400)}));var o=document.querySelector(".vditor-img__btn");o.addEventListener("click",(function(){var t=parseInt(o.getAttribute("data-deg"),10)+90;t/90%2==1&&e.naturalWidth>i.parentElement.clientHeight?i.style.transform="translate3d("+Math.max(0,window.innerWidth-e.naturalWidth)/2+"px, "+(e.naturalWidth/2-e.naturalHeight/2)+"px, 0) rotateZ("+t+"deg)":i.style.transform=a+" rotateZ("+t+"deg)",o.setAttribute("data-deg",t.toString()),setTimeout((function(){i.parentElement.scrollTo((i.parentElement.scrollWidth-i.parentElement.clientWidth)/2,(i.parentElement.scrollHeight-i.parentElement.clientHeight)/2)}),400)}))}},312:(e,t,n)=>{n.d(t,{Y:()=>a});var r=n(54),i=n(578),a=function(e,t){void 0===t&&(t=r.g.CDN),r.g.CODE_THEME.includes(e)||(e="github");var n=document.getElementById("vditorHljsStyle"),a=t+"/dist/js/highlight.js/styles/"+e+".css";n?n.href!==a&&(n.remove(),(0,i.c)(a,"vditorHljsStyle")):(0,i.c)(a,"vditorHljsStyle")}},227:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(578),i=function(e,t){if(e&&t){var n=document.getElementById("vditorContentTheme"),i=t+"/"+e+".css";n?n.getAttribute("href")!==i&&(n.remove(),(0,r.c)(i,"vditorContentTheme")):(0,r.c)(i,"vditorContentTheme")}}},526:(e,t,n)=>{n.d(t,{G:()=>i,J:()=>r});var r=function(e,t){if(document.getElementById(t))return!1;var n=new XMLHttpRequest;n.open("GET",e,!1),n.setRequestHeader("Accept","text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"),n.send("");var r=document.createElement("script");r.type="text/javascript",r.text=n.responseText,r.id=t,document.head.appendChild(r)},i=function(e,t){return new Promise((function(n,r){if(document.getElementById(t))return n(),!1;var i=document.createElement("script");i.src=e,i.async=!0,document.head.appendChild(i),i.onerror=function(e){r(e)},i.onload=function(){if(document.getElementById(t))return i.remove(),n(),!1;i.id=t,n()}}))}},578:(e,t,n)=>{n.d(t,{c:()=>r});var r=function(e,t){if(!document.getElementById(t)){var n=document.createElement("link");n.id=t,n.rel="stylesheet",n.type="text/css",n.href=e,document.getElementsByTagName("head")[0].appendChild(n)}}},51:(e,t,n)=>{n.d(t,{X:()=>r});var r=function(e){return e.replace(/\u00a0/g," ")}},827:(e,t,n)=>{n.d(t,{fb:()=>i,lG:()=>r});var r=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)n.nodeName===t?r=!0:n=n.parentElement;return r&&n},i=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)n.classList.contains(t)?r=!0:n=n.parentElement;return r&&n}},64:(e,t,n)=>{n.d(t,{W:()=>r});var r=function(e){var t=function(e,t){if(!e)return!1;3===e.nodeType&&(e=e.parentElement);for(var n=e,r=!1;n&&!r&&!n.classList.contains("vditor-reset");)0===n.nodeName.indexOf(t)?r=!0:n=n.parentElement;return r&&n}(e,"H");return!(!t||2!==t.tagName.length||"HR"===t.tagName)&&t}},640:(e,t,n)=>{n.d(t,{T:()=>r});var r=function(){for(var e=[],t=0;t{n.d(t,{Hc:()=>r});n(54);var r=function(e){var t=window.getSelection();t.removeAllRanges(),t.addRange(e)}}},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.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 r={};return(()=>{n.d(r,{default:()=>C});var e=n(478),t=n(156),i=n(314),a=n(730),o=n(66),s=n(218),c=n(702),d=function(e){void 0===e&&(e=document);var t=function(e){var t=document.createElement("img");t.src=e.getAttribute("data-src"),t.addEventListener("load",(function(){e.getAttribute("style")||e.getAttribute("class")||e.getAttribute("width")||e.getAttribute("height")||t.naturalHeight>t.naturalWidth&&t.naturalWidth/t.naturalHeightwindow.innerHeight-40&&(e.style.height=window.innerHeight-40+"px"),e.src=t.src})),e.removeAttribute("data-src")};if(!("IntersectionObserver"in window))return e.querySelectorAll("img").forEach((function(e){e.getAttribute("data-src")&&t(e)})),!1;window.vditorImageIntersectionObserver?(window.vditorImageIntersectionObserver.disconnect(),e.querySelectorAll("img").forEach((function(e){window.vditorImageIntersectionObserver.observe(e)}))):(window.vditorImageIntersectionObserver=new IntersectionObserver((function(e){e.forEach((function(e){(void 0===e.isIntersecting?0!==e.intersectionRatio:e.isIntersecting)&&e.target.getAttribute("data-src")&&t(e.target)}))})),e.querySelectorAll("img").forEach((function(e){window.vditorImageIntersectionObserver.observe(e)})))},l=n(466),m=n(554),u=n(40),p=n(563),h=n(749),g=n(818),v=n(408),f=n(54),w=n(227),y=n(526),b=n(827),S=n(640),E=n(895),L=n(393),k=function(e,t){if(void 0===t&&(t="zh_CN"),"undefined"!=typeof speechSynthesis&&"undefined"!=typeof SpeechSynthesisUtterance){var n='',r='';document.getElementById("vditorIconScript")||(n='',r='');var i=document.querySelector(".vditor-speech");if(!i){(i=document.createElement("div")).className="vditor-speech",document.body.insertAdjacentElement("beforeend",i);var a=function(){var e,n;return speechSynthesis.getVoices().forEach((function(r){r.lang===t.replace("_","-")&&(e=r),r.default&&(n=r)})),e||(e=n),e};void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=a);var o=a();i.onclick=function(){if("vditor-speech"===i.className){var e=new SpeechSynthesisUtterance(i.getAttribute("data-text"));e.voice=o,e.onend=function(){i.className="vditor-speech",speechSynthesis.cancel(),i.innerHTML=n},speechSynthesis.speak(e),i.className="vditor-speech vditor-speech--current",i.innerHTML=r}else speechSynthesis.speaking&&(speechSynthesis.paused?(speechSynthesis.resume(),i.innerHTML=r):(speechSynthesis.pause(),i.innerHTML=n));(0,L.Hc)(window.vditorSpeechRange)},document.body.addEventListener("click",(function(){""===getSelection().toString().trim()&&"block"===i.style.display&&(i.className="vditor-speech",speechSynthesis.cancel(),i.style.display="none")}))}e.addEventListener("mouseup",(function(e){var t=getSelection().toString().trim();if(speechSynthesis.cancel(),""!==getSelection().toString().trim()){window.vditorSpeechRange=getSelection().getRangeAt(0).cloneRange();var r=getSelection().getRangeAt(0).getBoundingClientRect();i.innerHTML=n,i.style.display="block",i.style.top=r.top+r.height+document.querySelector("html").scrollTop-20+"px",i.style.left=e.clientX+2+"px",i.setAttribute("data-text",t)}else"block"===i.style.display&&(i.className="vditor-speech",i.style.display="none")}))}},A=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((r=r.apply(e,t||[])).next())}))},T=function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1] .vjs-icon-placeholder::before { - line-height: 50px; -} - -.vjs-theme-city .vjs-play-progress::before { - display: none; -} - -.vjs-theme-city .vjs-progress-control { - position: absolute; - top: 0; - right: 0; - left: 0; - width: 100%; - height: 20px; -} - -.vjs-theme-city .vjs-progress-control .vjs-progress-holder { - position: absolute; - top: 20px; - right: 0; - left: 0; - width: 100%; - margin: 0; -} - -.vjs-theme-city .vjs-play-progress { - background-color: var(--vjs-theme-city--primary); -} - -.vjs-theme-city .vjs-remaining-time { - order: 1; - line-height: 50px; - flex: 3; - text-align: left; -} - -.vjs-theme-city .vjs-play-control { - order: 2; - flex: 8; - font-size: 1.75em; -} - -.vjs-theme-city .vjs-volume-panel, -.vjs-theme-city .vjs-picture-in-picture-control, -.vjs-theme-city .vjs-fullscreen-control { - order: 3; - flex: 1; -} - -/* Volume stuff */ -.vjs-theme-city .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal { - height: 100%; -} - -.vjs-theme-city .vjs-mute-control { - display: none; -} - -.vjs-theme-city .vjs-volume-panel { - margin-left: 0.5em; - margin-right: 0.5em; - padding-top: 1.5em; -} - -.vjs-theme-city .vjs-volume-panel, -.vjs-theme-city .vjs-volume-panel:hover, -.vjs-theme-city .vjs-volume-panel.vjs-volume-panel-horizontal:hover, -.vjs-theme-city .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, -.vjs-theme-city .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal, -.vjs-theme-city .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, -.vjs-theme-city .vjs-volume-panel.vjs-volume-panel-horizontal:hover, -.vjs-theme-city .vjs-volume-bar.vjs-slider-horizontal { - width: 3em; -} - -.vjs-theme-city .vjs-volume-level::before { - font-size: 1em; -} - -.vjs-theme-city .vjs-volume-panel .vjs-volume-control { - opacity: 1; - width: 100%; - height: 100%; -} - -.vjs-theme-city .vjs-volume-bar { - background-color: transparent; - margin: 0; -} - -.vjs-theme-city .vjs-slider-horizontal .vjs-volume-level { - height: 100%; -} - -.vjs-theme-city .vjs-volume-bar.vjs-slider-horizontal { - margin-top: 0; - margin-bottom: 0; - height: 100%; -} - -.vjs-theme-city .vjs-volume-bar::before { - content: ''; - z-index: 0; - width: 0; - height: 0; - position: absolute; - top: 0px; - left: 0; - - border-style: solid; - border-width: 0 0 1.75em 3em; - border-color: transparent transparent rgba(255, 255, 255, 0.25) transparent; -} - -.vjs-theme-city .vjs-volume-level { - overflow: hidden; - background-color: transparent; -} - -.vjs-theme-city .vjs-volume-level::before { - content: ''; - z-index: 1; - width: 0; - height: 0; - position: absolute; - top: 0; - left: 0; - - border-style: solid; - border-width: 0 0 1.75em 3em; - border-color: transparent transparent var(--vjs-theme-city--secondary) transparent; -} diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/icons/nyan-cat.svg b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/icons/nyan-cat.svg deleted file mode 100644 index b375eb97b9cd5f407831b351d4009996d0f32b81..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/icons/nyan-cat.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/index.css b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/index.css deleted file mode 100644 index d7695bdc40f5f064ec9e83a79f7287020b7ad2c2..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/fantasy/index.css +++ /dev/null @@ -1,116 +0,0 @@ -.vjs-theme-fantasy { - --vjs-theme-fantasy--primary: #9f44b4; - --vjs-theme-fantasy--secondary: #fff; -} - -.vjs-theme-fantasy .vjs-big-play-button { - width: 70px; - height: 70px; - background: none; - line-height: 70px; - font-size: 80px; - border: none; - top: 50%; - left: 50%; - margin-top: -35px; - margin-left: -35px; - color: var(--vjs-theme-fantasy--primary); -} - -.vjs-theme-fantasy:hover .vjs-big-play-button, -.vjs-theme-fantasy.vjs-big-play-button:focus { - background-color: transparent; - color: #fff; -} - -.vjs-theme-fantasy .vjs-control-bar { - height: 54px; -} - -.vjs-theme-fantasy .vjs-button > .vjs-icon-placeholder::before { - line-height: 54px; -} - -.vjs-theme-fantasy .vjs-time-control { - line-height: 54px; -} - -/* Play Button */ -.vjs-theme-fantasy .vjs-play-control { - font-size: 1.5em; - position: relative; -} - -.vjs-theme-fantasy .vjs-volume-panel { - order: 4; -} - -.vjs-theme-fantasy .vjs-volume-bar { - margin-top: 2.5em; -} - -.vjs-theme-city .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal { - height: 100%; -} - -.vjs-theme-fantasy .vjs-progress-control .vjs-progress-holder { - font-size: 1.5em; -} - -.vjs-theme-fantasy .vjs-progress-control:hover .vjs-progress-holder { - font-size: 1.5em; -} - -.vjs-theme-fantasy .vjs-play-control .vjs-icon-placeholder::before { - height: 1.3em; - width: 1.3em; - margin-top: 0.2em; - border-radius: 1em; - border: 3px solid var(--vjs-theme-fantasy--secondary); - top: 2px; - left: 9px; - line-height: 1.1; -} - -.vjs-theme-fantasy .vjs-play-control:hover .vjs-icon-placeholder::before { - border: 3px solid var(--vjs-theme-fantasy--secondary); -} - -.vjs-theme-fantasy .vjs-play-progress { - background-color: var(--vjs-theme-fantasy--primary); -} - -.vjs-theme-fantasy .vjs-play-progress::before { - height: 0.8em; - width: 0.8em; - content: ''; - background-color: var(--vjs-theme-fantasy--primary); - border: 4px solid var(--vjs-theme-fantasy--secondary); - border-radius: 0.8em; - top: -0.25em; -} - -.vjs-theme-fantasy .vjs-progress-control { - font-size: 14px; -} - -.vjs-theme-fantasy .vjs-fullscreen-control { - order: 6; -} - -.vjs-theme-fantasy .vjs-remaining-time { - display: none; -} - -/* Nyan version */ -.vjs-theme-fantasy.nyan .vjs-play-progress { - background: linear-gradient(to bottom, #fe0000 0%, #fe9a01 16.666666667%, #fe9a01 16.666666667%, #ffff00 33.332666667%, #ffff00 33.332666667%, #32ff00 49.999326667%, #32ff00 49.999326667%, #0099fe 66.6659926%, #0099fe 66.6659926%, #6633ff 83.33266%, #6633ff 83.33266%); -} - -.vjs-theme-fantasy.nyan .vjs-play-progress::before { - height: 1.3em; - width: 1.3em; - background: svg-load('icons/nyan-cat.svg', fill=#fff) no-repeat; - border: none; - top: -0.35em; -} diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-btn.svg b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-btn.svg deleted file mode 100644 index 9578313134a1b57bc732d993d19259ef67bbdcf9..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-btn.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-small.svg b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-small.svg deleted file mode 100644 index 2b4617ddcbe8553391eedd2d5987babb31bb0150..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/icons/play-small.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/index.css b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/index.css deleted file mode 100644 index 4a12c6c0f005a774f51c89d2908323032ae19b3b..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/forest/index.css +++ /dev/null @@ -1,167 +0,0 @@ -/* Because of the SVG inliner, these don't work for icons */ -.vjs-theme-forest { - --vjs-theme-forest--primary: #6fb04e; - --vjs-theme-forest--secondary: #fff; -} - -/* Big play Button */ -.vjs-theme-forest:hover .vjs-big-play-button, -.vjs-theme-forest.vjs-big-play-button:focus { - background-color: transparent; - background: svg-load('icons/play-btn.svg', fill=#6fb04e); -} - -.vjs-theme-forest .vjs-big-play-button { - width: 88px; - height: 88px; - background: none; - background-repeat: no-repeat; - background-position: center; - background: svg-load('icons/play-btn.svg', fill=#fff); - border: none; - top: 50%; - left: 50%; - margin-top: -44px; - margin-left: -44px; - color: purple; -} - -.vjs-theme-forest .vjs-big-play-button .vjs-icon-placeholder { - display: none; -} - -/* Control Bar */ -.vjs-theme-forest .vjs-button > .vjs-icon-placeholder::before { - line-height: 1.55; -} - -.vjs-theme-forest .vjs-control:not(.vjs-disabled, .vjs-time-control):hover { - color: var(--vjs-theme-forest--primary); - text-shadow: var(--vjs-theme-forest--secondary) 1px 0 10px; -} - -.vjs-theme-forest .vjs-control-bar { - background: none; - margin-bottom: 1em; - padding-left: 1em; - padding-right: 1em; -} - -/* Play Button */ -.vjs-theme-forest .vjs-play-control { - font-size: 0.8em; -} - -.vjs-theme-forest .vjs-play-control .vjs-icon-placeholder:before { - background-color: var(--vjs-theme-forest--secondary); - height: 1.5em; - width: 1.5em; - margin-top: 0.2em; - border-radius: 1em; - color: var(--vjs-theme-forest--primary); -} - -.vjs-theme-forest .vjs-play-control:hover .vjs-icon-placeholder:before { - background-color: var(--vjs-theme-forest--primary); - color: var(--vjs-theme-forest--secondary); -} - -/* Volume stuff */ -.vjs-theme-forest .vjs-mute-control { - display: none; -} - -.vjs-theme-forest .vjs-volume-panel { - margin-left: 0.5em; - margin-right: 0.5em; - padding-top: 0.3em; -} - -.vjs-theme-forest .vjs-volume-panel, -.vjs-theme-forest .vjs-volume-panel:hover, -.vjs-theme-forest .vjs-volume-panel:hover .vjs-volume-control.vjs-volume-horizontal, -.vjs-theme-forest .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, -.vjs-theme-forest .vjs-volume-panel.vjs-volume-panel-horizontal:hover, -.vjs-theme-forest .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, -.vjs-theme-forest .vjs-volume-bar.vjs-slider-horizontal { - width: 3em; -} - -.vjs-theme-forest .vjs-volume-level::before { - font-size: 1em; -} - -.vjs-theme-forest .vjs-volume-panel .vjs-volume-control { - opacity: 1; - width: 100%; - height: 100%; -} - -.vjs-theme-forest .vjs-volume-bar { - background-color: transparent; - margin: 0; -} - -.vjs-theme-forest .vjs-slider-horizontal .vjs-volume-level { - height: 100%; -} - -.vjs-theme-forest .vjs-volume-bar.vjs-slider-horizontal { - margin-top: 0; - margin-bottom: 0; - height: 100%; -} - -.vjs-theme-forest .vjs-volume-bar::before { - content: ''; - z-index: 0; - width: 0; - height: 0; - position: absolute; - top: 0px; - left: 0; - - border-style: solid; - border-width: 0 0 2em 3em; - border-color: transparent transparent var(--vjs-theme-forest--primary) transparent; -} - -.vjs-theme-forest .vjs-volume-level { - overflow: hidden; - background-color: transparent; -} - -.vjs-theme-forest .vjs-volume-level::before { - content: ''; - z-index: 1; - width: 0; - height: 0; - position: absolute; - top: 0; - left: 0; - - border-style: solid; - border-width: 0 0 2em 3em; - border-color: transparent transparent var(--vjs-theme-forest--secondary) transparent; -} - -/* Progress Bar */ -.vjs-theme-forest .vjs-progress-control:hover .vjs-progress-holder { - font-size: 1em; -} - -.vjs-theme-forest .vjs-play-progress::before { - display: none; -} - -.vjs-theme-forest .vjs-progress-holder { - border-radius: 0.2em; - height: 0.5em; - margin: 0; -} - -.vjs-theme-forest .vjs-play-progress, -.vjs-theme-forest .vjs-load-progress, -.vjs-theme-forest .vjs-load-progress div { - border-radius: 0.2em; -} diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/sea/index.css b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/sea/index.css deleted file mode 100644 index 49bb8d7f8e2d040ac4ac2d7ff7fafb51d248e1ba..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/sea/index.css +++ /dev/null @@ -1,72 +0,0 @@ -.vjs-theme-sea .vjs-big-play-button { - width: 103px; - height: 79px; - object-fit: contain; - background-color: rgba(255, 255, 255, 0.25); - border: none; - margin: 0 auto; - line-height: 79px; - top: 50%; - left: 50%; - border-radius: 30px; - margin-top: -51.5px; - margin-left: -39.5px; -} - -.vjs-theme-sea .vjs-control-bar { - height: 4em; - background-color: rgba(255, 255, 255, 0.4); -} - -.vjs-theme-sea .vjs-button:hover { - color: #4176bc; - background: linear-gradient(to top, #d0ddee, #fff); -} - -.vjs-theme-sea .vjs-button > .vjs-icon-placeholder::before { - line-height: 2.2; -} - -.vjs-theme-sea .vjs-time-control { - line-height: 4em; -} - -.vjs-theme-sea .vjs-volume-panel { - display: none; -} - -.vjs-theme-sea .vjs-picture-in-picture-control { - display: none; -} - -.vjs-theme-sea .vjs-progress-control .vjs-play-progress { - background-color: rgba(65, 118, 188, 0.9); -} - -.vjs-theme-sea .vjs-progress-control .vjs-play-progress:before { - display: none; -} - -.vjs-theme-sea .vjs-progress-control .vjs-slider { - background-color: rgba(65, 118, 188, 0.1); -} - -.vjs-theme-sea .vjs-progress-control .vjs-load-progress div { - background: rgba(255, 255, 255, 0.5); -} - -.vjs-theme-sea .vjs-progress-control .vjs-progress-holder { - margin: 0; - height: 100%; -} - -.vjs-theme-sea .vjs-progress-control .vjs-time-tooltip { - background-color: rgba(65, 118, 188, 0.5); - color: #fff; -} - -.vjs-theme-sea .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip { - background-color: rgba(255, 255, 255, 0.7); - color: #4176bc; -} - diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video-js.min.css b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video-js.min.css deleted file mode 100644 index 17702b1b67dca1898a149400bc0f39313ac0f207..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video-js.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.vjs-button>.vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder,.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before{content:"\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\f102"}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:"\f103"}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder,.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before,.vjs-icon-volume-mute:before{content:"\f104"}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder,.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before,.vjs-icon-volume-low:before{content:"\f105"}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder,.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before,.vjs-icon-volume-mid:before{content:"\f106"}.video-js .vjs-mute-control .vjs-icon-placeholder,.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control .vjs-icon-placeholder:before,.vjs-icon-volume-high:before{content:"\f107"}.video-js .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-enter:before{content:"\f108"}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-exit:before{content:"\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\f10b"}.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-subtitles:before{content:"\f10c"}.video-js .vjs-captions-button .vjs-icon-placeholder,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-captions-button .vjs-icon-placeholder:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-captions:before{content:"\f10d"}.video-js .vjs-chapters-button .vjs-icon-placeholder,.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-chapters-button .vjs-icon-placeholder:before,.vjs-icon-chapters:before{content:"\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\f110"}.video-js .vjs-play-progress,.video-js .vjs-volume-level,.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before{content:"\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\f114"}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder,.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before,.vjs-icon-cancel:before{content:"\f115"}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder,.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before,.vjs-icon-replay:before{content:"\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\f11c"}.video-js .vjs-descriptions-button .vjs-icon-placeholder,.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-descriptions-button .vjs-icon-placeholder:before,.vjs-icon-audio-description:before{content:"\f11d"}.video-js .vjs-audio-button .vjs-icon-placeholder,.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-audio-button .vjs-icon-placeholder:before,.vjs-icon-audio:before{content:"\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\f120"}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-enter:before{content:"\f121"}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-exit:before{content:"\f122"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:0}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-fluid{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs){width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:rgba(43,51,63,.7);border-radius:.3em;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.81666em;margin-left:-1.5em}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:0 0;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.js-focus-visible .vjs-menu li.vjs-menu-item:hover,.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:rgba(115,133,159,.5)}.js-focus-visible .vjs-menu li.vjs-selected:hover,.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline:hover,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.3333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:rgba(255,255,255,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em 0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:rgba(43,51,63,.7)}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-liveui .vjs-live-control,.video-js:not(.vjs-live) .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.vjs-no-flex .vjs-seek-to-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control{display:none}.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.vjs-playback-rate .vjs-playback-rate-value,.vjs-playback-rate>.vjs-menu-button{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:"X";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;-webkit-animation:vjs-spinner-show 0s linear .3s forwards;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:after,.vjs-loading-spinner:before{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{100%{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}100%{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"";font-size:1.5em;line-height:inherit}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" ";font-size:1.5em;line-height:inherit}.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-control,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-control,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-audio-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-captions-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-chapters-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-current-time,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-descriptions-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-duration,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-playback-rate,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-remaining-time,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-subtitles-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-time-divider,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-control{display:none}.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover{width:auto;width:initial}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subs-caps-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button,.video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button{display:none}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-custom-control-spacer,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer{flex:auto;display:block}.video-js:not(.vjs-fullscreen).vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-progress-control,.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-progress-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:rgba(43,51,63,.75);color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-controls,.vjs-text-track-settings .vjs-track-settings-font{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display:grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0 24px}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px 0}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px 0;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:active,.vjs-track-settings-controls button:focus{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:rgba(43,51,63,.75)}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js :focus:not(.focus-visible){outline:0;background:0 0}.video-js .vjs-menu :focus:not(:focus-visible),.video-js :focus:not(:focus-visible){outline:0;background:0 0} \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video.min.js b/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video.min.js deleted file mode 100644 index b4f8d6266da2544a06c8b6b5ae8a55f512a59d4b..0000000000000000000000000000000000000000 --- a/src/main/resources/META-INF/resources/file/preview/static/video.js/7.10.2/video.min.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @license - * Video.js 7.10.2 - * Copyright Brightcove, Inc. - * Available under Apache License Version 2.0 - * - * - * Includes vtt.js - * Available under Apache License Version 2.0 - * - */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("global/window"),require("global/document")):"function"==typeof define&&define.amd?define(["global/window","global/document"],t):(e=e||self).videojs=t(e.window,e.document)}(this,function(T,d){"use strict";T=T&&Object.prototype.hasOwnProperty.call(T,"default")?T.default:T,d=d&&Object.prototype.hasOwnProperty.call(d,"default")?d.default:d;var h="7.10.2",l=[],e=function(o,u){return function(e,t,i){var n=u.levels[t],r=new RegExp("^("+n+")$");if("log"!==e&&i.unshift(e.toUpperCase()+":"),i.unshift(o+":"),l){l.push([].concat(i));var a=l.length-1e3;l.splice(0,0',i=n.firstChild,n.setAttribute("style","display:none; position:absolute;"),d.body.appendChild(n));for(var a={},s=0;sx',e=t.firstChild.href}return e}function Vt(e){if("string"==typeof e){var t=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/.exec(e);if(t)return t.pop().toLowerCase()}return""}function qt(e,t){void 0===t&&(t=T.location);var i=Bt(e);return(":"===i.protocol?t.protocol:i.protocol)+i.host!==t.protocol+t.host}var Ht=function(n){function e(e){var t;void 0===e&&(e=[]);for(var i=e.length-1;0<=i;i--)if(e[i].enabled){Ut(e,e[i]);break}return(t=n.call(this,e)||this).changing_=!1,t}Ge(e,n);var t=e.prototype;return t.addTrack=function(e){var t=this;e.enabled&&Ut(this,e),n.prototype.addTrack.call(this,e),e.addEventListener&&(e.enabledChange_=function(){t.changing_||(t.changing_=!0,Ut(t,e),t.changing_=!1,t.trigger("change"))},e.addEventListener("enabledchange",e.enabledChange_))},t.removeTrack=function(e){n.prototype.removeTrack.call(this,e),e.removeEventListener&&e.enabledChange_&&(e.removeEventListener("enabledchange",e.enabledChange_),e.enabledChange_=null)},e}(Rt),Wt=function(n){function e(e){var t;void 0===e&&(e=[]);for(var i=e.length-1;0<=i;i--)if(e[i].selected){Ft(e,e[i]);break}return(t=n.call(this,e)||this).changing_=!1,Object.defineProperty(Ve(t),"selectedIndex",{get:function(){for(var e=0;e - * Copyright (c) 2014 David Björklund - * Available under the MIT license - * - */,ti=Object.prototype.toString;var ii=function(e){var r={};return e&&e.trim().split("\n").forEach(function(e){var t=e.indexOf(":"),i=e.slice(0,t).trim().toLowerCase(),n=e.slice(t+1).trim();"undefined"==typeof r[i]?r[i]=n:Array.isArray(r[i])?r[i].push(n):r[i]=[r[i],n]}),r},ni=si,ri=si;function ai(e,t,i){var n=e;return ei(t)?(i=t,"string"==typeof e&&(n={uri:e})):n=m({},t,{uri:e}),n.callback=i,n}function si(e,t,i){return oi(t=ai(e,t,i))}function oi(n){if("undefined"==typeof n.callback)throw new Error("callback argument missing");var r=!1,a=function(e,t,i){r||(r=!0,n.callback(e,t,i))};function t(e){return clearTimeout(o),e instanceof Error||(e=new Error(""+(e||"Unknown XMLHttpRequest Error"))),e.statusCode=0,a(e,m)}function e(){if(!s){var e;clearTimeout(o),e=n.useXDR&&void 0===u.status?200:1223===u.status?204:u.status;var t=m,i=null;return 0!==e?(t={body:function(){var e=void 0;if(e=u.response?u.response:u.responseText||function(e){try{if("document"===e.responseType)return e.responseXML;var t=e.responseXML&&"parsererror"===e.responseXML.documentElement.nodeName;if(""===e.responseType&&!t)return e.responseXML}catch(e){}return null}(u),f)try{e=JSON.parse(e)}catch(e){}return e}(),statusCode:e,method:c,headers:{},url:l,rawRequest:u},u.getAllResponseHeaders&&(t.headers=ii(u.getAllResponseHeaders()))):i=new Error("Internal XMLHttpRequest Error"),a(i,t,t.body)}}var i,s,o,u=n.xhr||null,l=(u=u||(n.cors||n.useXDR?new si.XDomainRequest:new si.XMLHttpRequest)).url=n.uri||n.url,c=u.method=n.method||"GET",d=n.body||n.data,h=u.headers=n.headers||{},p=!!n.sync,f=!1,m={body:void 0,headers:{},statusCode:0,method:c,url:l,rawRequest:u};if("json"in n&&!1!==n.json&&(f=!0,h.accept||h.Accept||(h.Accept="application/json"),"GET"!==c&&"HEAD"!==c&&(h["content-type"]||h["Content-Type"]||(h["Content-Type"]="application/json"),d=JSON.stringify(!0===n.json?d:n.json))),u.onreadystatechange=function(){4===u.readyState&&setTimeout(e,0)},u.onload=e,u.onerror=t,u.onprogress=function(){},u.onabort=function(){s=!0},u.ontimeout=t,u.open(c,l,!p,n.username,n.password),p||(u.withCredentials=!!n.withCredentials),!p&&0=e?t.push(r):r.startTime===r.endTime&&r.startTime<=e&&r.startTime+.5>=e&&t.push(r)}if(o=!1,t.length!==this.activeCues_.length)o=!0;else for(var a=0;a]*>?)?/);return e=t[1]?t[1]:t[2],i=i.substr(e.length),e}function t(e,t){var i=Ei[e];if(!i)return null;var n=a.document.createElement(i),r=Ii[e];return r&&t&&(n[r]=t.trim()),n}for(var n,r,s,o,u=a.document.createElement("div"),l=u,c=[];null!==(n=e());)if("<"!==n[0])l.appendChild(a.document.createTextNode((r=n,Ci.innerHTML=r,r=Ci.textContent,Ci.textContent="",r)));else{if("/"===n[1]){c.length&&c[c.length-1]===n.substr(2).replace(">","")&&(c.pop(),l=l.parentNode);continue}var d,h=bi(n.substr(1,n.length-2));if(h){d=a.document.createProcessingInstruction("timestamp",h),l.appendChild(d);continue}var p=n.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!p)continue;if(!(d=t(p[1],p[3])))continue;if(s=l,Ai[(o=d).localName]&&Ai[o.localName]!==s.localName)continue;if(p[2]){var f=p[2].split(".");f.forEach(function(e){var t=/^bg_/.test(e),i=t?e.slice(3):e;if(wi.hasOwnProperty(i)){var n=t?"background-color":"color",r=wi[i];d.style[n]=r}}),d.className=f.join(" ")}c.push(p[1]),l.appendChild(d),l=d}return u}var Pi=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];function Li(e){for(var t=0;t=i[0]&&e<=i[1])return!0}return!1}function Oi(){}function Di(e,t,i){Oi.call(this),this.cue=t,this.cueDiv=xi(e,t.text);var n={color:"rgba(255, 255, 255, 1)",backgroundColor:"rgba(0, 0, 0, 0.8)",position:"relative",left:0,right:0,top:0,bottom:0,display:"inline",writingMode:""===t.vertical?"horizontal-tb":"lr"===t.vertical?"vertical-lr":"vertical-rl",unicodeBidi:"plaintext"};this.applyStyles(n,this.cueDiv),this.div=e.document.createElement("div"),n={direction:function(e){var t=[],i="";if(!e||!e.childNodes)return"ltr";function r(e,t){for(var i=t.childNodes.length-1;0<=i;i--)e.push(t.childNodes[i])}function a(e){if(!e||!e.length)return null;var t=e.pop(),i=t.textContent||t.innerText;if(i){var n=i.match(/^.*(\n|\r)/);return n?n[e.length=0]:i}return"ruby"===t.tagName?a(e):t.childNodes?(r(e,t),a(e)):void 0}for(r(t,e);i=a(t);)for(var n=0;nd&&(c=c<0?-1:1,c*=Math.ceil(d/l)*l),r<0&&(c+=""===n.vertical?o.height:o.width,a=a.reverse()),i.move(h,c)}else{var p=i.lineHeight/o.height*100;switch(n.lineAlign){case"center":r-=p/2;break;case"end":r-=p}switch(n.vertical){case"":t.applyStyles({top:t.formatStyle(r,"%")});break;case"rl":t.applyStyles({left:t.formatStyle(r,"%")});break;case"lr":t.applyStyles({right:t.formatStyle(r,"%")})}a=["+y","-x","+x","-y"],i=new Mi(t)}var f=function(e,t){for(var i,n=new Mi(e),r=1,a=0;ae.left&&this.tope.top},Mi.prototype.overlapsAny=function(e){for(var t=0;t=e.top&&this.bottom<=e.bottom&&this.left>=e.left&&this.right<=e.right},Mi.prototype.overlapsOppositeAxis=function(e,t){switch(t){case"+x":return this.lefte.right;case"+y":return this.tope.bottom}},Mi.prototype.intersectPercentage=function(e){return Math.max(0,Math.min(this.right,e.right)-Math.max(this.left,e.left))*Math.max(0,Math.min(this.bottom,e.bottom)-Math.max(this.top,e.top))/(this.height*this.width)},Mi.prototype.toCSSCompatValues=function(e){return{top:this.top-e.top,bottom:e.bottom-this.bottom,left:this.left-e.left,right:e.right-this.right,height:this.height,width:this.width}},Mi.getSimpleBoxPosition=function(e){var t=e.div?e.div.offsetHeight:e.tagName?e.offsetHeight:0,i=e.div?e.div.offsetWidth:e.tagName?e.offsetWidth:0,n=e.div?e.div.offsetTop:e.tagName?e.offsetTop:0;return{left:(e=e.div?e.div.getBoundingClientRect():e.tagName?e.getBoundingClientRect():e).left,right:e.right,top:e.top||n,height:e.height||t,bottom:e.bottom||n+(e.height||t),width:e.width||i}},Ni.StringDecoder=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}},Ni.convertCueToDOMTree=function(e,t){return e&&t?xi(e,t):null};Ni.processCues=function(n,r,e){if(!n||!r||!e)return null;for(;e.firstChild;)e.removeChild(e.firstChild);var a=n.document.createElement("div");if(a.style.position="absolute",a.style.left="0",a.style.right="0",a.style.top="0",a.style.bottom="0",a.style.margin="1.5%",e.appendChild(a),function(e){for(var t=0;t