2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								( function ( yA , d0 ) { typeof  exports == "object" && typeof  module < "u" ? module . exports = d0 ( ) : typeof  define == "function" && define . amd ? define ( d0 ) : ( yA = typeof  globalThis < "u" ? globalThis : yA || self , yA . mermaid = d0 ( ) ) } ) ( this , function ( ) { "use strict" ; function  yA ( i ) { for ( var  a = [ ] , f = 1 ; f < arguments . length ; f ++ ) a [ f - 1 ] = arguments [ f ] ; var  p = Array . from ( typeof  i == "string" ? [ i ] : i ) ; p [ p . length - 1 ] = p [ p . length - 1 ] . replace ( /\r?\n([\t ]*)$/ , "" ) ; var  v = p . reduce ( function ( E , C ) { var  A = C . match ( /\n([\t ]+|(?!\s).)/g ) ; return  A ? E . concat ( A . map ( function ( P ) { var  F , j ; return ( j = ( F = P . match ( /[\t ]/g ) ) === null || F === void  0 ? void  0 : F . length ) !== null && j !== void  0 ? j : 0 } ) ) : E } , [ ] ) ; if ( v . length ) { var  m = new  RegExp ( ` 
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[ 	 ] { ` +Math.min.apply(Math,v)+"}","g");p=p.map(function(E){return E.replace(m, `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` )})}p[0]=p[0].replace(/^ \r ? \n /,"");var b=p[0];return a.forEach(function(E,C){var A=b.match(/(?:^| \n )( *) $ /),P=A?A[1]:"",F=E;typeof E=="string"&&E.includes( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )&&(F=String(E).split( `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ).map(function(j,R){return R===0?j:""+P+j}).join( `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` )),b+=F+p[C+1]}),b}var d0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function BE(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var LLt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(d0,function(){var f=1e3,p=6e4,v=36e5,m="millisecond",b="second",E="minute",C="hour",A="day",P="week",F="month",j="quarter",R="year",H="date",Y="Invalid Date",rt=/^( \d {4})[-/]?( \d {1,2})?[-/]?( \d {0,2})[Tt \s ]*( \d {1,2})?:?( \d {1,2})?:?( \d {1,2})?[.:]?( \d +)? $ /,J=/ \[ ([^ \] ]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,it={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Ct){var tt=["th","st","nd","rd"],Pt=Ct%100;return"["+Ct+(tt[(Pt-20)%10]||tt[Pt]||tt[0])+"]"}},ht=function(Ct,tt,Pt){var gt=String(Ct);return!gt||gt.length>=tt?Ct:""+Array(tt+1-gt.length).join(Pt)+Ct},Tt={s:ht,z:function(Ct){var tt=-Ct.utcOffset(),Pt=Math.abs(tt),gt=Math.floor(Pt/60),Ft=Pt%60;return(tt<=0?"+":"-")+ht(gt,2,"0")+":"+ht(Ft,2,"0")},m:function Ct(tt,Pt){if(tt.date()<Pt.date())return-Ct(Pt,tt);var gt=12*(Pt.year()-tt.year())+(Pt.month()-tt.month()),Ft=tt.clone().add(gt,F),X=Pt-Ft<0,Rt=tt.clone().add(gt+(X?-1:1),F);return+(-(gt+(Pt-Ft)/(X?Ft-Rt:Rt-Ft))||0)},a:function(Ct){return Ct<0?Math.ceil(Ct)||0:Math.floor(Ct)},p:function(Ct){return{M:F,y:R,w:P,d:A,D:H,h:C,m:E,s:b,ms:m,Q:j}[Ct]||String(Ct||"").toLowerCase().replace(/s $ /,"")},u:function(Ct){return Ct===void 0}},xt="en",pt={};pt[xt]=it;var ct=function(Ct){return Ct instanceof dt},yt=function Ct(tt,Pt,gt){var Ft;if(!tt)return xt;if(typeof tt=="string"){var X=tt.toLowerCase();pt[X]&&(Ft=X),Pt&&(pt[X]=Pt,Ft=X);var Rt=tt.split("-");if(!Ft&&Rt.length>1)return Ct(Rt[0])}else{var Bt=tt.name;pt[Bt]=tt,Ft=Bt}return!gt&&Ft&&(xt=Ft),Ft||!gt&&xt},st=function(Ct,tt){if(ct(Ct))return Ct.clone();var Pt=typeof tt=="object"?tt:{};return Pt.date=Ct,Pt.args=arguments,new dt(Pt)},Et=Tt;Et.l=yt,Et.i=ct,Et.w=function(Ct,tt){return st(Ct,{locale:tt. $ L,utc:tt. $ u,x:tt. $ x, $ offset:tt. $ offset})};var dt=function(){function Ct(Pt){this. $ L=yt(Pt.locale,null,!0),this.parse(Pt)}var tt=Ct.prototype;return tt.parse=function(Pt){this. $ d=function(gt){var Ft=gt.date,X=gt.utc;if(Ft===null)return new Date(NaN);if(Et.u(Ft))return new Date;if(Ft instanceof Date)return new Date(Ft);if(typeof Ft=="string"&&!/Z $ /i.test(Ft)){var Rt=Ft.match(rt);if(Rt){var Bt=Rt[2]-1||0,wt=(Rt[7]||"0").substring(0,3);return X?new Date(Date.UTC(Rt[1],Bt,Rt[3]||1,Rt[4]||0,Rt[5]||0,Rt[6]||0,wt)):new Date(Rt[1],Bt,Rt[3]||1,Rt[4]||0,Rt[5]||0,Rt[6]||0,wt)}}return new Date(Ft)}(Pt),this. $ x=Pt.x||{},this.init()},tt.init=function(){var Pt=this. $ d;this. $ y=Pt.getFullYear(),this. $ M=Pt.getMonth(),this. $ D=Pt.getDate(),this. $ W=Pt.getDay(),this. $ H=Pt.getHours(),this. $ m=Pt.getMinutes(),this. $ s=Pt.getSeconds(),this. $ ms=Pt.getMilliseconds()},tt. $ utils=function(){return Et},tt.isValid=function(){return this. $ d.toString()!==Y},tt.isSame=function(Pt,gt){var Ft=st(Pt);return this.startOf(gt)<=Ft&&Ft<=this.endOf(gt)},tt.isAfter=function(Pt,gt){return st(Pt)<this.startOf(gt)},tt.isBefore=function(Pt,gt){return this.endOf(gt)<st(Pt)},tt. $ g=function(Pt,gt,Ft){return Et.u(Pt)?this[gt]:this.set(Ft,Pt)},tt.unix=function(){return Math.floor(this.valueOf()/1e3)},tt.valueOf=function(){return this. $ d.getTime()},tt.startOf=function(Pt,gt){var Ft=this,X=!!Et.u(gt)||gt,Rt=Et.p(Pt),Bt=function(Ae,ne){var ke=Et.w(Ft. $ u?Date.UTC(Ft. $ y,ne,Ae):new Date(Ft. $ y,ne,Ae),Ft);return X?ke:ke.endOf(A)},wt=function(Ae,ne){return Et.w(Ft.toDate()[Ae].apply(Ft.toDate("s"),(X?[0,0,0,0]:[23,59,59,999]).slice(ne)),Ft)},Ot=this. $ W,Vt=this. $ M,qe=this. $ D,_n="set"+(this. $ u?"UTC":"");switch(Rt){case R:return X?Bt(1,0):Bt(31,11);case F:return X?Bt(1,Vt):Bt(0,Vt+1);case P:var Te=this. $ locale().weekStart||0,Wn=(Ot<Te?Ot+7:Ot)-Te;return Bt(X?qe-Wn:qe+(6-Wn),Vt);case A:case H:return wt(_n+"Hours",0);case C:return wt(_n+"Minutes",1);case E:retu
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Qo),ke&&(Qo=Qw(Qo,dt," "),Qo=Qw(Qo,bt," "),Qo=Qw(Qo,Ct," ")),ht&&ye?ht.createHTML(Qo):Qo},a.setConfig=function(Vi){Er(Vi),Ee=!0},a.clearConfig=function(){Js=null,Ee=!1},a.isValidAttribute=function(Vi,Ke,kr){Js||Er({});const ni=pr(Vi),eo=pr(Ke);return zo(ni,eo,kr)},a.addHook=function(Vi,Ke){typeof Ke=="function"&&(Et[Vi]=Et[Vi]||[],zN(Et[Vi],Ke))},a.removeHook=function(Vi){if(Et[Vi])return BDt(Et[Vi])},a.removeHooks=function(Vi){Et[Vi]&&(Et[Vi]=[])},a.removeAllHooks=function(){Et={}},a}var rW=GDt();const iW=/<br \s * \/ ?>/gi,E9e=i=>i?KDt(i).replace(/ \\ n/g,"#br#").split("#br#"):[""],UDt=i=>rW.sanitize(i),WDt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const p=a.securityLevel;p==="antiscript"||p==="strict"?i=UDt(i):p!=="loose"&&(i=KDt(i),i=i.replace(/</g,"<").replace(/>/g,">"),i=i.replace(/=/g,"="),i=S9e(i))}return i},sg=(i,a)=>i&&(a.dompurifyConfig?i=rW.sanitize(WDt(i,a),a.dompurifyConfig).toString():i=rW.sanitize(WDt(i,a),{FORBID_TAGS:["style"]}).toString(),i),T9e=(i,a)=>typeof i=="string"?sg(i,a):i.flat().map(f=>sg(f,a)),_9e=i=>iW.test(i),C9e=i=>i.split(iW),S9e=i=>i.replace(/#br#/g,"<br/>"),KDt=i=>i.replace(iW,"#br#"),A9e=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/ \( /g," \\ ("),a=a.replaceAll(/ \) /g," \\ )")),a},c1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),L9e=function(...i){const a=i.filter(f=>!isNaN(f));return Math.max(...a)},M9e=function(...i){const a=i.filter(f=>!isNaN(f));return Math.min(...a)},HN=function(i){let a=i;if(i.split("~").length-1>=2){let f=a;do a=f,f=a.replace(/~([^ \s ,:;]+)~/,"< $ 1>");while(f!=a);return HN(f)}else return a},oi={getRows:E9e,sanitizeText:sg,sanitizeTextOrArray:T9e,hasBreaks:_9e,splitBreaks:C9e,lineBreakRegex:iW,removeScript:UDt,getUrl:A9e,evaluate:c1,getMax:L9e,getMin:M9e},sW={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const a=i/255;return i>.03928?Math.pow((a+.055)/1.055,2.4):a/12.92},hue2rgb:(i,a,f)=>(f<0&&(f+=1),f>1&&(f-=1),f<1/6?i+(a-i)*6*f:f<1/2?a:f<2/3?i+(a-i)*(2/3-f)*6:i),hsl2rgb:({h:i,s:a,l:f},p)=>{if(!a)return f*2.55;i/=360,a/=100,f/=100;const v=f<.5?f*(1+a):f+a-f*a,m=2*f-v;switch(p){case"r":return sW.hue2rgb(m,v,i+1/3)*255;case"g":return sW.hue2rgb(m,v,i)*255;case"b":return sW.hue2rgb(m,v,i-1/3)*255}},rgb2hsl:({r:i,g:a,b:f},p)=>{i/=255,a/=255,f/=255;const v=Math.max(i,a,f),m=Math.min(i,a,f),b=(v+m)/2;if(p==="l")return b*100;if(v===m)return 0;const E=v-m,C=b>.5?E/(2-v-m):E/(v+m);if(p==="s")return C*100;switch(v){case i:return((a-f)/E+(a<f?6:0))*60;case a:return((f-i)/E+2)*60;case f:return((i-a)/E+4)*60;default:return-1}}},ka={channel:sW,lang:{clamp:(i,a,f)=>a>f?Math.min(a,Math.max(f,i)):Math.min(f,Math.max(a,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const a=Math.round(i).toString(16);return a.length>1?a: ` 0 $ { a } ` }}},tk={};for(let i=0;i<=255;i++)tk[i]=ka.unit.dec2hex(i);const v0={ALL:0,RGB:1,HSL:2};class D9e{constructor(){this.type=v0.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=v0.ALL}is(a){return this.type===a}}const I9e=D9e;class O9e{constructor(a,f){this.color=f,this.changed=!1,this.data=a,this.type=new I9e}set(a,f){return this.color=f,this.changed=!1,this.data=a,this.type.type=v0.ALL,this}_ensureHSL(){const a=this.data,{h:f,s:p,l:v}=a;f===void 0&&(a.h=ka.channel.rgb2hsl(a,"h")),p===void 0&&(a.s=ka.channel.rgb2hsl(a,"s")),v===void 0&&(a.l=ka.channel.rgb2hsl(a,"l"))}_ensureRGB(){const a=this.data,{r:f,g:p,b:v}=a;f===void 0&&(a.r=ka.channel.hsl2rgb(a,"r")),p===void 0&&(a.g=ka.channel.hsl2rgb(a,"g")),v===void 0&&(a.b=ka.channel.hsl2rgb(a,"b"))}get r(){const a=this.data,f=a.r;return!this.type.is(v0.HSL)&&f!==void 0?f:(this._ensureHSL(),ka.channel.hsl2rgb(a,"r"))}get g(){const a=this.data,f
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i.mark.snippet),p+" "+f):p}function GN(i,a){Error.call(this),this.name="YAMLException",this.reason=i,this.mark=a,this.message=iIt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}GN.prototype=Object.create(Error.prototype),GN.prototype.constructor=GN,GN.prototype.toString=function(a){return this.name+": "+iIt(this,a)};var x5=GN;function G1t(i,a,f,p,v){var m="",b="",E=Math.floor(v/2)-1;return p-a>E&&(m=" ... ",a=p-E+m.length),f-p>E&&(b=" ...",f=p+E-b.length),{str:m+i.slice(a,f).replace(/ \t /g,"→")+b,pos:p-a+m.length}}function U1t(i,a){return og.repeat(" ",a-i.length)+i}function sTe(i,a){if(a=Object.create(a||null),!i.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);for(var f=/ \r ? \n | \r | \0 /g,p=[0],v=[],m,b=-1;m=f.exec(i.buffer);)v.push(m.index),p.push(m.index+m[0].length),i.position<=m.index&&b<0&&(b=p.length-2);b<0&&(b=p.length-1);var E="",C,A,P=Math.min(i.line+a.linesAfter,v.length).toString().length,F=a.maxLength-(a.indent+P+3);for(C=1;C<=a.linesBefore&&!(b-C<0);C++)A=G1t(i.buffer,p[b-C],v[b-C],i.position-(p[b]-p[b-C]),F),E=og.repeat(" ",a.indent)+U1t((i.line-C+1).toString(),P)+" | "+A.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +E;for(A=G1t(i.buffer,p[b],v[b],i.position,F),E+=og.repeat(" ",a.indent)+U1t((i.line+1).toString(),P)+" | "+A.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,E+=og.repeat("-",a.indent+P+3+A.pos)+ ` ^  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,C=1;C<=a.linesAfter&&!(b+C>=v.length);C++)A=G1t(i.buffer,p[b+C],v[b+C],i.position-(p[b]-p[b+C]),F),E+=og.repeat(" ",a.indent)+U1t((i.line+C+1).toString(),P)+" | "+A.str+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;return E.replace(/ \n $ /,"")}var aTe=sTe,oTe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],cTe=["scalar","sequence","mapping"];function uTe(i){var a={};return i!==null&&Object.keys(i).forEach(function(f){i[f].forEach(function(p){a[String(p)]=f})}),a}function lTe(i,a){if(a=a||{},Object.keys(a).forEach(function(f){if(oTe.indexOf(f)===-1)throw new x5('Unknown option "'+f+'" is met in definition of "'+i+'" YAML type.')}),this.options=a,this.tag=i,this.kind=a.kind||null,this.resolve=a.resolve||function(){return!0},this.construct=a.construct||function(f){return f},this.instanceOf=a.instanceOf||null,this.predicate=a.predicate||null,this.represent=a.represent||null,this.representName=a.representName||null,this.defaultStyle=a.defaultStyle||null,this.multi=a.multi||!1,this.styleAliases=uTe(a.styleAliases||null),cTe.indexOf(this.kind)===-1)throw new x5('Unknown kind "'+this.kind+'" is specified for "'+i+'" YAML type.')}var w0=lTe;function sIt(i,a){var f=[];return i[a].forEach(function(p){var v=f.length;f.forEach(function(m,b){m.tag===p.tag&&m.kind===p.kind&&m.multi===p.multi&&(v=b)}),f[v]=p}),f}function hTe(){var i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},a,f;function p(v){v.multi?(i.multi[v.kind].push(v),i.multi.fallback.push(v)):i[v.kind][v.tag]=i.fallback[v.tag]=v}for(a=0,f=arguments.length;a<f;a+=1)arguments[a].forEach(p);return i}function W1t(i){return this.extend(i)}W1t.prototype.extend=function(a){var f=[],p=[];if(a instanceof w0)p.push(a);else if(Array.isArray(a))p=p.concat(a);else if(a&&(Array.isArray(a.implicit)||Array.isArray(a.explicit)))a.implicit&&(f=f.concat(a.implicit)),a.explicit&&(p=p.concat(a.explicit));else throw new x5("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");f.forEach(function(m){if(!(m instanceof w0))throw new x5("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(m.loadKind&&m.loadKind!=="scalar")throw new x5("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(m.multi)throw new x5("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),p.forEach(function(m){if(!(m instanceof w0))throw new x5("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var v=Object.create(W1t.prototype);return v.implicit=(this.implicit||[]).concat(f),v.explicit=(this.explicit||[]).concat(p),v.compiledImplicit=sIt(v,"implicit"),v.compiledExplicit=sIt(v,"explicit"),v.compiledTypeMap=hTe(v.compiledImplicit,v.compiledExplicit),v};var fTe=W1t,dTe=new w0("tag:yaml.org,2002:str",{kind:"scalar",construct:function(i){return i!==null?i:""}}),gTe=new w0("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(i){return i!==null?i:[]}}),pTe=new w0("tag:yaml.org,2002:map",{kind:"mapping",construct:function(i){return i!==null?i:{}}}),aIt=new fTe({explicit:[dTe,gTe,pTe]});function bTe(i){if(i===null)return!0;var a=i.length;return a===1&&i==="~"||a===4&&(i==="null"||i==="Null"||i==="NULL")}function vTe(){return null}function wTe(i){return i===null}var mTe=new w0("tag:yaml.org,2002:null",{kind:"scalar",resolve:bTe,construct:vTe,predicate:wTe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function yTe(i){if(i===null)return!1;var a=i.length;return a===4&&(i==="true"||i==="True"||i==="TRUE")||a===5&&(i==="false"||i==="False"||i==="FALSE")}function xTe(i){return i==="true"||i==="True"||i==="TRUE"}function kTe(i){return Object.prototype.toString.call(i)==="[object Boolean]"}var ETe=new w0("tag:yaml.org,2002:bool",{kind:"scalar",resolve:yTe,construct:xTe,predicate:kTe,represent:{lowercase:function(i){return i?"true":"false"},uppercase:function(i){return i?"TRUE":"FALSE"},camelcase:function(i){return i?"True":"F
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								\ r ` ;function UTe(i){if(i===null)return!1;var a,f,p=0,v=i.length,m=K1t;for(f=0;f<v;f++)if(a=m.indexOf(i.charAt(f)),!(a>64)){if(a<0)return!1;p+=6}return p%8===0}function WTe(i){var a,f,p=i.replace(/[ \r \n =]/g,""),v=p.length,m=K1t,b=0,E=[];for(a=0;a<v;a++)a%4===0&&a&&(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)),b=b<<6|m.indexOf(p.charAt(a));return f=v%4*6,f===0?(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)):f===18?(E.push(b>>10&255),E.push(b>>2&255)):f===12&&E.push(b>>4&255),new Uint8Array(E)}function KTe(i){var a="",f=0,p,v,m=i.length,b=K1t;for(p=0;p<m;p++)p%3===0&&p&&(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]),f=(f<<8)+i[p];return v=m%3,v===0?(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]):v===2?(a+=b[f>>10&63],a+=b[f>>4&63],a+=b[f<<2&63],a+=b[64]):v===1&&(a+=b[f>>2&63],a+=b[f<<4&63],a+=b[64],a+=b[64]),a}function YTe(i){return Object.prototype.toString.call(i)==="[object Uint8Array]"}var XTe=new w0("tag:yaml.org,2002:binary",{kind:"scalar",resolve:UTe,construct:WTe,predicate:YTe,represent:KTe}),QTe=Object.prototype.hasOwnProperty,ZTe=Object.prototype.toString;function JTe(i){if(i===null)return!0;var a=[],f,p,v,m,b,E=i;for(f=0,p=E.length;f<p;f+=1){if(v=E[f],b=!1,ZTe.call(v)!=="[object Object]")return!1;for(m in v)if(QTe.call(v,m))if(!b)b=!0;else return!1;if(!b)return!1;if(a.indexOf(m)===-1)a.push(m);else return!1}return!0}function t_e(i){return i!==null?i:[]}var e_e=new w0("tag:yaml.org,2002:omap",{kind:"sequence",resolve:JTe,construct:t_e}),n_e=Object.prototype.toString;function r_e(i){if(i===null)return!0;var a,f,p,v,m,b=i;for(m=new Array(b.length),a=0,f=b.length;a<f;a+=1){if(p=b[a],n_e.call(p)!=="[object Object]"||(v=Object.keys(p),v.length!==1))return!1;m[a]=[v[0],p[v[0]]]}return!0}function i_e(i){if(i===null)return[];var a,f,p,v,m,b=i;for(m=new Array(b.length),a=0,f=b.length;a<f;a+=1)p=b[a],v=Object.keys(p),m[a]=[v[0],p[v[0]]];return m}var s_e=new w0("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r_e,construct:i_e}),a_e=Object.prototype.hasOwnProperty;function o_e(i){if(i===null)return!0;var a,f=i;for(a in f)if(a_e.call(f,a)&&f[a]!==null)return!1;return!0}function c_e(i){return i!==null?i:{}}var u_e=new w0("tag:yaml.org,2002:set",{kind:"mapping",resolve:o_e,construct:c_e}),l_e=jTe.extend({implicit:[HTe,GTe],explicit:[XTe,e_e,s_e,u_e]}),nk=Object.prototype.hasOwnProperty,dW=1,uIt=2,lIt=3,gW=4,Y1t=1,h_e=2,hIt=3,f_e=/[ \x 00- \x 08 \x 0B \x 0C \x 0E- \x 1F \x 7F- \x 84 \x 86- \x 9F \u FFFE \u FFFF]|[ \u D800- \u DBFF](?![ \u DC00- \u DFFF])|(?:[^ \u D800- \u DBFF]|^)[ \u DC00- \u DFFF]/,d_e=/[ \x 85 \u 2028 \u 2029]/,g_e=/[, \[ \] \{ \} ]/,fIt=/^(?:!|!!|![a-z \- ]+!) $ /i,dIt=/^(?:!|[^, \[ \] \{ \} ])(?:%[0-9a-f]{2}|[0-9a-z \- #; \/ \? :@&= \+ \$ ,_ \. !~ \* ' \( \) \[ \] ])* $ /i;function gIt(i){return Object.prototype.toString.call(i)}function l3(i){return i===10||i===13}function JE(i){return i===9||i===32}function lp(i){return i===9||i===32||i===10||i===13}function PA(i){return i===44||i===91||i===93||i===123||i===125}function p_e(i){var a;return 48<=i&&i<=57?i-48:(a=i|32,97<=a&&a<=102?a-97+10:-1)}function b_e(i){return i===120?2:i===117?4:i===85?8:0}function v_e(i){return 48<=i&&i<=57?i-48:-1}function pIt(i){return i===48?" \0 ":i===97?" \x 07":i===98?" \b ":i===116||i===9?"	":i===110? `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								` :i===118?" \v ":i===102?" \f ":i===114?" \r ":i===101?" \x 1B":i===32?" ":i===34?'"':i===47?"/":i===92?" \\ ":i===78?"
    \u 2028":i===80?" \u 2029":""}function w_e(i){return i<=65535?String.fromCharCode(i):String.fromCharCode((i-65536>>10)+55296,(i-65536&1023)+56320)}for(var bIt=new Array(256),vIt=new Array(256),FA=0;FA<256;FA++)bIt[FA]=pIt(FA)?1:0,vIt[FA]=pIt(FA);function m_e(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||l_e,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function wIt(i,a){var f={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return f.snippet=aTe(f),new x5(a,f)}function Fs(i,a){throw wIt(i,a)}function pW(i,a){i.onWarning&&i.onWarning.call(null,wIt(i,a))}var mIt={YAML:function(a,f,p){var v,m,b;a.version!==null&&Fs(a,"duplication of %YAML directive"),p.length!==1&&Fs(a,"YAML directive accepts exactly one argument"),v=/^([0-9]+) \. ([0-9]+) $ /.exec(p[0]),v===null&&Fs(a,"ill-formed argument of the YAML directive"),m=parseInt(v[1],10),b=parseInt(v[2],10),m!==1&&Fs(a,"unacceptable YAML version of the document"),a.version=p[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&pW(a,"unsupported YAML version of the document")},TAG:function(a,f,p){var v,m;p.length!==2&&Fs(a,"TAG directive accepts exactly two arguments"),v=p[0],m=p[1],fIt.test(v)||Fs(a,"ill-formed tag handle (first argument) of the TAG directive"),nk.call(a.tagMap,v)&&Fs(a,'there is a previously declared suffix for "'+v+'" tag handle'),dIt.test(m)||Fs(a,"ill-formed tag prefix (second argument) of the TAG directive");try{m=decodeURIComponent(m)}catch{Fs(a,"tag prefix is malformed: "+m)}a.tagMap[v]=m}};function rk(i,a,f,p){var v,m,b,E;if(a<f){if(E=i.input.slice(a,f),p)for(v=0,m=E.length;v<m;v+=1)b=E.charCodeAt(v),b===9||32<=b&&b<=1114111||Fs(i,"expected valid JSON character");else f_e.test(E)&&Fs(i,"the stream contains non-printable characters");i.result+=E}}function yIt(i,a,f,p){var v,m,b,E;for(og.isObject(f)||Fs(i,"cannot merge mappings; the provided source object is unacceptable"),v=Object.keys(f),b=0,E=v.length;b<E;b+=1)m=v[b],nk.call(a,m)||(a[m]=f[m],p[m]=!0)}function BA(i,a,f,p,v,m,b,E,C){var A,P;if(Array.isArray(v))for(v=Array.prototype.slice.call(v),A=0,P=v.length;A<P;A+=1)Array.isArray(v[A])&&Fs(i,"nested arrays are not supported inside keys"),typeof v=="object"&&gIt(v[A])==="[object Object]"&&(v[A]="[object Object]");if(typeof v=="object"&&gIt(v)==="[object Object]"&&(v="[object Object]"),v=String(v),a===null&&(a={}),p==="tag:yaml.org,2002:merge")if(Array.isArray(m))for(A=0,P=m.length;A<P;A+=1)yIt(i,a,m[A],f);else yIt(i,a,m,f);else!i.json&&!nk.call(f,v)&&nk.call(a,v)&&(i.line=b||i.line,i.lineStart=E||i.lineStart,i.position=C||i.position,Fs(i,"duplicated mapping key")),v==="__proto__"?Object.defineProperty(a,v,{configurable:!0,enumerable:!0,writable:!0,value:m}):a[v]=m,delete f[v];return a}function X1t(i){var a;a=i.input.charCodeAt(i.position),a===10?i.position++:a===13?(i.position++,i.input.charCodeAt(i.position)===10&&i.position++):Fs(i,"a line break is expected"),i.line+=1,i.lineStart=i.position,i.firstTabInLine=-1}function If(i,a,f){for(var p=0,v=i.input.charCodeAt(i.position);v!==0;){for(;JE(v);)v===9&&i.firstTabInLine===-1&&(i.firstTabInLine=i.position),v=i.input.charCodeAt(++i.position);if(a&&v===35)do v=i.input.charCodeAt(++i.position);while(v!==10&&v!==13&&v!==0);if(l3(v))for(X1t(i),v=i.input.charCodeAt(i.position),p++,i.lineIndent=0;v===32;)i.lineIndent++,v=i.input.charCodeAt(++i.position);else break}return f!==-1&&p!==0&&i.lineIndent<f&&pW(i,"deficient indentation"),p}function bW(i){var a=i.position,f;return f=i.input.charCodeAt(a),!!((f===45||f===46)&&f===i.input.charCodeAt(a+1)&&f===i.input.charCodeAt(a+2)&&(a+=3,f=i.input.charCodeAt(a),f===0||lp(f)))}function Q1t(i,a){a===1?i.resu
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,a-1))}function y_e(i,a,f){var p,v,m,b,E,C,A,P,F=i.kind,j=i.result,R;if(R=i.input.charCodeAt(i.position),lp(R)||PA(R)||R===35||R===38||R===42||R===33||R===124||R===62||R===39||R===34||R===37||R===64||R===96||(R===63||R===45)&&(v=i.input.charCodeAt(i.position+1),lp(v)||f&&PA(v)))return!1;for(i.kind="scalar",i.result="",m=b=i.position,E=!1;R!==0;){if(R===58){if(v=i.input.charCodeAt(i.position+1),lp(v)||f&&PA(v))break}else if(R===35){if(p=i.input.charCodeAt(i.position-1),lp(p))break}else{if(i.position===i.lineStart&&bW(i)||f&&PA(R))break;if(l3(R))if(C=i.line,A=i.lineStart,P=i.lineIndent,If(i,!1,-1),i.lineIndent>=a){E=!0,R=i.input.charCodeAt(i.position);continue}else{i.position=b,i.line=C,i.lineStart=A,i.lineIndent=P;break}}E&&(rk(i,m,b,!1),Q1t(i,i.line-C),m=b=i.position,E=!1),JE(R)||(b=i.position+1),R=i.input.charCodeAt(++i.position)}return rk(i,m,b,!1),i.result?!0:(i.kind=F,i.result=j,!1)}function x_e(i,a){var f,p,v;if(f=i.input.charCodeAt(i.position),f!==39)return!1;for(i.kind="scalar",i.result="",i.position++,p=v=i.position;(f=i.input.charCodeAt(i.position))!==0;)if(f===39)if(rk(i,p,i.position,!0),f=i.input.charCodeAt(++i.position),f===39)p=i.position,i.position++,v=i.position;else return!0;else l3(f)?(rk(i,p,v,!0),Q1t(i,If(i,!1,a)),p=v=i.position):i.position===i.lineStart&&bW(i)?Fs(i,"unexpected end of the document within a single quoted scalar"):(i.position++,v=i.position);Fs(i,"unexpected end of the stream within a single quoted scalar")}function k_e(i,a){var f,p,v,m,b,E;if(E=i.input.charCodeAt(i.position),E!==34)return!1;for(i.kind="scalar",i.result="",i.position++,f=p=i.position;(E=i.input.charCodeAt(i.position))!==0;){if(E===34)return rk(i,f,i.position,!0),i.position++,!0;if(E===92){if(rk(i,f,i.position,!0),E=i.input.charCodeAt(++i.position),l3(E))If(i,!1,a);else if(E<256&&bIt[E])i.result+=vIt[E],i.position++;else if((b=b_e(E))>0){for(v=b,m=0;v>0;v--)E=i.input.charCodeAt(++i.position),(b=p_e(E))>=0?m=(m<<4)+b:Fs(i,"expected hexadecimal character");i.result+=w_e(m),i.position++}else Fs(i,"unknown escape sequence");f=p=i.position}else l3(E)?(rk(i,f,p,!0),Q1t(i,If(i,!1,a)),f=p=i.position):i.position===i.lineStart&&bW(i)?Fs(i,"unexpected end of the document within a double quoted scalar"):(i.position++,p=i.position)}Fs(i,"unexpected end of the stream within a double quoted scalar")}function E_e(i,a){var f=!0,p,v,m,b=i.tag,E,C=i.anchor,A,P,F,j,R,H=Object.create(null),Y,rt,J,it;if(it=i.input.charCodeAt(i.position),it===91)P=93,R=!1,E=[];else if(it===123)P=125,R=!0,E={};else return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=E),it=i.input.charCodeAt(++i.position);it!==0;){if(If(i,!0,a),it=i.input.charCodeAt(i.position),it===P)return i.position++,i.tag=b,i.anchor=C,i.kind=R?"mapping":"sequence",i.result=E,!0;f?it===44&&Fs(i,"expected the node content, but found ','"):Fs(i,"missed comma between flow collection entries"),rt=Y=J=null,F=j=!1,it===63&&(A=i.input.charCodeAt(i.position+1),lp(A)&&(F=j=!0,i.position++,If(i,!0,a))),p=i.line,v=i.lineStart,m=i.position,RA(i,a,dW,!1,!0),rt=i.tag,Y=i.result,If(i,!0,a),it=i.input.charCodeAt(i.position),(j||i.line===p)&&it===58&&(F=!0,it=i.input.charCodeAt(++i.position),If(i,!0,a),RA(i,a,dW,!1,!0),J=i.result),R?BA(i,E,H,rt,Y,J,p,v,m):F?E.push(BA(i,null,H,rt,Y,J,p,v,m)):E.push(Y),If(i,!0,a),it=i.input.charCodeAt(i.position),it===44?(f=!0,it=i.input.charCodeAt(++i.position)):f=!1}Fs(i,"unexpected end of the stream within a flow collection")}function T_e(i,a){var f,p,v=Y1t,m=!1,b=!1,E=a,C=0,A=!1,P,F;if(F=i.input.charCodeAt(i.position),F===124)p=!1;else if(F===62)p=!0;else return!1;for(i.kind="scalar",i.result="";F!==0;)if(F=i.input.charCodeAt(++i.position),F===43||F===45)Y1t===v?v=F===43?hIt:h_e:Fs(i,"repeat of a chomping mode identifier");else if((P=v_e(F))>=0)P===0?Fs(i,"bad explicit indentation width of a block scalar; it cannot be less than one"):b?Fs(i,"repeat of an indentation width identifier"):(E=a+P-1,b=!0);else break;if(JE(F)){do F=i.input.charCodeAt(++i.position);while(JE(F));if(F===35)do F=i.input.charCodeAt(++i.position);while(!l3(F)&&F!==0)}for(;F!==0;){for(X1t(i),i.lineInd
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C):v===Y1t&&m&&(i.result+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );break}for(p?JE(F)?(A=!0,i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C)):A?(A=!1,i.result+=og.repeat( `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,C+1)):C===0?m&&(i.result+=" "):i.result+=og.repeat( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,C):i.result+=og.repeat( `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,m?1+C:C),m=!0,b=!0,C=0,f=i.position;!l3(F)&&F!==0;)F=i.input.charCodeAt(++i.position);rk(i,f,i.position,!1)}return!0}function xIt(i,a){var f,p=i.tag,v=i.anchor,m=[],b,E=!1,C;if(i.firstTabInLine!==-1)return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=m),C=i.input.charCodeAt(i.position);C!==0&&(i.firstTabInLine!==-1&&(i.position=i.firstTabInLine,Fs(i,"tab characters must not be used in indentation")),!(C!==45||(b=i.input.charCodeAt(i.position+1),!lp(b))));){if(E=!0,i.position++,If(i,!0,-1)&&i.lineIndent<=a){m.push(null),C=i.input.charCodeAt(i.position);continue}if(f=i.line,RA(i,a,lIt,!1,!0),m.push(i.result),If(i,!0,-1),C=i.input.charCodeAt(i.position),(i.line===f||i.lineIndent>a)&&C!==0)Fs(i,"bad indentation of a sequence entry");else if(i.lineIndent<a)break}return E?(i.tag=p,i.anchor=v,i.kind="sequence",i.result=m,!0):!1}function __e(i,a,f){var p,v,m,b,E,C,A=i.tag,P=i.anchor,F={},j=Object.create(null),R=null,H=null,Y=null,rt=!1,J=!1,it;if(i.firstTabInLine!==-1)return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=F),it=i.input.charCodeAt(i.position);it!==0;){if(!rt&&i.firstTabInLine!==-1&&(i.position=i.firstTabInLine,Fs(i,"tab characters must not be used in indentation")),p=i.input.charCodeAt(i.position+1),m=i.line,(it===63||it===58)&&lp(p))it===63?(rt&&(BA(i,F,j,R,H,null,b,E,C),R=H=Y=null),J=!0,rt=!0,v=!0):rt?(rt=!1,v=!0):Fs(i,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),i.position+=1,it=p;else{if(b=i.line,E=i.lineStart,C=i.position,!RA(i,f,uIt,!1,!0))break;if(i.line===m){for(it=i.input.charCodeAt(i.position);JE(it);)it=i.input.charCodeAt(++i.position);if(it===58)it=i.input.charCodeAt(++i.position),lp(it)||Fs(i,"a whitespace character is expected after the key-value separator within a block mapping"),rt&&(BA(i,F,j,R,H,null,b,E,C),R=H=Y=null),J=!0,rt=!1,v=!1,R=i.tag,H=i.result;else if(J)Fs(i,"can not read an implicit mapping pair; a colon is missed");else return i.tag=A,i.anchor=P,!0}else if(J)Fs(i,"can not read a block mapping entry; a multiline key may not be an implicit key");else return i.tag=A,i.anchor=P,!0}if((i.line===m||i.lineIndent>a)&&(rt&&(b=i.line,E=i.lineStart,C=i.position),RA(i,a,gW,!0,v)&&(rt?H=i.result:Y=i.result),rt||(BA(i,F,j,R,H,Y,b,E,C),R=H=Y=null),If(i,!0,-1),it=i.input.charCodeAt(i.position)),(i.line===m||i.lineIndent>a)&&it!==0)Fs(i,"bad indentation of a mapping entry");else if(i.lineIndent<a)break}return rt&&BA(i,F,j,R,H,null,b,E,C),J&&(i.tag=A,i.anchor=P,i.kind="mapping",i.result=F),J}function C_e(i){var a,f=!1,p=!1,v,m,b;if(b=i.input.charCodeAt(i.position),b!==33)return!1;if(i.tag!==null&&Fs(i,"duplication of a tag property"),b=i.input.charCodeAt(++i.position),b===60?(f=!0,b=i.input.charCodeAt(++i.position)):b===33?(p=!0,v="!!",b=i.input.charCodeAt(++i.position)):v="!",a=i.position,f){do b=i.input.charCodeAt(++i.position);while(b!==0&&b!==62);i.position<i.length?(m=i.input.slice(a,i.position),b=i.input.charCodeAt(++i.position)):Fs(i,"unexpected end of the stream within a verbatim tag")}else{for(;b!==0&&!lp(b);)b===33&&(p?Fs(i,"tag suffix cannot contain exclamation marks"):(v=i.input.slice(a-1,i.position+1),fIt.test(v)||Fs(i,"named tag handle cannot contain such characters"),p=!0,a=i.position+1)),b=i.input.charCodeAt(++i.position);m=i.input.slice(a,i.position),g_e.test(m)&&Fs(i,"tag suffix cannot contain flow indicator characters")}m&&!dIt.test(m)&&Fs(i,"tag name cannot contain such characters: "+m);try{m=decodeURIComponent(m)}catch{Fs(i,"tag name is malformed: "+m)}return f?i.tag=m:nk.call(i.tagMap,v)?i.tag=i.tagMap[v]+m:v==="!"?i.tag="!"+m:v==="!!"?i.tag="tag:yaml.org,2002:"+m:Fs(i,'undeclared tag handle "'+v+'"'),!0}function S_e(i){var a,f;if(f=i.input.charCodeAt(i.position),f!==38)return!1;for(i.anchor!==null&&Fs(i,"duplication of an anchor property"),f=i.input.charCodeAt(++i.position),a=i.position;f!==0&&!lp(f)&&!PA(f);)f=i.input.charCodeAt(++i.position);return i.position===a&&Fs(i,"name of an anchor node must contain at least one character"),i.anchor=i.input.slice(a,i.position),!0}function A_e(i){var a,f,p;if(p=i.input.charCodeAt(i.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),i.charCodeAt(0)===65279&&(i=i.slice(1)));var f=new m_e(i,a),p=i.indexOf(" \0 ");for(p!==-1&&(f.position=p,Fs(f,"null byte is not allowed in input")),f.input+=" \0 ";f.input.charCodeAt(f.position)===32;)f.lineIndent+=1,f.position+=1;for(;f.position<f.length-1;)L_e(f);return f.documents}function M_e(i,a,f){a!==null&&typeof a=="object"&&typeof f>"u"&&(f=a,a=null);var p=kIt(i,f);if(typeof a!="function")return p;for(var v=0,m=p.length;v<m;v+=1)a(p[v])}function D_e(i,a){var f=kIt(i,a);if(f.length!==0){if(f.length===1)return f[0];throw new x5("expected a single document in the stream, but found more")}}var I_e=M_e,O_e=D_e,N_e={loadAll:I_e,load:O_e},P_e=aIt,F_e=N_e.load;const EIt=/^-{3} \s *[ \n \r ](.*?)[ \n \r ]-{3} \s *[ \n \r ]+/s;function B_e(i,a){var p,v;const f=i.match(EIt);if(f){const m=F_e(f[1],{schema:P_e});return m!=null&&m.title&&((p=a.setDiagramTitle)==null||p.call(a,m.title)),m!=null&&m.displayMode&&((v=a.setDisplayMode)==null||v.call(a,m.displayMode)),i.slice(f[0].length)}else return i}const Z1t=function(i,a,f){const{depth:p,clobber:v}=Object.assign({depth:2,clobber:!1},f);return Array.isArray(a)&&!Array.isArray(i)?(a.forEach(m=>Z1t(i,m,f)),i):Array.isArray(a)&&Array.isArray(i)?(a.forEach(m=>{i.includes(m)||i.push(m)}),i):i===void 0||p<=0?i!=null&&typeof i=="object"&&typeof a=="object"?Object.assign(i,a):a:(a!==void 0&&typeof i=="object"&&typeof a=="object"&&Object.keys(a).forEach(m=>{typeof a[m]=="object"&&(i[m]===void 0||typeof i[m]=="object")?(i[m]===void 0&&(i[m]=Array.isArray(a[m])?[]:{}),i[m]=Z1t(i[m],a[m],{depth:p-1,clobber:v})):(v||typeof i[m]!="object"&&typeof a[m]!="object")&&(i[m]=a[m])}),i)},J1=Z1t,t9=Object.freeze(u1);let hp=J1({},t9),TIt,jA=[],UN=J1({},t9);const vW=(i,a)=>{let f=J1({},i),p={};for(const v of a)SIt(v),p=J1(p,v);if(f=J1(f,p),p.theme&&p.theme in y5){const v=J1({},TIt),m=J1(v.themeVariables||{},p.themeVariables);f.theme&&f.theme in y5&&(f.themeVariables=y5[f.theme].getThemeVariables(m))}return UN=f,MIt(UN),UN},R_e=i=>(hp=J1({},t9),hp=J1(hp,i),i.theme&&y5[i.theme]&&(hp.themeVariables=y5[i.theme].getThemeVariables(i.themeVariables)),vW(hp,jA),hp),j_e=i=>{TIt=J1({},i)}, $ _e=i=>(hp=J1(hp,i),vW(hp,jA),hp),_It=()=>J1({},hp),CIt=i=>(MIt(i),J1(UN,i),Me()),Me=()=>J1({},UN),SIt=i=>{["secure",...hp.secure??[]].forEach(a=>{i[a]!==void 0&&(Gt.debug( ` Denied  attempt  to  modify  a  secure  key  $ { a } ` ,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.indexOf("__")===0&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&SIt(i[a])})},AIt=i=>{i.fontFamily&&(i.themeVariables?i.themeVariables.fontFamily||(i.themeVariables={fontFamily:i.fontFamily}):i.themeVariables={fontFamily:i.fontFamily}),jA.push(i),vW(hp,jA)},wW=(i=hp)=>{jA=[],vW(i,jA)},z_e={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},LIt={},q_e=i=>{LIt[i]||(Gt.warn(z_e[i]),LIt[i]=!0)},MIt=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&q_e("LAZY_LOAD_DEPRECATED")},H_e=function(i,a){for(let f of a)i.attr(f[0],f[1])},V_e=function(i,a,f){let p=new Map;return f?(p.set("width","100%"),p.set("style", ` max - width :  $ { a } px ; ` )):(p.set("height",i),p.set("width",a)),p},cg=function(i,a,f,p){const v=V_e(a,f,p);H_e(i,v)},e9=function(i,a,f,p){const v=a.node().getBBox(),m=v.width,b=v.height;Gt.info( ` SVG  bounds :  $ { m } x$ { b } ` ,v);let E=0,C=0;Gt.info( ` Graph  bounds :  $ { E } x$ { C } ` ,i),E=m+f*2,C=b+f*2,Gt.info( ` Calculated  bounds :  $ { E } x$ { C } ` ),cg(a,C,E,p);const A= ` $ { v . x - f }  $ { v . y - f }  $ { v . width + 2 * f }  $ { v . height + 2 * f } ` ;a.attr("viewBox",A)},mW={},G_e=(i,a,f)=>{let p="";return i in mW&&mW[i]?p=mW[i](f):Gt.warn( ` No  theme  found  for  $ { i } ` ), `  &  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { f . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { f . fontSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  /* Classes common for multiple diagrams */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . error - icon  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . errorBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . error - text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . errorTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . errorTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - thickness - normal  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - thickness - thick  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3.5 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - pattern - solid  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . edge - pattern - dashed { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge - pattern - dotted  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  . marker  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  &  . marker . cross  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { f . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  &  svg  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { f . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { f . fontSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { p } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { a } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` },U_e=(i,a)=>{a!==void 0&&(mW[i]=a)},W_e=G_e;let J1t="",yW="",tdt="";const edt=i=>sg(i,Me()),ug=function(){J1t="",tdt="",yW=""},m0=function(i){J1t=edt(i).replace(/^ \s +/g,"")},lg=function(){return J1t||yW},hg=function(i){tdt=edt(i).replace(/ \n \s +/g, `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )},fg=function(){return tdt},Ob=function(i){yW=edt(i)},fp=function(){return yW},DIt=Object.freeze(Object.defineProperty({__proto__:null,clear:ug,default:{getAccTitle:lg,setAccTitle:m0,getDiagramTitle:fp,setDiagramTitle:Ob,getAccDescription:fg,setAccDescription:hg,clear:ug},getAccDescription:fg,getAccTitle:lg,getDiagramTitle:fp,setAccDescription:hg,setAccTitle:m0,setDiagramTitle:Ob},Symbol.toStringTag,{value:"Module"}));let n9={};const ndt=function(i,a,f,p){Gt.debug("parseDirective is being called",a,f,p);try{if(a!==void 0)switch(a=a.trim(),f){case"open_directive":n9={};break;case"type_directive":if(!n9)throw new Error("currentDirective is undefined");n9.type=a.toLowerCase();break;case"arg_directive":if(!n9)throw new Error("currentDirective is undefined");n9.args=JSON.parse(a);break;case"close_directive":K_e(i,n9,p),n9=void 0;break}}catch(v){Gt.error( ` Error  while  rendering  sequenceDiagram  directive :  $ { a }  jison  context :  $ { f } ` ),Gt.error(v.message)}},K_e=function(i,a,f){switch(Gt.info( ` Directive  type = $ { a . type }  with  args : ` ,a.args),a.type){case"init":case"initialize":{["config"].forEach(p=>{a.args[p]!==void 0&&(f==="flowchart-v2"&&(f="flowchart"),a.args[f]=a.args[p],delete a.args[p])}),Gt.info("sanitize in handleDirective",a.args),VA(a.args),Gt.info("sanitize in handleDirective (done)",a.args),AIt(a.args);break}case"wrap":case"nowrap":i&&i.setWrap&&i.setWrap(a.type==="wrap");break;case"themeCss":Gt.warn("themeCss encountered");break;default:Gt.warn( ` Unhandled  directive :  source :  ' % % { $ { a . type } :  $ { JSON . stringify ( a . args ? a . args : { } ) } } % % ` ,a);break}},Y_e=Gt,X_e= $ ft,WN=Me,Q_e=i=>sg(i,WN()),IIt=e9,Z_e=()=>DIt,J_e=(i,a,f,p)=>ndt(i,a,f,p),xW={},kW=(i,a,f)=>{if(xW[i])throw new Error( ` Diagram  $ { i }  already  registered . ` );xW[i]=a,f&&PIt(i,f),U_e(i,a.styles),a.injectUtils&&a.injectUtils(Y_e,X_e,WN,Q_e,IIt,Z_e(),J_e)},rdt=i=>{if(i in xW)return xW[i];throw new tCe(i)};class tCe extends Error{constructor(a){super( ` Diagram  $ { a }  not  found . ` )}}class OIt extends Error{constructor(a){super(a),this.name="UnknownDiagramError"}}const eCe=/%{2}{ \s *(?:( \w +) \s *:|( \w +)) \s *(?:( \w +)|((?:(?!}%{2}).| \r ? \n )*))? \s *(?:}%{2})?/gi,nCe=/ \s *%%.* \n /gm, $ A={},EW=function(i,a){i=i.replace(EIt,"").replace(eCe,"").replace(nCe, `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );for(const[f,{detector:p}]of Object.entries( $ A))if(p(i,a))return f;throw new OIt( ` No  diagram  type  detected  matching  given  configuration  for  text :  $ { i } ` )},NIt=(...i)=>{for(const{id:a,detector:f,loader:p}of i)PIt(a,f,p)},rCe=async()=>{Gt.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries( $ A).map(async([f,{detector:p,loader:v}])=>{if(v)try{rdt(f)}catch{try{const{diagram:b,id:E}=await v();kW(E,b,p)}catch(b){throw Gt.error( ` Failed  to  load  external  diagram  with  key  $ { f } .  Removing  from  detectors . ` ),delete  $ A[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){Gt.error( ` Failed  to  load  $ { a . length }  external  diagrams ` );for(const f of a)Gt.error(f);throw new Error( ` Failed  to  load  $ { a . length }  external  diagrams ` )}},PIt=(i,a,f)=>{ $ A[i]?Gt.error( ` Detector  with  key  $ { i }  already  exists ` ): $ A[i]={detector:a,loader:f},Gt.debug( ` Detector  with  key  $ { i }  added$ { f ? " with loader" : "" } ` )},iCe=i=> $ A[i].loader;var sCe=typeof global=="object"&&global&&global.Object===Object&&global;const FIt=sCe;var aCe=typeof self=="object"&&self&&self.Object===Object&&self,oCe=FIt||aCe||Function("return this")();const Jw=oCe;var cCe=Jw.Symbol;const Q2=cCe;var BIt=Object.prototype,uCe=BIt.hasOwnProperty,lCe=BIt.toString,KN=Q2?Q2.toStringTag:void 0;function hCe(i){var a=uCe.call(i,KN),f=i[KN];try{i[KN]=void 0;var p=!0}catch{}var v=lCe.call(i);return p&&(a?i[KN]=f:delete i[KN]),v}var fCe=Object.prototype,dCe=fCe.toString;function gCe(i){return dCe.call(i)}var pCe="[object Null]",bCe="[object Undefined]",RIt=Q2?Q2.toStringTag:void 0;function r9(i){return i==null?i===void 0?bCe:pCe:RIt&&RIt in Object(i)?hCe(i):gCe(i)}function Nb(i){var a=typeof i;return i!=null&&(a=="object"||a=="function")}var vCe="[object AsyncFunction]",wCe="[object Function]",mCe="[object GeneratorFunction]",yCe="[object Proxy]";function zA(i){if(!Nb(i))return!1;var a=r9(i);return a==wCe||a==mCe||a==vCe||a==yCe}var xCe=Jw["__core-js_shared__"];const idt=xCe;var jIt=function(){var i=/[^.]+ $ /.exec(idt&&idt.keys&&idt.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function kCe(i){return!!jIt&&jIt in i}var ECe=Function.prototype,TCe=ECe.toString;function i9(i){if(i!=null){try{return TCe.call(i)}catch{}try{return i+""}catch{}}return""}var _Ce=/[ \\ ^ $ .*+?()[ \] {}|]/g,CCe=/^ \[ object .+?Constructor \] $ /,SCe=Function.prototype,ACe=Object.prototype,LCe=SCe.toString,MCe=ACe.hasOwnProperty,DCe=RegExp("^"+LCe.call(MCe).replace(_Ce," \\ $ &").replace(/hasOwnProperty|(function).*?(?= \\ \( )| for .+?(?= \\ \] )/g," $ 1.*?")+" $ ");function ICe(i){if(!Nb(i)||kCe(i))return!1;var a=zA(i)?DCe:CCe;return a.test(i9(i))}function OCe(i,a){return i==null?void 0:i[a]}function s9(i,a){var f=OCe(i,a);return ICe(f)?f:void 0}var NCe=s9(Object,"create");const YN=NCe;function PCe(){this.__data__=YN?YN(null):{},this.size=0}function FCe(i){var a=this.has(i)&&delete this.__data__[i];return this.size-=a?1:0,a}var BCe="__lodash_hash_undefined__",RCe=Object.prototype,jCe=RCe.hasOwnProperty;function  $ Ce(i){var a=this.__data__;if(YN){var f=a[i];return f===BCe?void 0:f}return jCe.call(a,i)?a[i]:void 0}var zCe=Object.prototype,qCe=zCe.hasOwnProperty;function HCe(i){var a=this.__data__;return YN?a[i]!==void 0:qCe.call(a,i)}var VCe="__lodash_hash_undefined__";function GCe(i,a){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=YN&&a===void 0?VCe:a,this}function a9(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a<f;){var p=i[a];this.set(p[0],p[1])}}a9.prototype.clear=PCe,a9.prototype.delete=FCe,a9.prototype.get= $ Ce,a9.prototype.has=HCe,a9.prototype.set=GCe;function UCe(){this.__data__=[],this.size=0}function qA(i,a){return i===a||i!==i&&a!==a}function TW(i,a){for(var f=i.length;f--;)if(qA(i[f][0],a))return f;return-1}var WCe=Array.prototype,KCe=WCe.splice;function YCe(i){var a=this.__data__,f=TW(a,i);if(f<0)return!1;var p=a.length-1;return f==p?a.pop():KCe.call(a,f,1),--this.size,!0}function XCe(i){var a=this.__data__,f=TW(a,i);return f<0?void 0:a[f][1]}function QCe(i){return TW(this.__data__,i)>-1}function ZCe(i,a){var f=this.__data__,p=TW(f,i);return p<0?(++this.size,f.push([i,a])):f[p][1]=a,this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,"ig");i=i.trim().replace(f,"").replace(/'/gm,'"'),Gt.debug( ` Detecting  diagram  directive$ { a !== null ? " type:" + a : "" }  based  on  the  text : $ { i } ` );let p;const v=[];for(;(p=sdt.exec(i))!==null;)if(p.index===sdt.lastIndex&&sdt.lastIndex++,p&&!a||a&&p[1]&&p[1].match(a)||a&&p[2]&&p[2].match(a)){const m=p[1]?p[1]:p[2],b=p[3]?p[3].trim():p[4]?JSON.parse(p[4].trim()):null;v.push({type:m,args:b})}return v.length===0&&v.push({type:i,args:null}),v.length===1?v[0]:v}catch(f){return Gt.error( ` ERROR :  $ { f . message }  -  Unable  to  parse  directive  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      $ { a !== null ? " type:" + a : "" }  based  on  the  text : $ { i } ` ),{type:null,args:null}}},lSe=function(i,a){for(const[f,p]of a.entries())if(p.match(i))return f;return-1};function Z2(i,a){if(!i)return a;const f= ` curve$ { i . charAt ( 0 ) . toUpperCase ( ) + i . slice ( 1 ) } ` ;return oSe[f]||a}function hSe(i,a){const f=i.trim();if(f)return a.securityLevel!=="loose"?Zx(f):f}const fSe=(i,...a)=>{const f=i.split("."),p=f.length-1,v=f[p];let m=window;for(let b=0;b<p;b++)if(m=m[f[b]],!m)return;m[v](...a)};function CW(i,a){return i&&a?Math.sqrt(Math.pow(a.x-i.x,2)+Math.pow(a.y-i.y,2)):0}function dSe(i){let a,f=0;i.forEach(m=>{f+=CW(m,a),a=m});let p=f/2,v;return a=void 0,i.forEach(m=>{if(a&&!v){const b=CW(m,a);if(b<p)p-=b;else{const E=p/b;E<=0&&(v=a),E>=1&&(v={x:m.x,y:m.y}),E>0&&E<1&&(v={x:(1-E)*a.x+E*m.x,y:(1-E)*a.y+E*m.y})}}a=m}),v}function gSe(i){return i.length===1?i[0]:dSe(i)}const pSe=(i,a,f)=>{let p;Gt.info( ` our  points  $ { JSON . stringify ( a ) } ` ),a[0]!==f&&(a=a.reverse());let m=25,b;p=void 0,a.forEach(P=>{if(p&&!b){const F=CW(P,p);if(F<m)m-=F;else{const j=m/F;j<=0&&(b=p),j>=1&&(b={x:P.x,y:P.y}),j>0&&j<1&&(b={x:(1-j)*p.x+j*P.x,y:(1-j)*p.y+j*P.y})}}p=P});const E=i?10:5,C=Math.atan2(a[0].y-b.y,a[0].x-b.x),A={x:0,y:0};return A.x=Math.sin(C)*E+(a[0].x+b.x)/2,A.y=-Math.cos(C)*E+(a[0].y+b.y)/2,A};function bSe(i,a,f){let p=JSON.parse(JSON.stringify(f)),v;Gt.info("our points",p),a!=="start_left"&&a!=="start_right"&&(p=p.reverse()),p.forEach(F=>{v=F});let b=25+i,E;v=void 0,p.forEach(F=>{if(v&&!E){const j=CW(F,v);if(j<b)b-=j;else{const R=b/j;R<=0&&(E=v),R>=1&&(E={x:F.x,y:F.y}),R>0&&R<1&&(E={x:(1-R)*v.x+R*F.x,y:(1-R)*v.y+R*F.y})}}v=F});const C=10+i*.5,A=Math.atan2(p[0].y-E.y,p[0].x-E.x),P={x:0,y:0};return P.x=Math.sin(A)*C+(p[0].x+E.x)/2,P.y=-Math.cos(A)*C+(p[0].y+E.y)/2,a==="start_left"&&(P.x=Math.sin(A+Math.PI)*C+(p[0].x+E.x)/2,P.y=-Math.cos(A+Math.PI)*C+(p[0].y+E.y)/2),a==="end_right"&&(P.x=Math.sin(A-Math.PI)*C+(p[0].x+E.x)/2-5,P.y=-Math.cos(A-Math.PI)*C+(p[0].y+E.y)/2-5),a==="end_left"&&(P.x=Math.sin(A)*C+(p[0].x+E.x)/2-5,P.y=-Math.cos(A)*C+(p[0].y+E.y)/2-5),P}function tm(i){let a="",f="";for(const p of i)p!==void 0&&(p.startsWith("color:")||p.startsWith("text-align:")?f=f+p+";":a=a+p+";");return{style:a,labelStyle:f}}let qIt=0;const HIt=()=>(qIt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+qIt);function vSe(i){let a="";const f="0123456789abcdef",p=f.length;for(let v=0;v<i;v++)a+=f.charAt(Math.floor(Math.random()*p));return a}const VIt=i=>vSe(i.length),wSe=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0}},mSe=function(i,a){const f=a.text.replace(oi.lineBreakRegex," "),[,p]=GA(a.fontSize),v=i.append("text");v.attr("x",a.x),v.attr("y",a.y),v.style("text-anchor",a.anchor),v.style("font-family",a.fontFamily),v.style("font-size",p),v.style("font-weight",a.fontWeight),v.attr("fill",a.fill),a.class!==void 0&&v.attr("class",a.class);const m=v.append("tspan");return m.attr("x",a.x+a.textMargin*2),m.attr("fill",a.fill),m.text(f),v},GIt=HA((i,a,f)=>{if(!i||(f=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},f),oi.lineBreakRegex.test(i)))return i;const p=i.split(" "),v=[];let m="";return p.forEach((b,E)=>{const C=h3( ` $ { b }  ` ,f),A=h3(m,f);if(C>a){const{hyphenatedStrings:j,remainingWord:R}=ySe(b,a,"-",f);v.push(m,...j),m=R}else A+C>=a?(v.push(m),m=b):m=[m,b].filter(Boolean).join(" ");E+1===p.length&&v.push(m)}),v.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=> ` $ { i } $ { a } $ { f . fontSize } $ { f . fontWeight } $ { f . fontFamily } $ { f . joinWith } ` ),ySe=HA((i,a,f="-",p)=>{p=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},p);const v=[...i],m=[];let b="";return v.forEach((E,C)=>{const A= ` $ { b } $ { E } ` ;if(h3(A,p)>=a){const F=C+1,j=v.length===F,R= ` $ { A } $ { f } ` ;m.push(j?A:R),b=""}else b=A}),{hyphenatedStrings:m,remainingWord:b}},(i,a,f="-",p)=> ` $ { i } $ { a } $ { f } $ { p . fontSize } $ { p . fontWeight } $ { p . fontFamily } ` );function adt(i,a){return a=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},a),odt(i,a).height}function h3(i,a){return a=Object.assign({fontSize:12,fontWeight
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );const p=wOt(a);p.attr("viewBox","0 0 2412 512"),cg(p,100,512,!0);const v=p.append("g");v.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),v.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),v.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),v.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),v.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),v.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),v.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),v.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text( ` mermaid  version  $ { f } ` )}},eAe=mOt,nAe={db:{},renderer:mOt,parser:{parser:{yy:{}},parse:()=>{}}},yOt="flowchart-elk",rAe={id:yOt,detector:(i,a)=>{var f;return!!(/^ \s *flowchart-elk/.test(i)||/^ \s *flowchart|graph/.test(i)&&((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>yUe);return{id:yOt,diagram:i}}},xOt="timeline",iAe={id:xOt,detector:i=>/^ \s *timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>jUe);return{id:xOt,diagram:i}}},kOt="mindmap",sAe={id:kOt,detector:i=>/^ \s *mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>pWe);return{id:kOt,diagram:i}}},EOt="sankey",aAe={id:EOt,detector:i=>/^ \s *sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>GWe);return{id:EOt,diagram:i}}};let TOt=!1;const pdt=()=>{TOt||(TOt=!0,kW("error",nAe,i=>i.toLowerCase().trim()==="error"),kW("---",{db:{clear:()=>{}},styles:{},renderer:{},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented  ` -- - `  blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),NIt(jSe,QSe,XSe,qSe,VSe,GSe,USe,KSe,YSe,rAe,zSe, $ Se,sAe,iAe,HSe,JSe,ZSe,tAe,WSe,aAe))},oAe=i=>i.trimStart().replace(/^ \s *%%(?!{)[^ \n ]+ \n ?/gm,"");class _Ot{constructor(a){this.text=a,this.type="graph",this.text+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;const f=Me();try{this.type=EW(a,f)}catch(m){this.type="error",this.detectError=m}const p=rdt(this.type);Gt.debug("Type "+this.type),this.db=p.db,this.renderer=p.renderer,this.parser=p.parser;const v=this.parser.parse.bind(this.parser);this.parser.parse=m=>v(oAe(B_e(m,this.db))),this.parser.parser.yy=this.db,this.init=p.init,this.parse()}parse(){var a,f,p;if(this.detectError)throw this.detectError;(f=(a=this.db).clear)==null||f.call(a),(p=this.init)==null||p.call(this,Me()),this.parser.parse(this.text)}async render(a,f){await this.renderer.draw(this.text,a,f,this)}getParser(){return this.parser}getType(){return this.type}}const bdt=async i=>{const a=EW(i,Me());try{rdt(a)}catch{const p=iCe(a);if(!p)throw new OIt( ` Diagram  $ { a }  not  found . ` );const{id:v,diagram:m}=await p();kW(v,m)}return new _Ot(i)};let vdt=[];const cAe=i=>{vdt.push(i)},uAe=()=>{vdt.forEach(i=>{i()}),vdt=[]};var lAe=Object.prototype;function NW(i){var a=i&&i.constructor,f=typeof a=="function"&&a.prototype||lAe;return i===f}function COt(i,a){return function(f){return i(a(f))}}var hAe=COt(Object.keys,Object);const fAe=hAe;var dAe=Object.prototype,gAe=dAe.hasOwnProperty;function SOt(i){if(!NW(i))return fAe(i);var a=[];for(var f in Object(i))gAe.call(i,f)&&f!="constructor"&&a.push(f);return a}var pAe=s9(Jw,"DataView");const wdt=pAe;var bAe=s9(Jw,"Promise");const mdt=bAe;var vAe=s9(Jw,"Set");const KA=vAe;var wAe=s9(Jw,"WeakMap");const ydt=wAe;var AOt="[object Map]",mAe="[object Object]",LOt="[object Promise]",MOt="[object Set]",DOt="[object WeakMap]",IOt="[object DataView]",yAe=i9(wdt),xAe=i9(XN),kAe=i9(mdt),EAe=i9(KA),TAe=i9(ydt),c9=r9;(wdt&&c9(new wdt(new ArrayBuffer(1)))!=IOt||XN&&c9(new XN)!=AOt||mdt&&c9(mdt.resolve())!=LOt||KA&&c9(new KA)!=MOt||ydt&&c9(new ydt)!=DOt)&&(c9=function(i){var a=r9(i),f=a==mAe?i.constructor:void 0,p=f?i9(f):"";if(p)switch(p){case yAe:return IOt;case xAe:return AOt;case kAe:return LOt;case EAe:return MOt;case TAe:return DOt}return a});const YA=c9;function f3(i){return i!=null&&typeof i=="object"}var _Ae="[object Arguments]";function OOt(i){return f3(i)&&r9(i)==_Ae}var NOt=Object.prototype,CAe=NOt.hasOwnProperty,SAe=NOt.propertyIsEnumerable,AAe=OOt(function(){return arguments}())?OOt:function(i){return f3(i)&&CAe.call(i,"callee")&&!SAe.call(i,"callee")};const XA=AAe;var LAe=Array.isArray;const Nf=LAe;var MAe=9007199254740991;function xdt(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=MAe}function sk(i){return i!=null&&xdt(i.length)&&!zA(i)}function DAe(){return!1}var POt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,FOt=POt&&typeof module=="object"&&module&&!module.nodeType&&module,IAe=FOt&&FOt.exports===POt,BOt=IAe?Jw.Buffer:void 0,OAe=BOt?BOt.isBuffer:void 0,NAe=OAe||DAe;const QA=NAe;var PAe="[object Arguments]",FAe="[object Array]",BAe="[object Boolean]",RAe="[object Date]",jAe="[object Error]", $ Ae="[object Function]",zAe="[object Map]",qAe="[object Number]",HAe="[object Object]",VAe="[object RegExp]",GAe="[object Set]",UAe="[object String]",WAe="[object WeakMap]",KAe="[object ArrayBuffer]",YAe="[object DataView]",XAe="[object Float32Array]",QAe="[object Float64Array]",ZAe="[object Int8Array]",JAe="[object Int16Array]",tLe="[object Int32Array]",eLe="[object Uint8Array]",nLe="[object Uint8ClampedArray]",rLe="[object Uint16Array]",iLe="[object Uint32Array]",kl={};kl[XAe]=kl[QAe]=kl[ZAe]=kl[JAe]=kl[tLe]=kl[eLe]=kl[nLe]=kl[rLe]=kl[iLe]=!0,kl[PAe]=kl[FAe]=kl[KAe]=kl[BAe]=kl[YAe]=kl[RAe]=kl[jAe]=kl[ $ Ae]=kl[zAe]=kl[qAe]=kl[HAe]=kl[VAe]=kl[GAe]=kl[UAe]=kl[WAe]=!1;function sLe(i){return f3(i)&&xdt(i.length)&&!!kl[r9(i)]}function PW(i){return function(a){return i(a)}}var ROt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,JN=ROt&&typeof module=="object"&&module&&!module.nodeType&&module,aLe=JN&&JN.exports===ROt,kdt=aLe&&FIt.process,oLe=function(){try{var i=JN&&JN.require&&JN.require("util").types;return i||kdt&&kdt.binding&&kdt.binding("util")}catch{}}();const ZA=oLe;var jOt=ZA&&ZA.isTypedArray,cLe=jOt?PW(jOt):sLe;const FW=cLe;var uLe="[object Map]",lLe="[object Set]",hLe=Object.prototype,fLe=hLe.hasOwnPrope
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. $ { i }  $ { a }  {  $ { f . join ( " !important; " ) }  ! important ;  } ` ,OLe=(i,a,f={})=>{var v;let p="";if(i.themeCSS!==void 0&&(p+= `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								$ { i . themeCSS } ` ),i.fontFamily!==void 0&&(p+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								: root  {  -- mermaid - font - family :  $ { i . fontFamily } } ` ),i.altFontFamily!==void 0&&(p+= `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								: root  {  -- mermaid - alt - font - family :  $ { i . altFontFamily } } ` ),!tP(f)&& $ Ot.includes(a)){const C=i.htmlLabels||((v=i.flowchart)==null?void 0:v.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const A in f){const P=f[A];tP(P.styles)||C.forEach(F=>{p+=zOt(P.id,F,P.styles)}),tP(P.textStyles)||(p+=zOt(P.id,"tspan",P.textStyles))}}return p},NLe=(i,a,f,p)=>{const v=OLe(i,a,f),m=W_e(a,v,i.themeVariables);return gdt(FSe( ` $ { p } { $ { m } } ` ),RSe)},PLe=(i="",a,f)=>{let p=i;return!f&&!a&&(p=p.replace(/marker-end="url \( [ \d +./:=?A-Za-z-]*?#/g,'marker-end="url(#')),p=eP(p),p=p.replace(/<br>/g,"<br/>"),p},FLe=(i="",a)=>{var v,m;const f=(m=(v=a==null?void 0:a.viewBox)==null?void 0:v.baseVal)!=null&&m.height?a.viewBox.baseVal.height+"px":TLe,p=btoa('<body style="'+CLe+'">'+i+"</body>");return ` < iframe  style = "width:${ELe};height:${f};${_Le}"  src = "data:text/html;base64,${p}"  sandbox = "${SLe}" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { ALe } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								< /iframe>`},qOt=(i,a,f,p,v)=>{const m=i.append("div");m.attr("id",f),p&&m.attr("style",p);const b=m.append("svg").attr("id",a).attr("width","100%").attr("xmlns",yLe);return v&&b.attr("xmlns:xlink",v),b.append("g"),i};function HOt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const BLe=(i,a,f,p)=>{var v,m,b;(v=i.getElementById(a))==null||v.remove(),(m=i.getElementById(f))==null||m.remove(),(b=i.getElementById(p))==null||b.remove()},RLe=async function(i,a,f){var Ct,tt,Pt,gt;pdt(),wW();const p=to.detectInit(a);p&&(VA(p),AIt(p));const v=Me();Gt.debug(v),a.length>((v==null?void 0:v.maxTextSize)??bLe)&&(a=vLe),a=a.replace(/ \ r \ n ? / g , `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),a=a.replace(/<( \w +)([^>]*)>/g,(Ft,X,Rt)=>"<"+X+Rt.replace(/="([^"]*)"/g,"=' $ 1'")+">");const m="#"+i,b="i"+i,E="#"+b,C="d"+i,A="#"+C;let P=fr("body");const F=v.securityLevel===wLe,j=v.securityLevel===mLe,R=v.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),F){const Ft=HOt(fr(f),b);P=fr(Ft.nodes()[0].contentDocument.body),P.node().style.margin=0}else P=fr(f);qOt(P,i,C, ` font - family :  $ { R } ` ,xLe)}else{if(BLe(document,i,C,b),F){const Ft=HOt(fr("body"),b);P=fr(Ft.nodes()[0].contentDocument.body),P.node().style.margin=0}else P=fr("body");qOt(P,i,C)}a=ILe(a);let H,Y;try{H=await bdt(a)}catch(Ft){H=new _Ot("error"),Y=Ft}const rt=P.select(A).node(),J=H.type,it=rt.firstChild,ht=it.firstChild,Tt= $ Ot.includes(J)?H.renderer.getClasses(a,H):{},xt=NLe(v,J,Tt,m),pt=document.createElement("style");pt.innerHTML=xt,it.insertBefore(pt,ht);try{await H.renderer.draw(a,i,eOt,H)}catch(Ft){throw eAe.draw(a,i,eOt),Ft}const ct=P.select( ` $ { A }  svg ` ),yt=(tt=(Ct=H.db).getAccTitle)==null?void 0:tt.call(Ct),st=(gt=(Pt=H.db).getAccDescription)==null?void 0:gt.call(Pt); $ Le(J,ct,yt,st),P.select( ` [ id = "${i}" ] ` ).selectAll("foreignobject > *").attr("xmlns",kLe);let Et=P.select(A).node().innerHTML;if(Gt.debug("config.arrowMarkerAbsolute",v.arrowMarkerAbsolute),Et=PLe(Et,F,c1(v.arrowMarkerAbsolute)),F){const Ft=P.select(A+" svg").node();Et=FLe(Et,Ft)}else j||(Et=rW.sanitize(Et,{ADD_TAGS:LLe,ADD_ATTR:MLe}));if(uAe(),Y)throw Y;const bt=fr(F?E:A).node();return bt&&"remove"in bt&&bt.remove(),{svg:Et,bindFunctions:H.db.bindFunctions}};function jLe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),j_e(i),i!=null&&i.theme&&i.theme in y5?i.themeVariables=y5[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=y5.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?R_e(i):_It(); $ ft(a.logLevel),pdt()}function  $ Le(i,a,f,p){gLe(a,i),pLe(a,f,p,a.attr("id"))}const l1=Object.freeze({render:RLe,parse:DLe,parseDirective:ndt,getDiagramFromText:bdt,initialize:jLe,getConfig:Me,setConfig:CIt,getSiteConfig:_It,updateSiteConfig: $ _e,reset:()=>{wW()},globalReset:()=>{wW(t9)},defaultConfig:t9}); $ ft(Me().logLevel),wW(Me());const zLe=(i,a,f)=>{Gt.warn(i),UIt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},VOt=async function(i={querySelector:".mermaid"}){try{await qLe(i)}catch(a){if(UIt(a)&&Gt.error(a.str),Pb.parseError&&Pb.parseError(a),!i.suppressErrors)throw Gt.error("Use the suppressErrors option to suppress these errors"),a}},qLe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const p=l1.getConfig();Gt.debug( ` $ { i ? "" : "No " } Callback  function  found ` );let v;if(f)v=f;else if(a)v=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Gt.debug( ` Found  $ { v . length }  diagrams ` ),(p==null?void 0:p.startOnLoad)!==void 0&&(Gt.debug("Start On Load: "+(p==null?void 0:p.startOnLoad)),l1.updateSiteConfig({startOnLoad:p==null?void 0:p.startOnLoad}));const m=new to.initIdGenerator(p.deterministicIds,p.deterministicIDSeed);let b;const E=[];for(const C of Array.from(v)){Gt.info("Rendering diagram: "+C.id);/*! Check if previously processed */if(C.getAttribute("data-processed"))continue;C.setAttribute("data-processed","true");const A= ` mermaid - $ { m . next ( ) } ` ;b=C.innerHTML,b=yA(to.entityDecode(b)).trim().replace(/<br \s * \/ ?>/gi,"<br/>");const P=to.detectInit(b);P&&Gt.debug("Detected early reinit: ",P);try{const{svg:F,bindFunctions:j}=await KOt(A,b,C);C.innerHTML=F,i&&await i(A),j&&j(C)}catch(F){zLe(F,E,Pb.parseError)}}if(E.length>0)throw E[0]},GOt=function(i){l1.initialize(i)},HLe=async function(i,a,f){Gt.warn("mermaid.init is deprecated. Please use run instead."),i&&GOt(i);const p={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?p.querySelector=a:a&&(a instanceof HTMLElement?p.nodes=[a]:p.nodes=a),await VOt(p)},VLe=async(i,{lazyLoad:a=!0}={})=>{NIt(...i),a===!1&&await r
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								 *  Wait  for  document  loaded  before  starting  the  execution 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								 * / w i n d o w . a d d E v e n t L i s t e n e r ( " l o a d " , U O t , ! 1 ) } c o n s t   G L e = f u n c t i o n ( i ) { P b . p a r s e E r r o r = i } , B W = [ ] ; l e t   E d t = ! 1 ; c o n s t   W O t = a s y n c ( ) = > { i f ( ! E d t ) { f o r ( E d t = ! 0 ; B W . l e n g t h > 0 ; ) { c o n s t   i = B W . s h i f t ( ) ; i f ( i ) t r y { a w a i t   i ( ) } c a t c h ( a ) { G t . e r r o r ( " E r r o r   e x e c u t i n g   q u e u e " , a ) } } E d t = ! 1 } } , U L e = a s y n c ( i , a ) = > n e w   P r o m i s e ( ( f , p ) = > { c o n s t   v = ( ) = > n e w   P r o m i s e ( ( m , b ) = > { l 1 . p a r s e ( i , a ) . t h e n ( E = > { m ( E ) , f ( E ) } , E = > { v a r   C ; G t . e r r o r ( " E r r o r   p a r s i n g " , E ) , ( C = P b . p a r s e E r r o r ) = = n u l l | | C . c a l l ( P b , E ) , b ( E ) , p ( E ) } ) } ) ; B W . p u s h ( v ) , W O t ( ) . c a t c h ( p ) } ) , K O t = ( i , a , f ) = > n e w   P r o m i s e ( ( p , v ) = > { c o n s t   m = ( ) = > n e w   P r o m i s e ( ( b , E ) = > { l 1 . r e n d e r ( i , a , f ) . t h e n ( C = > { b ( C ) , p ( C ) } , C = > { v a r   A ; G t . e r r o r ( " E r r o r   p a r s i n g " , C ) , ( A = P b . p a r s e E r r o r ) = = n u l l | | A . c a l l ( P b , C ) , E ( C ) , v ( C ) } ) } ) ; B W . p u s h ( m ) , W O t ( ) . c a t c h ( v ) } ) , P b = { s t a r t O n L o a d : ! 0 , m e r m a i d A P I : l 1 , p a r s e : U L e , r e n d e r : K O t , i n i t : H L e , r u n : V O t , r e g i s t e r E x t e r n a l D i a g r a m s : V L e , i n i t i a l i z e : G O t , p a r s e E r r o r : v o i d   0 , c o n t e n t L o a d e d : U O t , s e t P a r s e E r r o r H a n d l e r : G L e , d e t e c t T y p e : E W } ; v a r   R W = f u n c t i o n ( ) { v a r   i = f u n c t i o n ( G a , _ r , q r , O i ) { f o r ( q r = q r | | { } , O i = G a . l e n g t h ; O i - - ; q r [ G a [ O i ] ] = _ r ) ; r e t u r n   q r } , a = [ 1 , 6 ] , f = [ 1 , 7 ] , p = [ 1 , 8 ] , v = [ 1 , 9 ] , m = [ 1 , 1 6 ] , b = [ 1 , 1 1 ] , E = [ 1 , 1 2 ] , C = [ 1 , 1 3 ] , A = [ 1 , 1 4 ] , P = [ 1 , 1 5 ] , F = [ 1 , 2 7 ] , j = [ 1 , 3 3 ] , R = [ 1 , 3 4 ] , H = [ 1 , 3 5 ] , Y = [ 1 , 3 6 ] , r t = [ 1 , 3 7 ] , J = [ 1 , 7 2 ] , i t = [ 1 , 7 3 ] , h t = [ 1 , 7 4 ] , T t = [ 1 , 7 5 ] , x t = [ 1 , 7 6 ] , p t = [ 1 , 7 7 ] , c t = [ 1 , 7 8 ] , y t = [ 1 , 3 8 ] , s t = [ 1 , 3 9 ] , E t = [ 1 , 4 0 ] , d t = [ 1 , 4 1 ] , b t = [ 1 , 4 2 ] , C t = [ 1 , 4 3 ] , t t = [ 1 , 4 4 ] , P t = [ 1 , 4 5 ] , g t = [ 1 , 4 6 ] , F t = [ 1 , 4 7 ] , X = [ 1 , 4 8 ] , R t = [ 1 , 4 9 ] , B t = [ 1 , 5 0 ] , w t = [ 1 , 5 1 ] , O t = [ 1 , 5 2 ] , V t = [ 1 , 5 3 ] , q e = [ 1 , 5 4 ] , _ n = [ 1 , 5 5 ] , T e = [ 1 , 5 6 ] , W n = [ 1 , 5 7 ] , A e = [ 1 , 5 9 ] , n e = [ 1 , 6 0 ] , k e = [ 1 , 6 1 ] , V e = [ 1 , 6 2 ] , E e = [ 1 , 6 3 ] , H e = [ 1 , 6 4 ] , C e = [ 1 , 6 5 ] , $ e = [ 1 , 6 6 ] , y e = [ 1 , 6 7 ] , f n = [ 1 , 6 8 ] , Y t = [ 1 , 6 9 ] , M i = [ 2 4 , 5 2 ] , q t = [ 2 4 , 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 2 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , z i = [ 1 5 , 2 4 , 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 2 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , S e = [ 1 , 9 4 ] , k i = [ 1 , 9 5 ] , R i = [ 1 , 9 6 ] , p i = [ 1 , 9 7 ] , b i = [ 1 5 , 2 4 , 5 2 ] , d n = [ 7 , 8 , 9 , 1 0 , 1 8 , 2 2 , 2 5 , 2 6 , 2 7 , 2 8 ] , N n = [ 1 5 , 2 4 , 4 3 , 5 2 ] , W r = [ 1 5 , 2 4 , 4 3 , 5 2 , 8 6 , 8 7 , 8 9 , 9 0 ] , L i = [ 1 5 , 4 3 ] , i s = [ 4 4 , 4 6 , 4 7 , 4 8 , 4 9 , 5 0 , 5 1 , 5 4 , 5 5 , 5 6 , 5 7 , 5 8 , 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 , 7 1 , 7 2 , 7 3 , 7 4 , 7 5 , 7 6 , 7 7 , 7 8 , 7 9 , 8 0 , 8 1 , 8 2 , 8 3 , 8 4 ] , T s = { t r a c e : f u n c t i o n ( ) { } , y y : { } , s y m b o l s _ : { e r r o r : 2 , s t a r t : 3 , m e r m a i d D o c : 4 , d i r e c t i o n : 5 , d i r e c t i v e : 6 , d i r e c t i o n _ t b : 7 , d i r e c t i o n _ b t : 8 , d i r e c t i o n _ r l : 9 , d i r e c t i o n _ l r : 1 0 , g r a p h C o n f i g : 1 1 , o p e n D i r e c t i v e : 1 2 , t y p e D i r e c t i v e : 1 3 , c l o s e D i r e c t i v e : 1 4 , N E W L I N E : 1 5 , " : " : 1 6 , a r g D i r e c t i v e : 1 7 , o p e n _ d i r e c t i v e : 1 8 , t y p e _ d i r e c t i v e : 1 9 , a r g _ d i r e c t i v e : 2 0 , c l o s e _ d i r e c t i v e : 2 1 , C 4 _ C O N T E X T : 2 2 , s t a t e m e n t s : 2 3 , E O F : 2 4 , C 4 _ C O N T A I N E R : 2 5 , C 4 _ C O M P O N E N T : 2 6 , C 4 _ D Y N A M I C : 2 7 , C 4 _ D E P L O Y M E N T : 2 8 , o t h e r S t a t e m e n t s : 2 9 , d i a g r a m S t a t e m e n t s : 3 0 , o t h e r S t a t e m e n t : 3 1 , t i t l e : 3 2 , a c c D e s c r i p t i o n : 3 3 , a c c _ t i t l e : 3 4 , a c c _ t i t l e _ v a l u e : 3 5 , a c c _ d e s c r : 3 6 , a c c _ d e s c r _ v a l u e : 3 7 , a c c _ d e s c r _ m u l t i l i n e _ v a l u e : 3 8 , b o u n d a r y S t a t e m e n t : 3 9 , b o u n d a r y S t a r t S t a t e m e n t : 4 0 , b o u n d a r y S t o p S t a t e m e n t : 4 1 , b o u n d a r y S t a r t : 4 2 , L B R A C E : 4 3 , E N T E R P R I S E _ B O U N D A R Y : 4 4 , a t t r i b u t e s : 4 5 , S Y S T E M _ B O U N D A R Y : 4 6 , B O U N D A R Y : 4 7 , C O N T A I N E R _ B O U N D A R Y : 4 8 , N O D E : 4 9 , N O D E _ L : 5 0 , N O D E _ R : 5 1 , R B R A C E : 5 2 , d i a g r a m S t a t e m e n t : 5 3 , P E R S O N : 5 4 , P E R S O N _ E X T : 5 5 , S Y S T E M : 5 6 , S Y S T E M _ D B : 5 7 , S Y S T E M _ Q U E U E : 5 8 , S Y S T E M _ E X T : 5 9 , S Y S T E M _ E X T _ D B : 6 0 , S Y S T E M _ E X T _ Q U E U E : 6 1 , C O N T A I N E R : 6 2 , C O N T A I N E R _ D B : 6 3 , C O N T A I N E R _ Q U E U E : 6 4 , C O N T A I N E R _ E X T : 6 5 , C O N T A I N E R _ E X T _ D B : 6 6 , C O N T A I N E R _ E X T _ Q U E U E : 6 7 , C O M P O N E N T : 6 8 , C O M P O N E N T _ D B : 6 9 , C O M P O N E N T _ Q U E U E : 7 0 , C O M P O N E N T _ E X T : 7 1 , C O M P O N E N T _ E X T _ D B : 7 2 , C O M P O N E N T _ E X T _ Q U E U E : 7 3 , R E L : 7 4 , B I R E L : 7 5 , R E L _ U : 7 6 , R E L _ D : 7 7 , R E L _ L : 7 8 , R E L _ R : 7 9 , R E L _ B : 8 0 , R E L _ I N D E X : 8 1 , U P D A T E _ E L _ S T Y L E : 8 2 , U P D A T E _ R E L _ S T Y L E : 8 3 , U P D A T E _ L A Y O U T _ C O N F I G : 8 4 , a t t r i b u t e : 8 5 , S T R : 8 6 , S T R _ K E Y : 8 7 , S T R _ V A L U E : 8 8 , A T T R I B U T E : 8 9 , A T T R I B U T E _ E M P T Y : 9 0 , $ a c c e p t : 0 , $ e n d : 1 } , t e r m i n a l s _ : { 2 : " e r r o r " , 7 : " d i r e c t i o n _ t b " , 8 : " d i r e c t i o n _ b t " , 9 : " d i r e c t i o n _ r l " , 1 0 : " d i r e c t i o n _ l r " , 1 5 : " N E W L I N E " , 1 6 : " : " , 1 8 : " o p e n _ d i r e c t i v e " , 1 9 : " t y p e _ d i r e c t i v e " , 2 0 : " a r g _ d i r e c t i v e " , 2 1 : " c l o s e _ d i r e c t i v e " , 2 2 : " C 4 _ C O N T E X T " , 2 4 : " E O F " , 2 5 : " C 4 _ C O N T A I N E R " , 2 6 : " C 4 _ C O M P O N E N T " , 2 7 : " C 4 _ D Y N A M I C " , 2 8 : " C 4 _ D E P L O Y M E N T " , 3 2 : " t i t l e " , 3 3 : " a c c D e s c r i p t i o n " , 3 4 : " a c c _ t i t l e " , 3 5 : " a c c _ t i t l e _ v a l u e " , 3 6 : " a c c _ d e s c r " , 3 7 : " a c c _ d e s c r _ v a l u e " , 3 8 : " a c c _ d e s c r _ m u l t i l i n e _ v a l u e " , 4 3 : " L B R A C E " , 4 4 : " E N T E R P R I S E _ B O U N D A R Y " , 4 6 : " S Y S T E M _ B O U N D A R Y " , 4 7 : " B O U N D A R Y " , 4 8 : " C O N T A I N E R _ B O U N D A R Y " , 4 9 : " N O D E " , 5 0 : " N O D E _ L " , 5 1 : " N O D E _ R " , 5 2 : " R B R A C E " , 5 4 : " P E R S O N " , 5 5 : " P E R S O N _ E X T " , 5 6 : " S Y S T E M " , 5 7 : " S Y S T E M _ D B " , 5 8 : " S Y S T E M _ Q U E U E " , 5 9 : " S Y S T E M _ E X T " , 6 0 : " S Y S T 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +No.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ke.join(", ")+", got '"+(this.terminals_[Os]||Os)+"'":kr="Parse error on line "+(Mc+1)+": Unexpected "+(Os==E0?"end of input":"'"+(this.terminals_[Os]||Os)+"'"),this.parseError(kr,{text:No.match,token:this.terminals_[Os]||Os,line:No.yylineno,loc:Pu,expected:Ke})}if(Fu[0]instanceof Array&&Fu.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Tl+", token: "+Os);switch(Fu[0]){case 1:Oi.push(Os),Js.push(No.yytext),Vn.push(No.yylloc),Oi.push(Fu[1]),Os=null,bp=No.yyleng,Er=No.yytext,Mc=No.yylineno,Pu=No.yylloc;break;case 2:if(ll=this.productions_[Fu[1]][1],nd. $ =Js[Js.length-ll],nd._ $ ={first_line:Vn[Vn.length-(ll||1)].first_line,last_line:Vn[Vn.length-1].last_line,first_column:Vn[Vn.length-(ll||1)].first_column,last_column:Vn[Vn.length-1].last_column},lo&&(nd._ $ .range=[Vn[Vn.length-(ll||1)].range[0],Vn[Vn.length-1].range[1]]),zo=this.performAction.apply(nd,[Er,bp,Mc,ta.yy,Fu[1],Js,Vn].concat(Fd)),typeof zo<"u")return zo;ll&&(Oi=Oi.slice(0,-1*ll*2),Js=Js.slice(0,-1*ll),Vn=Vn.slice(0,-1*ll)),Oi.push(this.productions_[Fu[1]][0]),Js.push(nd. $ ),Vn.push(nd._ $ ),Vi=Xc[Oi[Oi.length-2]][Oi[Oi.length-1]],Oi.push(Vi);break;case 3:return!0}}return!0}},Aa=function(){var Ga={EOF:1,parseError:function(qr,Oi){if(this.yy.parser)this.yy.parser.parseError(qr,Oi);else throw new Error(qr)},setInput:function(_r,qr){return this.yy=qr||this.yy||{},this._input=_r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _r=this._input[0];this.yytext+=_r,this.yyleng++,this.offset++,this.match+=_r,this.matched+=_r;var qr=_r.match(/(?: \r \n ?| \n ).*/g);return qr?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_r},unput:function(_r){var qr=_r.length,Oi=_r.split(/(?: \r \n ?| \n )/g);this._input=_r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-qr),this.offset-=qr;var pr=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Oi.length-1&&(this.yylineno-=Oi.length-1);var Js=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Oi?(Oi.length===pr.length?this.yylloc.first_column:0)+pr[pr.length-Oi.length].length-Oi[0].length:this.yylloc.first_column-qr},this.options.ranges&&(this.yylloc.range=[Js[0],Js[0]+this.yyleng-qr]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_r){this.unput(this.match.slice(_r))},pastInput:function(){var _r=this.matched.substr(0,this.matched.length-this.match.length);return(_r.length>20?"...":"")+_r.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var _r=this.match;return _r.length<20&&(_r+=this._input.substr(0,20-_r.length)),(_r.substr(0,20)+(_r.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var _r=this.pastInput(),qr=new Array(_r.length+1).join("-");return _r+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +qr+"^"},test_match:function(_r,qr){var Oi,pr,Js;if(this.options.backtrack_lexer&&(Js={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Js.yylloc.range=this.yylloc.range.slice(0))),pr=_r[0].match(/(?: \r \n ?| \n ).*/g),pr&&(this.yylineno+=pr.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:pr?pr[pr.length-1].length-pr[pr.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+_r[0].length},this.yytext+=_r[0],this.match+=_r[0],this.matches=_r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_r[0].length),this.matched+=_r[0],Oi=this.performAction.call(this,this.yy,this,qr,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Oi)return Oi;if(this._backtrack){for(var Vn in Js)this[Vn]=Js[Vn];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _r,qr,Oi,pr;this._more||(this.yytext="",this.match="");for(var Js=this._currentRules(),Vn=0;Vn<Js.length;Vn++)if(Oi=this._input.match(this.rules[Js[Vn]]),Oi&&(!qr||Oi[0].length>qr[0].length)){if(qr=Oi,pr=Vn,this.options.backtrack_lexer){if(_r=this.test_match(Oi,Js[Vn]),_r!==!1)return _r;if(this._backtrack){qr=!1;continue}else return!1}else if(!this.options.flex)break}return qr?(_r=this.test_match(qr,Js[pr]),_r!==!1?_r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var qr=this.next();return qr||this.lex()},begin:function(qr){this.conditionStack.push(qr)},popState:function(){var qr=this.conditionStack.length-1;return qr>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(qr){return qr=this.conditionStack.length-1-Math.abs(qr||0),qr>=0?this.conditionStack[qr]:"INITIAL"},pushState:function(qr){this.begin(qr)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(qr,Oi,pr,Js){switch(pr){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:break;case 19:c;break;case 20:return 15;case 21:break;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:return this.begin("node"),49;case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:return this.begin("rel_u"),76;case 58:return this.begin("rel_u"),76;case 59:return this.begin("rel_d"),77;case 60:return this.begin("rel_d"),77;case 61:return this.begin("rel_l"),78;case 62:return this.begin("rel_l"),78;case 63:return this.begin("rel_r"),79;case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:this.popState(),this.popState();break;case 74:return 90;case 75:break;case 76:return 90;case 77:this.begin("string");break;case 78:this.popState();break;case 79:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 84:this.popState(),this.popState();break;case 85:return"STR";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%% \{ )/,/^(?:.
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . personBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . personBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,init:i=>{aNt.setConf(i.c4)}}},Symbol.toStringTag,{value:"Module"}));var Mdt=function(){var i=function(zb,os,As,ma){for(As=As||{},ma=zb.length;ma--;As[zb[ma]]=os);return As},a=[1,9],f=[1,7],p=[1,6],v=[1,8],m=[1,20,21,22,23,38,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],b=[2,10],E=[1,20],C=[1,21],A=[1,22],P=[1,23],F=[1,30],j=[1,32],R=[1,33],H=[1,34],Y=[1,56],rt=[1,55],J=[1,36],it=[1,37],ht=[1,38],Tt=[1,39],xt=[1,40],pt=[1,51],ct=[1,53],yt=[1,49],st=[1,54],Et=[1,50],dt=[1,57],bt=[1,52],Ct=[1,58],tt=[1,59],Pt=[1,41],gt=[1,42],Ft=[1,43],X=[1,44],Rt=[1,62],Bt=[1,67],wt=[1,20,21,22,23,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],Ot=[1,71],Vt=[1,70],qe=[1,72],_n=[20,21,23,84,86],Te=[1,98],Wn=[1,103],Ae=[1,102],ne=[1,99],ke=[1,95],Ve=[1,101],Ee=[1,97],He=[1,104],Ce=[1,100], $ e=[1,105],ye=[1,96],fn=[20,21,22,23,84,86],Yt=[20,21,22,23,55,84,86],Mi=[20,21,22,23,40,53,55,57,59,61,63,65,67,69,72,74,76,77,79,84,86,97,110,113,114,117,119,122,123,124],qt=[20,21,23],zi=[20,21,23,53,69,84,86,97,110,113,114,117,119,122,123,124],Se=[1,12,20,21,22,23,24,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],ki=[53,69,97,110,113,114,117,119,122,123,124],Ri=[1,134],pi=[1,133],bi=[1,141],dn=[1,155],Nn=[1,156],Wr=[1,157],Li=[1,158],is=[1,143],Ts=[1,145],Aa=[1,149],Xi=[1,150],Ga=[1,151],_r=[1,152],qr=[1,153],Oi=[1,154],pr=[1,159],Js=[1,160],Vn=[1,139],Xc=[1,140],Er=[1,147],Mc=[1,142],bp=[1,146],fm=[1,144],E0=[20,21,22,23,38,43,45,47,49,53,69,92,93,94,95,96,97,110,113,114,117,119,122,123,124,129,130,131,132],Fd=[1,162],No=[20,21,22,23,26,53,69,97,113,114,117,119,122,123,124],ta=[1,182],bu=[1,178],Pu=[1,179],lo=[1,183],mo=[1,180],Os=[1,181],Tl=[12,21,22,24],Fu=[86,124,127],zo=[20,21,22,23,24,26,38,40,43,53,69,84,92,93,94,95,96,97,98,113,117,119,122,123,124],nd=[22,114],sf=[42,58,60,62,64,66,71,73,75,76,78,80,124,125,126],ll=[1,250],Vi=[1,248],Ke=[1,252],kr=[1,246],ni=[1,247],eo=[1,249],Dc=[1,251],Ju=[1,253],Qo=[1,270],Rf=[20,21,23,114],rh=[20,21,22,23,69,92,113,114,117,118,119,120],dm={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,textNoTags:39,SQS:40,text:41,SQE:42,end:43,direction:44,acc_title:45,acc_title_value:46,acc_descr:47,acc_descr_value:48,acc_descr_multiline_value:49,link:50,node:51,styledVertex:52,AMP:53,vertex:54,STYLE_SEPARATOR:55,idString:56,DOUBLECIRCLESTART:57,DOUBLECIRCLEEND:58,PS:59,PE:60,"(-":61,"-)":62,STADIUMSTART:63,STADIUMEND:64,SUBROUTINESTART:65,SUBROUTINEEND:66,VERTEX_WITH_PROPS_START:67,"NODE_STRING[field]":68,COLON:69,"NODE_STRING[value]":70,PIPE:71,CYLINDERSTART:72,CYLINDEREND:73,DIAMOND_START:74,DIAMOND_STOP:75,TAGEND:76,TRAPSTART:77,TRAPEND:78,INVTRAPSTART:79,INVTRAPEND:80,linkStatement:81,arrowText:82,TESTSTR:83,START_LINK:84,edgeText:85,LINK:86,edgeTextToken:87,STR:88,MD_STR:89,textToken:90,keywords:91,STYLE:92,LINKSTYLE:93,CLASSDEF:94,CLASS:95,CLICK:96,DOWN:97,UP:98,textNoTagsToken:99,stylesOpt:100,"idString[vertex]":101,"idString[class]":102,CALLBACKNAME:103,CALLBACKARGS:104,HREF:105,LINK_TARGET:106,"STR[link]":107,"STR[tooltip]":108,alphaNum:109,DEFAULT:110,numList:111,INTERPOLATE:112,NUM:113,COMMA:114,style:115,styleComponent:116,NODE_STRING:117,UNIT:118,BRKT:119,PCT:120,idStringToken:121,MINUS:122,MULT:123,UNICODE_TEXT:124,TEXT:125,TAGSTART:126,EDGE_TEXT:127,alphaNumToken:128,direction_tb:129,direction_bt:130,direction_rl:131,direction_lr:132, $ accept:0, $ end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +au.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +ou.join(", ")+", got '"+(this.terminals_[jf]||jf)+"'":z5="Parse error on line "+(af+1)+": Unexpected "+(jf==gm?"end of input":"'"+(this.terminals_[jf]||jf)+"'"),this.parseError(z5,{text:au.match,token:this.terminals_[jf]||jf,line:au.yylineno,loc:vp,expected:ou})}if(Bd[0]instanceof Array&&Bd.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ov+", token: "+jf);switch(Bd[0]){case 1:ma.push(jf),Qc.push(au.yytext),me.push(au.yylloc),ma.push(Bd[1]),jf=null,gk=au.yyleng,Oe=au.yytext,af=au.yylineno,vp=au.yylloc;break;case 2:if(wg=this.productions_[Bd[1]][1],cv. $ =Qc[Qc.length-wg],cv._ $ ={first_line:me[me.length-(wg||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(wg||1)].first_column,last_column:me[me.length-1].last_column},D9&&(cv._ $ .range=[me[me.length-(wg||1)].range[0],me[me.length-1].range[1]]),T3=this.performAction.apply(cv,[Oe,gk,af,vg.yy,Bd[1],Qc,me].concat(M9)),typeof T3<"u")return T3;wg&&(ma=ma.slice(0,-1*wg*2),Qc=Qc.slice(0,-1*wg),me=me.slice(0,-1*wg)),ma.push(this.productions_[Bd[1]][0]),Qc.push(cv. $ ),me.push(cv._ $ ), $ 5=bg[ma[ma.length-2]][ma[ma.length-1]],ma.push( $ 5);break;case 3:return!0}}return!0}},L9=function(){var zb={EOF:1,parseError:function(As,ma){if(this.yy.parser)this.yy.parser.parseError(As,ma);else throw new Error(As)},setInput:function(os,As){return this.yy=As||this.yy||{},this._input=os,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var os=this._input[0];this.yytext+=os,this.yyleng++,this.offset++,this.match+=os,this.matched+=os;var As=os.match(/(?: \r \n ?| \n ).*/g);return As?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),os},unput:function(os){var As=os.length,ma=os.split(/(?: \r \n ?| \n )/g);this._input=os+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-As),this.offset-=As;var vi=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ma.length-1&&(this.yylineno-=ma.length-1);var Qc=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ma?(ma.length===vi.length?this.yylloc.first_column:0)+vi[vi.length-ma.length].length-ma[0].length:this.yylloc.first_column-As},this.options.ranges&&(this.yylloc.range=[Qc[0],Qc[0]+this.yyleng-As]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(os){this.unput(this.match.slice(os))},pastInput:function(){var os=this.matched.substr(0,this.matched.length-this.match.length);return(os.length>20?"...":"")+os.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var os=this.match;return os.length<20&&(os+=this._input.substr(0,20-os.length)),(os.substr(0,20)+(os.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var os=this.pastInput(),As=new Array(os.length+1).join("-");return os+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +As+"^"},test_match:function(os,As){var ma,vi,Qc;if(this.options.backtrack_lexer&&(Qc={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Qc.yylloc.range=this.yylloc.range.slice(0))),vi=os[0].match(/(?: \r \n ?| \n ).*/g),vi&&(this.yylineno+=vi.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:vi?vi[vi.length-1].length-vi[vi.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+os[0].length},this.yytext+=os[0],this.match+=os[0],this.matches=os,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(os[0].length),this.matched+=os[0],ma=this.performAction.call(this,this.yy,this,As,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ma)return ma;if(this._backtrack){for(var me in Qc)this[me]=Qc[me];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var os,As,ma,vi;this._more||(this.yytext="",this.match="");for(var Qc=this._currentRules(),me=0;me<Qc.length;me++)if(ma=this._input.match(this.rules[Qc[me]]),ma&&(!As||ma[0].length>As[0].length)){if(As=ma,vi=me,this.options.backtrack_lexer){if(os=this.test_match(ma,Qc[me]),os!==!1)return os;if(this._backtrack){As=!1;continue}else return!1}else if(!this.options.flex)break}return As?(os=this.test_match(As,Qc[vi]),os!==!1?os:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var As=this.next();return As||this.lex()},begin:function(As){this.conditionStack.push(As)},popState:function(){var As=this.conditionStack.length-1;return As>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(As){return As=this.conditionStack.length-1-Math.abs(As||0),As>=0?this.conditionStack[As]:"INITIAL"},pushState:function(As){this.begin(As)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(As,ma,vi,Qc){switch(vi){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:return this.begin("acc_title"),45;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),47;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:this.begin("callbackname");break;case 13:this.popState();break;case 14:this.popState(),this.begin("callbackargs");break;case 15:return 103;case 16:this.popState();break;case 17:return 104;case 18:return"MD_STR";case 19:this.popState();break;case 20:this.begin("md_string");break;case 21:return"STR";case 22:this.popState();break;case 23:this.pushState("string");break;case 24:return 92;case 25:return 110;case 26:return 93;case 27:return 112;case 28:return 94;case 29:return 95;case 30:return 105;case 31:this.begin("click");break;case 32:this.popState();break;case 33:return 96;case 34:return As.lex.firstGraph()&&this.begin("dir"),24;case 35:return As.lex.firstGraph()&&this.begin("dir"),24;case 36:return As.lex.firstGraph()&&this.begin("dir"),24;case 37:return 38;case 38:return 43;case 39:return 106;case 40:return 106;case 41:return 106;case 42:return 106;case 43:return this.popState(),25;case 44:return this.popState(),26;case 45:return this.popState(),26;case 46:return this.popState(),26;case 47:return this.popState(),26;case 48:return this.popState(),26;case 49:return this.popState(),26;case 50:return this.popState(),26;case 51:return this.popState(),26;case 52:return this.popState(),26;case 53:return this.popState(),26;case 54:return 129;case 55:return 130;case 56:return 131;case 57:return 132;case 58:return 113;case 59:return 119;case 60:return 55;case 61:return 69;case 62:return 53;case 63:return 20;case 64:return 114;case 65:return 123;case 66:return this.popState(),86;case 67:return this.pushState("edgeText"),84;case 68:return 127;case 69:return this.popState(),86;case 70:return this.pushState("thickEdgeText"),84;case 71:return 127;case 72:return this.popState(),86;case 73:return this.pushState("dottedEdgeText"),84;case 74:return 127;case 75:return 86;case 76:return this.popState(),62;case 77:return"TEXT";case 78:return this.pushState("ellipseText"),61;case 79:return this.popState(),64;case 80:return this.pushState("text"),63;case 81:return this.popState(),66;case 82:return this.pushState("text"),65;case 83:return 67;case 84:return this.pushState("text"),76;case 85:return this.popState(),73;case 86:return this.pushState("text"),72;case 87:return this.popState(),58;case 88:return this.pushState("text"),57;case 89:return this.popState(),78;case 90:return this.popState(),80;case 91:return 125;case 92:return this.pushState("trapText"),77;case 93:return this.pushState("trapText"),79;case 94:return 126;case 95:return 76;case 96:return 98;case 97:return"SEP";case 98:return 97;case 99:return 123;case 100:return 119;case 101:return 53;case 102:return 117;case 103:return 122;case 104:return 124;case 105:return this.popState(),71;case 106:return this.pushState("text"),71;case 107:return this.popState(),60;case 108:return this.pushState("text"),59;case 1
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),v=0;v<p.length;v++)f.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(p[v]);return p3(f,a.labelStyle),f}function rBe(i){for(var a="",f=!1,p,v=0;v<i.length;++v)if(p=i[v],f){switch(p){case"n":a+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;break;default:a+=p}f=!1}else p===" \\ "?f=!0:a+=p;return a}function h0t(i,a,f){var p=a.label,v=i.append("g");a.labelType==="svg"?eBe(v,a):typeof p!="string"||a.labelType==="html"?l0t(v,a):nBe(v,a);var m=v.node().getBBox(),b;switch(f){case"top":b=-a.height/2;break;case"bottom":b=a.height/2-m.height;break;default:b=-m.height/2}return v.attr("transform","translate("+-m.width/2+","+b+")"),v}var f0t=function(i,a){var f=a.nodes().filter(function(m){return lFt(a,m)}),p=i.selectAll("g.cluster").data(f,function(m){return m});am(p.exit(),a).style("opacity",0).remove();var v=p.enter().append("g").attr("class","cluster").attr("id",function(m){var b=a.node(m);return b.id}).style("opacity",0).each(function(m){var b=a.node(m),E=fr(this);fr(this).append("rect");var C=E.append("g").attr("class","label");h0t(C,b,b.clusterLabelPos)});return p=p.merge(v),p=am(p,a).style("opacity",1),p.selectAll("rect").each(function(m){var b=a.node(m),E=fr(this);p3(E,b.style)}),p};function iBe(i){f0t=i}let d0t=function(i,a){var f=i.selectAll("g.edgeLabel").data(a.edges(),function(v){return hFt(v)}).classed("update",!0);f.exit().remove(),f.enter().append("g").classed("edgeLabel",!0).style("opacity",0),f=i.selectAll("g.edgeLabel"),f.each(function(v){var m=fr(this);m.select(".label").remove();var b=a.edge(v),E=h0t(m,a.edge(v),0).classed("label",!0),C=E.node().getBBox();b.labelId&&E.attr("id",b.labelId),Va(b,"width")||(b.width=C.width),Va(b,"height")||(b.height=C.height)});var p;return f.exit?p=f.exit():p=f.selectAll(null),am(p,a).style("opacity",0).remove(),f};function sBe(i){d0t=i}function dFt(i,a){return i.intersect(a)}var g0t=function(i,a,f){var p=i.selectAll("g.edgePath").data(a.edges(),function(b){return hFt(b)}).classed("update",!0),v=lBe(p,a);hBe(p,a);var m=p.merge!==void 0?p.merge(v):p;return am(m,a).style("opacity",1),m.each(function(b){var E=fr(this),C=a.edge(b);C.elem=this,C.id&&E.attr("id",C.id),fFt(E,C.class,(E.classed("update")?"update ":"")+"edgePath")}),m.selectAll("path.path").each(function(b){var E=a.edge(b);E.arrowheadId=fK("arrowhead");var C=fr(this).attr("marker-end",function(){return"url("+oBe(location.href,E.arrowheadId)+")"}).style("fill","none");am(C,a).attr("d",function(A){return cBe(a,A)}),p3(C,E.style)}),m.selectAll("defs *").remove(),m.selectAll("defs").each(function(b){var E=a.edge(b),C=f[E.arrowhead];C(fr(this),E.arrowheadId,E,"arrowhead")}),m};function aBe(i){g0t=i}function oBe(i,a){var f=i.split("#")[0];return f+"#"+a}function cBe(i,a){var f=i.edge(a),p=i.node(a.v),v=i.node(a.w),m=f.points.slice(1,f.points.length-1);return m.unshift(dFt(p,m[0])),m.push(dFt(v,m[m.length-1])),gFt(f,m)}function gFt(i,a){var f=(QE||G8e.line)().x(function(p){return p.x}).y(function(p){return p.y});return(f.curve||f.interpolate)(i.curve),f(a)}function uBe(i){var a=i.getBBox(),f=i.ownerSVGElement.getScreenCTM().inverse().multiply(i.getScreenCTM()).translate(a.width/2,a.height/2);return{x:f.e,y:f.f}}function lBe(i,a){var f=i.enter().append("g").attr("class","edgePath").style("opacity",0);return f.append("path").attr("class","path").attr("d",function(p){var v=a.edge(p),m=a.node(p.v).elem,b=b9(v.points.length).map(function(){return uBe(m)});return gFt(v,b)}),f.append("defs"),f}function hBe(i,a){var f=i.exit();am(f,a).style("opacity",0).remove()}var p0t=function(i,a,f){var p=a.nodes().filter(function(b){return!lFt(a,b)}),v=i.selectAll("g.node").data(p,function(b){return b}).classed("update",!0);v.exit().remove(),v.enter().append("g").attr("class","node").style("opacity",0),v=i.selectAll("g.node"),v.each(function(b){var E=a.node(b),C=fr(this);fFt(C,E.class,(C.classed("update")?"update ":"")+"node"),C.select("g.label").remove();var A=C.append("g").attr("class","label"),P=h0t(A,E),F=f[E.shape],j=fP(P.node().getBBox(),"width","height");E.elem=this,E.id&&C.attr("id",E.id),E.labelId&&A.attr("id",E.labelId),Va(E,"width")&&(j.width=E.width),Va(E,"height")&&(j.height=E.height),j.width+=E.paddingLeft+E.paddingRight,j.height+=E.paddingTop+E.paddingBottom,A.attr("transform","translate("+(E.paddingLeft-E.paddingRight)/2+","+(E.paddingTop-E.paddingBottom)/2+")");var R
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),b.style===void 0&&(P.style=P.style||"stroke: #333; stroke-width: 1.5px;fill:none"),P.labelStyle=P.labelStyle.replace("color:","fill:"))),P.id=E,P.class=C+" "+A,P.minlen=b.length||1,a.setEdge(f.db.lookUpDomId(b.start),f.db.lookUpDomId(b.end),P,p)})},IBe={setConf:DBe,addVertices:LFt,addEdges:MFt,getClasses:function(i,a){return Gt.info("Extracting classes"),a.db.getClasses()},draw:function(i,a,f,p){Gt.info("Drawing flowchart");const{securityLevel:v,flowchart:m}=Me();let b;v==="sandbox"&&(b=fr("#i"+a));const E=fr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),C=v==="sandbox"?b.nodes()[0].contentDocument:document;let A=p.db.getDirection();A===void 0&&(A="TD");const P=m.nodeSpacing||50,F=m.rankSpacing||50,j=new h1({multigraph:!0,compound:!0}).setGraph({rankdir:A,nodesep:P,ranksep:F,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let R;const H=p.db.getSubGraphs();for(let pt=H.length-1;pt>=0;pt--)R=H[pt],p.db.addVertex(R.id,R.title,"group",void 0,R.classes);const Y=p.db.getVertices();Gt.warn("Get vertices",Y);const rt=p.db.getEdges();let J=0;for(J=H.length-1;J>=0;J--){R=H[J],XLt("cluster").append("text");for(let pt=0;pt<R.nodes.length;pt++)Gt.warn("Setting subgraph",R.nodes[pt],p.db.lookUpDomId(R.nodes[pt]),p.db.lookUpDomId(R.id)),j.setParent(p.db.lookUpDomId(R.nodes[pt]),p.db.lookUpDomId(R.id))}LFt(Y,j,a,E,C,p),MFt(rt,j,p);const it=new EBe;MBe.addToRender(it),it.arrows().none=function(ct,yt,st,Et){const bt=ct.append("marker").attr("id",yt).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 0 0 L 0 0 z");p3(bt,st[Et+"Style"])},it.arrows().normal=function(ct,yt){ct.append("marker").attr("id",yt).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const ht=E.select( ` [ id = "${a}" ] ` ),Tt=E.select("#"+a+" g");for(it(Tt,j),Tt.selectAll("g.node").attr("title",function(){return p.db.getTooltip(this.id)}),p.db.indexNodes("subGraph"+J),J=0;J<H.length;J++)if(R=H[J],R.title!=="undefined"){const pt=C.querySelectorAll("#"+a+' [id="'+p.db.lookUpDomId(R.id)+'"] rect'),ct=C.querySelectorAll("#"+a+' [id="'+p.db.lookUpDomId(R.id)+'"]'),yt=pt[0].x.baseVal.value,st=pt[0].y.baseVal.value,Et=pt[0].width.baseVal.value,bt=fr(ct[0]).select(".label");bt.attr("transform", ` translate ( $ { yt + Et / 2 } ,  $ { st + 14 } ) ` ),bt.attr("id",a+"Text");for(let Ct=0;Ct<R.classes.length;Ct++)ct[0].classList.add(R.classes[Ct])}if(!m.htmlLabels){const pt=C.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const ct of pt){const yt=ct.getBBox(),st=C.createElementNS("http://www.w3.org/2000/svg","rect");st.setAttribute("rx",0),st.setAttribute("ry",0),st.setAttribute("width",yt.width),st.setAttribute("height",yt.height),ct.insertBefore(st,ct.firstChild)}}e9(j,ht,m.diagramPadding,m.useMaxWidth),Object.keys(Y).forEach(function(pt){const ct=Y[pt];if(ct.link){const yt=E.select("#"+a+' [id="'+p.db.lookUpDomId(pt)+'"]');if(yt){const st=C.createElementNS("http://www.w3.org/2000/svg","a");st.setAttributeNS("http://www.w3.org/2000/svg","class",ct.classes.join(" ")),st.setAttributeNS("http://www.w3.org/2000/svg","href",ct.link),st.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),v==="sandbox"?st.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):ct.linkTarget&&st.setAttributeNS("http://www.w3.org/2000/svg","target",ct.linkTarget);const Et=yt.insert(function(){return st},":first-child"),dt=yt.select(".label-container");dt&&Et.append(function(){return dt.node()});const bt=yt.select(".label");bt&&Et.append(function(){return bt.node()})}}})}};function L5(i){var a={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:OBe(i),edges:NBe(i)};return tf(i.graph())||(a.value=kOe(i.graph())),a}function OBe(i){return Pf(i.nodes(),function(a){var
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ;break}case-3:{b= ` \ r  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
										 
							
							
								` ;break}case-2:{b=a?" ":"	";break}case-1:{if(!a&&v)continue;b=" ";break}default:b=String.fromCharCode(m)}v=m===-2,p.push(b)}return p.join("")}const mje={[42]:gp,[43]:gp,[45]:gp,[48]:gp,[49]:gp,[50]:gp,[51]:gp,[52]:gp,[53]:gp,[54]:gp,[55]:gp,[56]:gp,[57]:gp,[62]:jFt},yje={[91]:ERe},xje={[-2]:E0t,[-1]:E0t,[32]:E0t},kje=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:{null:[42,95]},contentInitial:yje,disable:{null:[]},document:mje,flow:{[35]:LRe,[42]:pK,[45]:[YFt,pK],[60]:ORe,[61]:YFt,[95]:pK,[96]:HFt,[126]:HFt},flowInitial:xje,insideSpan:{null:[x0t,fje]},string:{[38]:qFt,[92]: $ Ft},text:{[-5]:_0t,[-4]:_0t,[-3]:_0t,[33]:YRe,[38]:qFt,[42]:x0t,[60]:[eRe,RRe],[91]:QRe,[92]:[SRe, $ Ft],[93]:T0t,[95]:x0t,[96]:dRe}},Symbol.toStringTag,{value:"Module"}));function Eje(i={}){const a= $ Be([kje].concat(i.extensions||[])),f={defined:[],lazy:{},constructs:a,content:p(KBe),document:p(XBe),flow:p(lje),string:p(dje),text:p(gje)};return f;function p(v){return m;function m(b){return bje(f,v,b)}}}const ZFt=/[ \0 \t \n \r ]/g;function Tje(){let i=1,a="",f=!0,p;return v;function v(m,b,E){const C=[];let A,P,F,j,R;for(m=a+m.toString(b),F=0,a="",f&&(m.charCodeAt(0)===65279&&F++,f=void 0);F<m.length;){if(ZFt.lastIndex=F,A=ZFt.exec(m),j=A&&A.index!==void 0?A.index:m.length,R=m.charCodeAt(j),!A){a=m.slice(F);break}if(R===10&&F===j&&p)C.push(-3),p=void 0;else switch(p&&(C.push(-5),p=void 0),F<j&&(C.push(m.slice(F,j)),i+=j-F),R){case 0:{C.push(65533),i++;break}case 9:{for(P=Math.ceil(i/4)*4,C.push(-2);i++<P;)C.push(-1);break}case 10:{C.push(-4),i=1;break}default:p=!0,i=1}F=j+1}return E&&(p&&C.push(-5),a&&C.push(a),C.push(null)),C}}function _je(i){for(;!VFt(i););return i}function JFt(i,a){const f=Number.parseInt(i,a);return f<9||f===11||f>13&&f<32||f>126&&f<160||f>55295&&f<57344||f>64975&&f<65008||(f&65535)===65535||(f&65535)===65534||f>1114111?"<22> ":String.fromCharCode(f)}const Cje=/ \\ ([!-/:-@[- ` { - ~ ] ) | & ( # ( ? : \ d { 1 , 7 } | x [ \ da - f ] { 1 , 6 } ) | [ \ da - z ] { 1 , 31 } ) ; / g i ; f u n c t i o n   S j e ( i ) { r e t u r n   i . r e p l a c e ( C j e , A j e ) } f u n c t i o n   A j e ( i , a , f ) { i f ( a ) r e t u r n   a ; i f ( f . c h a r C o d e A t ( 0 ) = = = 3 5 ) { c o n s t   v = f . c h a r C o d e A t ( 1 ) , m = v = = = 1 2 0 | | v = = = 8 8 ; r e t u r n   J F t ( f . s l i c e ( m ? 2 : 1 ) , m ? 1 6 : 1 0 ) } r e t u r n   k 0 t ( f ) | | i } f u n c t i o n   b K ( i ) { r e t u r n ! i | | t y p e o f   i ! = " o b j e c t " ? " " : " p o s i t i o n " i n   i | | " t y p e " i n   i ? t B t ( i . p o s i t i o n ) : " s t a r t " i n   i | | " e n d " i n   i ? t B t ( i ) : " l i n e " i n   i | | " c o l u m n " i n   i ? C 0 t ( i ) : " " } f u n c t i o n   C 0 t ( i ) { r e t u r n   e B t ( i & & i . l i n e ) + " : " + e B t ( i & & i . c o l u m n ) } f u n c t i o n   t B t ( i ) { r e t u r n   C 0 t ( i & & i . s t a r t ) + " - " + C 0 t ( i & & i . e n d ) } f u n c t i o n   e B t ( i ) { r e t u r n   i & & t y p e o f   i = = " n u m b e r " ? i : 1 } c o n s t   n B t = { } . h a s O w n P r o p e r t y , r B t = f u n c t i o n ( i , a , f ) { r e t u r n   t y p e o f   a ! = " s t r i n g " & & ( f = a , a = v o i d   0 ) , L j e ( f ) ( _ j e ( E j e ( f ) . d o c u m e n t ( ) . w r i t e ( T j e ( ) ( i , a , ! 0 ) ) ) ) } ; f u n c t i o n   L j e ( i ) { c o n s t   a = { t r a n s f o r m s : [ ] , c a n C o n t a i n E o l s : [ " e m p h a s i s " , " f r a g m e n t " , " h e a d i n g " , " p a r a g r a p h " , " s t r o n g " ] , e n t e r : { a u t o l i n k : E ( q t ) , a u t o l i n k P r o t o c o l : d t , a u t o l i n k E m a i l : d t , a t x H e a d i n g : E ( y e ) , b l o c k Q u o t e : E ( V e ) , c h a r a c t e r E s c a p e : d t , c h a r a c t e r R e f e r e n c e : d t , c o d e F e n c e d : E ( E e ) , c o d e F e n c e d F e n c e I n f o : C , c o d e F e n c e d F e n c e M e t a : C , c o d e I n d e n t e d : E ( E e , C ) , c o d e T e x t : E ( H e , C ) , c o d e T e x t D a t a : d t , d a t a : d t , c o d e F l o w V a l u e : d t , d e f i n i t i o n : E ( C e ) , d e f i n i t i o n D e s t i n a t i o n S t r i n g : C , d e f i n i t i o n L a b e l S t r i n g : C , d e f i n i t i o n T i t l e S t r i n g : C , e m p h a s i s : E ( $ e ) , h a r d B r e a k E s c a p e : E ( f n ) , h a r d B r e a k T r a i l i n g : E ( f n ) , h t m l F l o w : E ( Y t , C ) , h t m l F l o w D a t a : d t , h t m l T e x t : E ( Y t , C ) , h t m l T e x t D a t a : d t , i m a g e : E ( M i ) , l a b e l : C , l i n k : E ( q t ) , l i s t I t e m : E ( S e ) , l i s t I t e m V a l u e : H , l i s t O r d e r e d : E ( z i , R ) , l i s t U n o r d e r e d : E ( z i ) , p a r a g r a p h : E ( k i ) , r e f e r e n c e : _ n , r e f e r e n c e S t r i n g : C , r e s o u r c e D e s t i n a t i o n S t r i n g : C , r e s o u r c e T i t l e S t r i n g : C , s e t e x t H e a d i n g : E ( y e ) , s t r o n g : E ( R i ) , t h e m a t i c B r e a k : E ( b i ) } , e x i t : { a t x H e a d i n g : P ( ) , a t x H e a d i n g S e q u e n c e : c t , a u t o l i n k : P ( ) , a u t o l i n k E m a i l : k e , a u t o l i n k P r o t o c o l : n e , b l o c k Q u o t e : P ( ) , c h a r a c t e r E s c a p e V a l u e : b t , c h a r a c t e r R e f e r e n c e M a r k e r H e x a d e c i m a l : W n , c h a r a c t e r R e f e r e n c e M a r k e r N u m e r i c : W n , c h a r a c t e r R e f e r e n c e V a l u e : A e , c o d e F e n c e d : P ( i t ) , c o d e F e n c e d F e n c e : J , c o d e F e n c e d F e n c e I n f o : Y , c o d e F e n c e d F e n c e M e t a : r t , c o d e F l o w V a l u e : b t , c o d e I n d e n t e d : P ( h t ) , c o d e T e x t : P ( F t ) , c o d e T e x t D a t a : b t , d a t a : b t , d e f i n i t i o n : P ( ) , d e f i n i t i o n D e s t i n a t i o n S t r i n g : p t , d e f i n i t i o n L a b e l S t r i n g : T t , d e f i n i t i o n T i t l e S t r i n g : x t , e m p h a s i s : P ( ) , h a r d B r e a k E s c a p e : P ( t t ) , h a r d B r e a k T r a i l i n g : P ( t t ) , h t m l F l o w : P ( P t ) , h t m l F l o w D a t a : b t , h t m l T e x t : P ( g t ) , h t m l T e x t D a t a : b t , i m a g e : P ( R t )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );return yA(a)}function Ije(i){const a=Dje(i),{children:f}=rBt(a),p=[[]];let v=0;function m(b,E="normal"){b.type==="text"?b.value.split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ).forEach((A,P)=>{P!==0&&(v++,p.push([])),A.split(" ").forEach(F=>{F&&p[v].push({content:F,type:E})})}):(b.type==="strong"||b.type==="emphasis")&&b.children.forEach(C=>{m(C,b.type)})}return f.forEach(b=>{b.type==="paragraph"&&b.children.forEach(E=>{m(E)})}),p}function Oje(i){const{children:a}=rBt(i);function f(p){return p.type==="text"?p.value.replace(/ \n /g,"<br/>"):p.type==="strong"? ` < strong > $ { p . children . map ( f ) . join ( "" ) } < / s t r o n g > ` : p . t y p e = = = " e m p h a s i s " ? ` < e m > $ { p . c h i l d r e n . m a p ( f ) . j o i n ( " " ) } < / e m > ` : p . t y p e = = = " p a r a g r a p h " ? ` < p > $ { p . c h i l d r e n . m a p ( f ) . j o i n ( " " ) } < / p > ` : ` U n s u p p o r t e d   m a r k d o w n :   $ { p . t y p e } ` } r e t u r n   a . m a p ( f ) . j o i n ( " " ) } f u n c t i o n   N j e ( i ) { r e t u r n   I n t l . S e g m e n t e r ? [ . . . n e w   I n t l . S e g m e n t e r ( ) . s e g m e n t ( i ) ] . m a p ( a = > a . s e g m e n t ) : [ . . . i ] } f u n c t i o n   P j e ( i , a ) { c o n s t   f = N j e ( a . c o n t e n t ) ; r e t u r n   a B t ( i , [ ] , f , a . t y p e ) } f u n c t i o n   a B t ( i , a , f , p ) { i f ( f . l e n g t h = = = 0 ) r e t u r n [ { c o n t e n t : a . j o i n ( " " ) , t y p e : p } , { c o n t e n t : " " , t y p e : p } ] ; c o n s t [ v , . . . m ] = f , b = [ . . . a , v ] ; r e t u r n   i ( [ { c o n t e n t : b . j o i n ( " " ) , t y p e : p } ] ) ? a B t ( i , b , m , p ) : ( a . l e n g t h = = = 0 & & v & & ( a . p u s h ( v ) , f . s h i f t ( ) ) , [ { c o n t e n t : a . j o i n ( " " ) , t y p e : p } , { c o n t e n t : f . j o i n ( " " ) , t y p e : p } ] ) } f u n c t i o n   F j e ( i , a ) { i f ( i . s o m e ( ( { c o n t e n t : f } ) = > f . i n c l u d e s ( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )))throw new Error("splitLineToFitWidth does not support newlines in the line");return S0t(i,a)}function S0t(i,a,f=[],p=[]){if(i.length===0)return p.length>0&&f.push(p),f.length>0?f:[];let v="";i[0].content===" "&&(v=" ",i.shift());const m=i.shift()??{content:" ",type:"normal"},b=[...p];if(v!==""&&b.push({content:v,type:"normal"}),b.push(m),a(b))return S0t(i,a,f,b);if(p.length>0)f.push(p),i.unshift(m);else if(m.content){const[E,C]=Pje(a,m);f.push([E]),C.content&&i.unshift(C)}return S0t(i,a,f)}function Bje(i,a){a&&i.attr("style",a)}function Rje(i,a,f,p,v=!1){const m=i.append("foreignObject"),b=m.append("xhtml:div"),E=a.label,C=a.isNode?"nodeLabel":"edgeLabel";b.html( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    < span  class = "${C} ${p}"  ` +(a.labelStyle?'style="'+a.labelStyle+'"':"")+">"+E+"</span>"),Bje(b,a.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",f+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),v&&b.attr("class","labelBkg");let A=b.node().getBoundingClientRect();return A.width===f&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",f+"px"),A=b.node().getBoundingClientRect()),m.style("width",A.width),m.style("height",A.height),m.node()}function oBt(i,a,f){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",a*f-.1+"em").attr("dy",f+"em")}function jje(i,a,f){const p=i.append("text"),v=oBt(p,1,a);cBt(v,f);const m=v.node().getComputedTextLength();return p.remove(),m}function  $ je(i,a,f,p=!1){const m=a.append("g"),b=m.insert("rect").attr("class","background"),E=m.append("text").attr("y","-10.1");let C=0;for(const A of f){const P=j=>jje(m,1.1,j)<=i,F=P(A)?[A]:Fje(A,P);for(const j of F){const R=oBt(E,C,1.1);cBt(R,j),C++}}if(p){const A=E.node().getBBox(),P=2;return b.attr("x",-P).attr("y",-P).attr("width",A.width+2*P).attr("height",A.height+2*P),m.node()}else return E.node()}function cBt(i,a){i.text(""),a.forEach((f,p)=>{const v=i.append("tspan").attr("font-style",f.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",f.type==="strong"?"bold":"normal");p===0?v.text(f.content):v.text(" "+f.content)})}const vK=(i,a="",{style:f="",isTitle:p=!1,classes:v="",useHtmlLabels:m=!0,isNode:b=!0,width:E=200,addSvgBackground:C=!1}={})=>{if(Gt.info("createText",a,f,p,v,m,b,C),m){const A=Oje(a),P={isNode:b,label:eP(A).replace(/fa[blrs]?:fa-[ \w -]+/g,j=> ` < i  class = '${j.replace(":"," ")}' > < / i > ` ) , l a b e l S t y l e : f . r e p l a c e ( " f i l l : " , " c o l o r : " ) } ; r e t u r n   R j e ( i , P , E , v , C ) } e l s e { c o n s t   A = I j e ( a ) ; r e t u r n   $ j e ( E , i , A , C ) } } , O d = a s y n c ( i , a , f , p ) = > { l e t   v ; c o n s t   m = a . u s e H t m l L a b e l s | | c 1 ( M e ( ) . f l o w c h a r t . h t m l L a b e l s ) ; f ? v = f : v = " n o d e   d e f a u l t " ; c o n s t   b = i . i n s e r t ( " g " ) . a t t r ( " c l a s s " , v ) . a t t r ( " i d " , a . d o m I d | | a . i d ) , E = b . i n s e r t ( " g " ) . a t t r ( " c l a s s " , " l a b e l " ) . a t t r ( " s t y l e " , a . l a b e l S t y l e ) ; l e t   C ; a . l a b e l T e x t = = = v o i d   0 ? C = " " : C = t y p e o f   a . l a b e l T e x t = = " s t r i n g " ? a . l a b e l T e x t : a . l a b e l T e x t [ 0 ] ; c o n s t   A = E . n o d e ( ) ; l e t   P ; a . l a b e l T y p e = = = " m a r k d o w n " ? P = v K ( E , s g ( e P ( C ) , M e ( ) ) , { u s e H t m l L a b e l s : m , w i d t h : a . w i d t h | | M e ( ) . f l o w c h a r t . w r a p p i n g W i d t h , c l a s s e s : " m a r k d o w n - n o d e - l a b e l " } ) : P = A . a p p e n d C h i l d ( d p ( s g ( e P ( C ) , M e ( ) ) , a . l a b e l S t y l e , ! 1 , p ) ) ; l e t   F = P . g e t B B o x ( ) ; c o n s t   j = a . p a d d i n g / 2 ; i f ( c 1 ( M e ( ) . f l o w c h a r t . h t m l L a b e l s ) ) { c o n s t   R = P . c h i l d r e n [ 0 ] , H = f r ( P ) , Y = R . g e t E l e m e n t s B y T a g N a m e ( " i m g " ) ; i f ( Y ) { c o n s t   r t = C . r e p l a c e ( / < i m g [ ^ > ] * > / g , " " ) . t r i m ( ) = = = " " ; a w a i t   P r o m i s e . a l l ( [ . . . Y ] . m a p ( J = > n e w   P r o m i s e ( i t = > { f u n c t i o n   h t ( ) { i f ( J . s t y l e . d i s p l a y = " f l e x " , J . s t y l e . f l e x D i r e c t i o n = " c o l u m n " , r t ) { c o n s t   T t = M e ( ) . f o n t S i z e ? M e ( ) . f o n t S i z e : w i n d o w . g e t C o m p u t e d S t y l e ( d o c u m e n t . b o d y ) . f o n t S i z e , x t = 5 ; J . s t y l e . w i d t h = p a r s e I n t ( T t , 1 0 ) * x t + " p x " } e l s e   J . s t y l e . w i d t h = " 1 0 0 % " ; i t ( J ) } s e t T i m e o u t ( ( ) = > { J . c o m p l e t e & & h t ( ) } ) , J . a d d E v e n t L i s t e n e r ( " e r r o r " , h t ) , J . a d d E v e n t L i s t e n e r ( " l o a d " , h t ) } ) ) ) } F = R . g e t B o u n d i n g C l i e n t R e c t ( ) , H . a t t r ( " w i d t h " , F . w i d t h ) , H . a t t r ( " h e i g h t " , F . h e i g h t ) } r e t u r n   m ? E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - F . w i d t h / 2 + " ,   " + - F . h e i g h t / 2 + " ) " ) : E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( 0 ,   " + - F . h e i g h t / 2 + " ) " ) , a . c e n t e r L a b e l & & E . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - F . w i d t h / 2 + " ,   " + - F . h e i g h t / 2 + " ) " ) , E . i n s e r t ( " r e c t " , " : f i r s t - c h i l d " ) , { s h a p e S v g : b , b b o x : F , h a l f P a d d i n g : j , l a b e l : E } } , e f = ( i , a ) = > { c o n s t   f = a . n o d e ( ) . g e t B B o x ( ) ; i . w i d t h = f . w i d t h , i . h e i g h t = f . h e i g h t } ; f u n c t i o n   M 5 ( i , a , f , p ) { r e t u r n   i . i n s e r t ( " p o l y g o n " , " : f i r s t - c h i l d " ) . a t t r ( " p o i n t s " , p . m a p ( f u n c t i o n ( v ) { r e t u r n   v . x + " , " + v . y } ) . j o i n ( "   " ) ) . a t t r ( " c l a s s " , " l a b e l - c o n t a i n e r " ) . a t t r ( " t r a n s f o r m " , " t r a n s l a t e ( " + - a / 2 + " , " + f / 2 + " ) " ) } l e t   X o = { } , c m = { } , u B t = { } ; c o n s t   z j e = ( ) = > { c m = { } , u B t = { } , X o = { } } , w K = ( i , a ) = > ( G t . t r a c e ( " I n   i s D e c e n d a n t " , a , "   " , i , "   =   " , c m [ a ] . i n c l u d e s ( i ) ) , ! ! c m [ a ] . i n c l u d e s ( i ) ) , q j e = ( i , a ) = > ( G t . i n f o ( " D e c e n d a n t s   o f   " , a , "   i s   " , c m [ a ] ) , G t . i n f o ( " E d g e   i s   " , i ) , i . v = = = a | | i . w = = = a ? ! 1 : c m [ a ] ? c m [ a ] . i n c l u d e s ( i . v ) | | w K ( i . v , a ) | | w K ( i . w , a ) | | c m [ a ] . i n c l u d e s ( i . w ) : ( G t . d e b u g ( " T i l t ,   " , a , " , n o t   i n   d e c e n d a n t s " ) , ! 1 ) ) , l B t = ( i , a , f , p ) = > { G t . w a r n ( " C o p y i n g   c h i l d r e n   o f   " , i , " r o o t " , p , " d a t a " , a . n o d e ( i ) , p ) ; c o n s t   v = a . c h i l d r e n ( i ) | | [ ] ; i ! = = p & & v . p u s h ( i ) , G t . w a r n ( " C o p y 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );C.forEach(function(j){Gt.debug( ` Adding  line :  $ { j } ` ),E.append("tspan").text(j).attr("class","title").attr("dy",f.textHeight)});const A=b.node().getBBox(),F=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",A.width+2*f.padding).attr("height",A.height+C.length*f.textHeight+f.padding+.5*f.dividerMargin).node().getBBox().width;return E.node().childNodes.forEach(function(j){j.setAttribute("x",(F-j.getBBox().width)/2)}),m.width=F,m.height=A.height+C.length*f.textHeight+f.padding+.5*f.dividerMargin,m},yK=function(i){let a="",f="",p="",v="",m=i.substring(0,1),b=i.substring(i.length-1,i.length);m.match(/[#+~-]/)&&(v=m);let E=/[ \s \w )~]/;b.match(E)||(f=mBt(b));const C=v===""?0:1;let A=f===""?i.length:i.length-1;i=i.substring(C,A);const P=i.indexOf("("),F=i.indexOf(")");if(P>1&&F>P&&F<=i.length){let R=i.substring(0,P).trim();const H=i.substring(P+1,F);if(a=v+R+"("+HN(H.trim())+")",F<i.length){let Y=i.substring(F+1,F+2);f===""&&!Y.match(E)?(f=mBt(Y),p=i.substring(F+2).trim()):p=i.substring(F+1).trim(),p!==""&&(p.charAt(0)===":"&&(p=p.substring(1).trim()),p=" : "+HN(p),a+=p)}}else a=v+HN(i);return{displayText:a,cssStyle:f}},wBt=function(i,a,f,p){let v=yK(a);const m=i.append("tspan").attr("x",p.padding).text(v.displayText);v.cssStyle!==""&&m.attr("style",v.cssStyle),f||m.attr("dy",p.textHeight)},mBt=function(i){switch(i){case"*":return"font-style:italic;";case" $ ":return"text-decoration:underline;";default:return""}},A0t={getClassTitleString:vBt,drawClass:Qje,drawEdge:Xje,drawNote:Zje,parseMember:yK},yBt=i=>i?" "+i:"",Bb=(i,a)=> ` $ { a || "node default" } $ { yBt ( i . classes ) }  $ { yBt ( i . class ) } ` ,xBt=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=p.width+a.padding,m=p.height+a.padding,b=v+m,E=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];Gt.info("Question main (Circle)");const C=M5(f,b,b,E);return C.attr("style",a.style),ef(a,C),a.intersect=function(A){return Gt.warn("Intersect called"),Th.polygon(a,E,A)},f},Jje=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),p=28,v=[{x:0,y:p/2},{x:p/2,y:0},{x:0,y:-p/2},{x:-p/2,y:0}];return f.insert("polygon",":first-child").attr("points",v.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),a.width=28,a.height=28,a.intersect=function(b){return Th.circle(a,14,b)},f},t $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=4,m=p.height+a.padding,b=m/v,E=p.width+2*b+a.padding,C=[{x:b,y:0},{x:E-b,y:0},{x:E,y:-m/2},{x:E-b,y:-m},{x:b,y:-m},{x:0,y:-m/2}],A=M5(f,E,m,C);return A.attr("style",a.style),ef(a,A),a.intersect=function(P){return Th.polygon(a,C,P)},f},e $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-m/2,y:0},{x:v,y:0},{x:v,y:-m},{x:-m/2,y:-m},{x:0,y:-m/2}];return M5(f,v,m,b).attr("style",a.style),a.width=v+m,a.height=m,a.intersect=function(C){return Th.polygon(a,b,C)},f},n $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a),!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:v-m/6,y:0},{x:v+2*m/6,y:-m},{x:m/6,y:-m}],E=M5(f,v,m,b);return E.attr("style",a.style),ef(a,E),a.intersect=function(C){return Th.polygon(a,b,C)},f},r $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:2*m/6,y:0},{x:v+m/6,y:0},{x:v-2*m/6,y:-m},{x:-m/6,y:-m}],E=M5(f,v,m,b);return E.attr("style",a.style),ef(a,E),a.intersect=function(C){return Th.polygon(a,b,C)},f},i $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:-2*m/6,y:0},{x:v+2*m/6,y:0},{x:v-m/6,y:-m},{x:m/6,y:-m}],E=M5(f,v,m,b);return E.attr("style",a.style),ef(a,E),a.intersect=function(C){return Th.polygon(a,b,C)},f},s $ e=async(i,a)=>{const{shapeSvg:f,bbox:p}=await Od(i,a,Bb(a,void 0),!0),v=p.width+a.padding,m=p.height+a.padding,b=[{x:m/6,y:0},{x:v-m/6,y:0},{x:v+2*m/6,y:-m},{x:-2*m/6,y:-m}],E=M5(f,v,m,b);return E.attr("style",a.style),ef(a,E),a.intersect=function(C){return Th.polygon(a,b,C)},f},a $ e
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  outsidePoint :  $ { JSON . stringify ( a ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  insidePoint  :  $ { JSON . stringify ( f ) } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  node         :  x : $ { i . x }  y : $ { i . y }  w : $ { i . width }  h : $ { i . height } ` );const p=i.x,v=i.y,m=Math.abs(p-f.x),b=i.width/2;let E=f.x<a.x?b-m:b+m;const C=i.height/2,A=Math.abs(a.y-f.y),P=Math.abs(a.x-f.x);if(Math.abs(v-a.y)*b>Math.abs(p-a.x)*C){let F=f.y<a.y?a.y-C-v:v-C-a.y;E=P*F/A;const j={x:f.x<a.x?f.x+E:f.x-P+E,y:f.y<a.y?f.y+A-F:f.y-A+F};return E===0&&(j.x=a.x,j.y=a.y),P===0&&(j.x=a.x),A===0&&(j.y=a.y),Gt.warn( ` abc89  topp / bott  calc ,  Q  $ { A } ,  q  $ { F } ,  R  $ { P } ,  r  $ { E } ` ,j),j}else{f.x<a.x?E=a.x-b-p:E=p-b-a.x;let F=A*E/P,j=f.x<a.x?f.x+P-E:f.x-P+E,R=f.y<a.y?f.y+F:f.y-F;return Gt.warn( ` sides  calc  abc89 ,  Q  $ { A } ,  q  $ { F } ,  R  $ { P } ,  r  $ { E } ` ,{_x:j,_y:R}),E===0&&(j=a.x,R=a.y),P===0&&(j=a.x),A===0&&(R=a.y),{x:j,y:R}}},LBt=(i,a)=>{Gt.warn("abc88 cutPathAtIntersect",i,a);let f=[],p=i[0],v=!1;return i.forEach(m=>{if(Gt.info("abc88 checking point",m,a),!E $ e(a,m)&&!v){const b=T $ e(a,p,m);Gt.warn("abc88 inside",m,p,b),Gt.warn("abc88 intersection",b);let E=!1;f.forEach(C=>{E=E||C.x===b.x&&C.y===b.y}),f.some(C=>C.x===b.x&&C.y===b.y)?Gt.warn("abc88 no intersect",b,f):f.push(b),v=!0}else Gt.warn("abc88 outside",m,p),p=m,v||f.push(m)}),Gt.warn("abc88 returning points",f),f},_ $ e=function(i,a,f,p,v,m){let b=f.points,E=!1;const C=m.node(a.v);var A=m.node(a.w);Gt.info("abc88 InsertEdge: ",f),A.intersect&&C.intersect&&(b=b.slice(1,f.points.length-1),b.unshift(C.intersect(b[0])),Gt.info("Last point",b[b.length-1],A,A.intersect(b[b.length-1])),b.push(A.intersect(b[b.length-1]))),f.toCluster&&(Gt.info("to cluster abc88",p[f.toCluster]),b=LBt(f.points,p[f.toCluster].node),E=!0),f.fromCluster&&(Gt.info("from cluster abc88",p[f.fromCluster]),b=LBt(b.reverse(),p[f.fromCluster].node).reverse(),E=!0);const P=b.filter(J=>!Number.isNaN(J.y));let F;v==="graph"||v==="flowchart"?F=f.curve||IA:F=IA;const j=QE().x(function(J){return J.x}).y(function(J){return J.y}).curve(F);let R;switch(f.thickness){case"normal":R="edge-thickness-normal";break;case"thick":R="edge-thickness-thick";break;case"invisible":R="edge-thickness-thick";break;default:R=""}switch(f.pattern){case"solid":R+=" edge-pattern-solid";break;case"dotted":R+=" edge-pattern-dotted";break;case"dashed":R+=" edge-pattern-dashed";break}const H=i.append("path").attr("d",j(P)).attr("id",f.id).attr("class"," "+R+(f.classes?" "+f.classes:"")).attr("style",f.style);let Y="";switch((Me().flowchart.arrowMarkerAbsolute||Me().state.arrowMarkerAbsolute)&&(Y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Y=Y.replace(/ \( /g," \\ ("),Y=Y.replace(/ \) /g," \\ )")),Gt.info("arrowTypeStart",f.arrowTypeStart),Gt.info("arrowTypeEnd",f.arrowTypeEnd),f.arrowTypeStart){case"arrow_cross":H.attr("marker-start","url("+Y+"#"+v+"-crossStart)");break;case"arrow_point":H.attr("marker-start","url("+Y+"#"+v+"-pointStart)");break;case"arrow_barb":H.attr("marker-start","url("+Y+"#"+v+"-barbStart)");break;case"arrow_circle":H.attr("marker-start","url("+Y+"#"+v+"-circleStart)");break;case"aggregation":H.attr("marker-start","url("+Y+"#"+v+"-aggregationStart)");break;case"extension":H.attr("marker-start","url("+Y+"#"+v+"-extensionStart)");break;case"composition":H.attr("marker-start","url("+Y+"#"+v+"-compositionStart)");break;case"dependency":H.attr("marker-start","url("+Y+"#"+v+"-dependencyStart)");break;case"lollipop":H.attr("marker-start","url("+Y+"#"+v+"-lollipopStart)");break}switch(f.arrowTypeEnd){case"arrow_cross":H.attr("marker-end","url("+Y+"#"+v+"-crossEnd)");break;case"arrow_point":H.attr("marker-end","url("+Y+"#"+v+"-pointEnd)");break;case"arrow_barb":H.attr("marker-end","url("+Y+"#"+v+"-barbEnd)");break;case"arrow_circle":H.attr("marker-end","url("+Y+"#"+v+"-circleEnd)");break;case"aggregation":H.attr("marker-end","url("+Y+"#"+v+"-aggregationEnd)");break;case"extension":H.attr("marker-end","url("+Y+"#"+v+"-extensionEnd)");break;case"composition":H.attr("marker-end","url("+Y+"#"+v+"-compositionEnd)");break;case"dependency":H.attr("marker-end","url("+Y+"#"+v+"-dependencyEnd)");break;case"lollipop":H.attr("marker-end","url("+Y+"#"+v+"-lollipopEnd)");break}let rt={};return E&&(rt.updatedPath=b),rt.original
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),E.style===void 0&&(j.style=j.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),j.labelStyle=j.labelStyle.replace("color:","fill:"),j.id=A,j.classes="flowchart-link "+P+" "+F,a.setEdge(E.start,E.end,j,p)})},M0t={setConf:C $ e,addVertices:IBt,addEdges:OBt,getClasses:function(i,a){return a.db.getClasses()},draw:async function(i,a,f,p){Gt.info("Drawing flowchart");let v=p.db.getDirection();v===void 0&&(v="TD");const{securityLevel:m,flowchart:b}=Me(),E=b.nodeSpacing||50,C=b.rankSpacing||50;let A;m==="sandbox"&&(A=fr("#i"+a));const P=fr(m==="sandbox"?A.nodes()[0].contentDocument.body:"body"),F=m==="sandbox"?A.nodes()[0].contentDocument:document,j=new h1({multigraph:!0,compound:!0}).setGraph({rankdir:v,nodesep:E,ranksep:C,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let R;const H=p.db.getSubGraphs();Gt.info("Subgraphs - ",H);for(let xt=H.length-1;xt>=0;xt--)R=H[xt],Gt.info("Subgraph - ",R),p.db.addVertex(R.id,{text:R.title,type:R.labelType},"group",void 0,R.classes,R.dir);const Y=p.db.getVertices(),rt=p.db.getEdges();Gt.info("Edges",rt);let J=0;for(J=H.length-1;J>=0;J--){R=H[J],XLt("cluster").append("text");for(let xt=0;xt<R.nodes.length;xt++)Gt.info("Setting up subgraphs",R.nodes[xt],R.id),j.setParent(R.nodes[xt],R.id)}IBt(Y,j,a,P,F,p),OBt(rt,j);const it=P.select( ` [ id = "${a}" ] ` ),ht=P.select("#"+a+" g");if(await L0t(ht,j,["point","circle","cross"],"flowchart",a),to.insertTitle(it,"flowchartTitleText",b.titleTopMargin,p.db.getDiagramTitle()),e9(j,it,b.diagramPadding,b.useMaxWidth),p.db.indexNodes("subGraph"+J),!b.htmlLabels){const xt=F.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const pt of xt){const ct=pt.getBBox(),yt=F.createElementNS("http://www.w3.org/2000/svg","rect");yt.setAttribute("rx",0),yt.setAttribute("ry",0),yt.setAttribute("width",ct.width),yt.setAttribute("height",ct.height),pt.insertBefore(yt,pt.firstChild)}}Object.keys(Y).forEach(function(xt){const pt=Y[xt];if(pt.link){const ct=fr("#"+a+' [id="'+xt+'"]');if(ct){const yt=F.createElementNS("http://www.w3.org/2000/svg","a");yt.setAttributeNS("http://www.w3.org/2000/svg","class",pt.classes.join(" ")),yt.setAttributeNS("http://www.w3.org/2000/svg","href",pt.link),yt.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),m==="sandbox"?yt.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):pt.linkTarget&&yt.setAttributeNS("http://www.w3.org/2000/svg","target",pt.linkTarget);const st=ct.insert(function(){return yt},":first-child"),Et=ct.select(".label-container");Et&&st.append(function(){return Et.node()});const dt=ct.select(".label");dt&&st.append(function(){return dt.node()})}}})}},S $ e=(i,a)=>{const f=P9e,p=f(i,"r"),v=f(i,"g"),m=f(i,"b");return NA(p,v,m,a)},NBt=i=> ` . label  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text , span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .flowchart-label .text-outer-tspan {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   text-anchor: middle;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .flowchart-label .text-inner-tspan {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   text-anchor: start;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2.0 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.5 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  /* For html labels only */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelBkg  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { S$e ( i . edgeLabelBackground , . 5 ) } ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // background-color: 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . clusterBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . clusterBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  span , p  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  / *   . c l u s t e r   d i v   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  }  * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchartTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,A $ e=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Ddt,db:h9,renderer:M0t,styles:NBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,IBe.setConf(i.flowchart),h9.clear(),h9.setGen("gen-1")}}},Symbol.toStringTag,{value:"Module"})),L $ e=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Ddt,db:h9,renderer:M0t,styles:NBt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,CIt({flowchart:{arrowMarkerAbsolute:i.arrowMarkerAbsolute}}),M0t.setConf(i.flowchart),h9.clear(),h9.setGen("gen-2")}}},Symbol.toStringTag,{value:"Module"}));var D0t=function(){var i=function(bt,Ct,tt,Pt){for(tt=tt||{},Pt=bt.length;Pt--;tt[bt[Pt]]=Ct);return tt},a=[1,2],f=[1,5],p=[6,9,11,23,25,27,29,30,31,52],v=[1,17],m=[1,18],b=[1,19],E=[1,20],C=[1,21],A=[1,22],P=[1,25],F=[1,30],j=[1,31],R=[1,32],H=[1,33],Y=[1,34],rt=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,48,52],J=[1,46],it=[30,31,49,50],ht=[4,6,9,11,23,25,27,29,30,31,52],Tt=[44,45,46,47,48],xt=[22,37],pt=[1,66],ct=[1,65],yt=[22,37,39,41],st={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,MD_PARENT:48,NON_IDENTIFYING:49,IDENTIFYING:50,WORD:51,open_directive:52,type_directive:53,arg_directive:54,close_directive:55, $ accept:0, $ end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"MD_PARENT",49:"NON_IDENTIFYING",50:"IDENTIFYING",51:"WORD",52:"open_directive",53:"type_directive",54:"arg_directive",55:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(Ct,tt,Pt,gt,Ft,X,Rt){var Bt=X.length-1;switch(Ft){case 1:break;case 3:this. $ =[];break;case 4:X[Bt-1].push(X[Bt]),this. $ =X[Bt-1];break;case 5:case 6:this. $ =X[Bt];break;case 7:case 8:this. $ =[];break;case 12:gt.addEntity(X[Bt-4]),gt.addEntity(X[Bt-2]),gt.addRelationship(X[Bt-4],X[Bt],X[Bt-2],X[Bt-3]);break;case 13:gt.addEntity(X[Bt-3]),gt.addAttributes(X[Bt-3],X[Bt-1]);break;case 14:gt.addEntity(X[Bt-2]);break;case 15:gt.addEntity(X[Bt]);break;case 16:case 17:this. $ =X[Bt].trim(),gt.setAccTitle(this. $ );break;case 18:case 19:this. $ =X[Bt].trim(),gt.setAccDescription(this. $ );break;case 20:case 44:this. $ =X[Bt];break;case 21:case 42:case 43:this. $ =X[Bt].replace(/"/g,"");break;case 22:case 30:this. $ =[X[Bt]];break;case 23:X[Bt].push(X[Bt-1]),this. $ =X[Bt];break;case 24:this. $ ={attributeType:X[Bt-1],attributeName:X[Bt]};break;case 25:this. $ ={attributeType:X[Bt-2],attributeName:X[Bt-1],attributeKeyTypeList:X[Bt]};break;case 26:this. $ ={attributeType:X[Bt-2],attributeName:X[Bt-1],attributeComment:X[Bt]};break;case 27:this. $ ={attributeType:X[Bt-3],attributeName:X[Bt-2],attributeKeyTypeList:X[Bt-1],attributeComment:X[Bt]};break;case 28:case 29:case 32:this. $ =X[Bt];break;case 31:X[Bt-2].push(X[Bt]),this. $ =X[Bt-2];break;case 33:this. $ =X[Bt].replace(/"/g,"");break
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Te.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +qt.join(", ")+", got '"+(this.terminals_[Ee]||Ee)+"'":zi="Parse error on line "+(wt+1)+": Unexpected "+(Ee==qe?"end of input":"'"+(this.terminals_[Ee]||Ee)+"'"),this.parseError(zi,{text:Te.match,token:this.terminals_[Ee]||Ee,line:Te.yylineno,loc:ne,expected:qt})}if(Ce[0]instanceof Array&&Ce.length>1)throw new Error("Parse Error: multiple actions possible at state: "+He+", token: "+Ee);switch(Ce[0]){case 1:Pt.push(Ee),Ft.push(Te.yytext),X.push(Te.yylloc),Pt.push(Ce[1]),Ee=null,Ot=Te.yyleng,Bt=Te.yytext,wt=Te.yylineno,ne=Te.yylloc;break;case 2:if(Yt=this.productions_[Ce[1]][1],ye. $ =Ft[Ft.length-Yt],ye._ $ ={first_line:X[X.length-(Yt||1)].first_line,last_line:X[X.length-1].last_line,first_column:X[X.length-(Yt||1)].first_column,last_column:X[X.length-1].last_column},ke&&(ye._ $ .range=[X[X.length-(Yt||1)].range[0],X[X.length-1].range[1]]), $ e=this.performAction.apply(ye,[Bt,Ot,wt,Wn.yy,Ce[1],Ft,X].concat(_n)),typeof  $ e<"u")return  $ e;Yt&&(Pt=Pt.slice(0,-1*Yt*2),Ft=Ft.slice(0,-1*Yt),X=X.slice(0,-1*Yt)),Pt.push(this.productions_[Ce[1]][0]),Ft.push(ye. $ ),X.push(ye._ $ ),Mi=Rt[Pt[Pt.length-2]][Pt[Pt.length-1]],Pt.push(Mi);break;case 3:return!0}}return!0}},Et=function(){var bt={EOF:1,parseError:function(tt,Pt){if(this.yy.parser)this.yy.parser.parseError(tt,Pt);else throw new Error(tt)},setInput:function(Ct,tt){return this.yy=tt||this.yy||{},this._input=Ct,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Ct=this._input[0];this.yytext+=Ct,this.yyleng++,this.offset++,this.match+=Ct,this.matched+=Ct;var tt=Ct.match(/(?: \r \n ?| \n ).*/g);return tt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ct},unput:function(Ct){var tt=Ct.length,Pt=Ct.split(/(?: \r \n ?| \n )/g);this._input=Ct+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-tt),this.offset-=tt;var gt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Pt.length-1&&(this.yylineno-=Pt.length-1);var Ft=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Pt?(Pt.length===gt.length?this.yylloc.first_column:0)+gt[gt.length-Pt.length].length-Pt[0].length:this.yylloc.first_column-tt},this.options.ranges&&(this.yylloc.range=[Ft[0],Ft[0]+this.yyleng-tt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Ct){this.unput(this.match.slice(Ct))},pastInput:function(){var Ct=this.matched.substr(0,this.matched.length-this.match.length);return(Ct.length>20?"...":"")+Ct.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var Ct=this.match;return Ct.length<20&&(Ct+=this._input.substr(0,20-Ct.length)),(Ct.substr(0,20)+(Ct.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var Ct=this.pastInput(),tt=new Array(Ct.length+1).join("-");return Ct+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +tt+"^"},test_match:function(Ct,tt){var Pt,gt,Ft;if(this.options.backtrack_lexer&&(Ft={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ft.yylloc.range=this.yylloc.range.slice(0))),gt=Ct[0].match(/(?: \r \n ?| \n ).*/g),gt&&(this.yylineno+=gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:gt?gt[gt.length-1].length-gt[gt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+Ct[0].length},this.yytext+=Ct[0],this.match+=Ct[0],this.matches=Ct,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ct[0].length),this.matched+=Ct[0],Pt=this.performAction.call(this,this.yy,this,tt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Pt)return Pt;if(this._backtrack){for(var X in Ft)this[X]=Ft[X];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ct,tt,Pt,gt;this._more||(this.yytext="",this.match="");for(var Ft=this._currentRules(),X=0;X<Ft.length;X++)if(Pt=this._input.match(this.rules[Ft[X]]),Pt&&(!tt||Pt[0].length>tt[0].length)){if(tt=Pt,gt=X,this.options.backtrack_lexer){if(Ct=this.test_match(Pt,Ft[X]),Ct!==!1)return Ct;if(this._backtrack){tt=!1;continue}else return!1}else if(!this.options.flex)break}return tt?(Ct=this.test_match(tt,Ft[gt]),Ct!==!1?Ct:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var tt=this.next();return tt||this.lex()},begin:function(tt){this.conditionStack.push(tt)},popState:function(){var tt=this.conditionStack.length-1;return tt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(tt){return tt=this.conditionStack.length-1-Math.abs(tt||0),tt>=0?this.conditionStack[tt]:"INITIAL"},pushState:function(tt){this.begin(tt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(tt,Pt,gt,Ft){switch(gt){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),52;case 8:return this.begin("type_directive"),53;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),55;case 11:return 54;case 12:return 11;case 13:break;case 14:return 9;case 15:return 31;case 16:return 51;case 17:return 4;case 18:return this.begin("block"),20;case 19:return 39;case 20:break;case 21:return 40;case 22:return 37;case 23:return 37;case 24:return 41;case 25:break;case 26:return this.popState(),22;case 27:return Pt.yytext[0];case 28:return 44;case 29:return 46;case 30:return 46;case 31:return 46;case 32:return 44;case 33:return 44;case 34:return 45;case 35:return 45;case 36:return 45;case 37:return 45;case 38:return 45;case 39:return 46;case 40:return 45;case 41:return 46;case 42:return 47;case 43:return 47;case 44:return 47;case 45:return 47;case 46:return 44;case 47:return 45;case 48:return 46;case 49:return 48;case 50:return 49;case 51:return 50;case 52:return 50;case 53:return 49;case 54:return 49;case 55:return 49;case 56:return 30;case 57:return Pt.yytext[0];case 58:return 6}},rules:[/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:[ \s ]+)/i,/^(?:"[^"% \r \n \v \b \\ ]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram \b )/i,/^(?: \{ )/i,/^(?:,)/i,/^(?: \s +)/i,/^(?: \b ((?:PK)|(?:FK)|(?:UK)) \b )/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[ \* A-Za-z_][A-Za-z0-9 \- _ \[ \] \( \) ]*)/i,/^(?:"[^"]*")/i,/^(?:[ \n ]+)/i,/^(?: \} )/i,/^(?:.)/i,/^(?:one or zero \b )/i,/^(?:one or more \b )/i,/^(?:one or many \b )/i,/^(?:1 \+ )/i,/^(?: \| o \b )/i,/^(?:zero or one \b )/i,/^(?:zero or more \b )/i,/^(?:zero or many \b )/i,/^(?:0 \+ )/i,/^(?: \} o \b )/i,/^(?:many \( 0 \) )/i,/^(?:many \( 1 \) )/i,/^(?:many \b )/i,/^(?: \} \| )/i,/^(?:one \b )/i,/^(?:only one \b )/i,/^(?:1 \b )/i,/^(?: \| \| )/i,/^(?:o \| )/i,/^(?:o \{ )/i,/^(?: \| \{ )/i,/^(?: \s *u \b )/i,/^(?: \. \. )/i,/^(?:--)/i,/^(?:to \b )/i,/^(?:optionally to \b )/i,/^(?: \. -)/i,/^(?:- \. )/i,/^(?:[A-Za-z][A-Za-z0-9 \- _]*)/i,/^(?:.)/i,/^(?: $ )/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[19,20,21,22,23,24,25,26,27],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],inclusive:!0}}};return bt}();st.lexer=Et;function dt(){this.yy={}}return dt.prototype=st,st.Parser=dt,new dt}();D0t.parser=D0t;const M $ e=D0t;let xP={},I0t=[];const D $ e={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},I $ e={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},O $ e=function(i,a,f){l1.parseDirective(this,i,
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . entityBox  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . attributeBoxOdd  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . attributeBackgroundColorOdd } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . attributeBoxEven  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :   $ { i . attributeBackgroundColorEven } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLabelBox  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.7 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . relationshipLine  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . entityTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  }     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # MD _PARENT _START  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # f5f5f5  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # MD _PARENT _END  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # f5f5f5  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var N0t=function(){var i=function(yt,st,Et,dt){for(Et=Et||{},dt=yt.length;dt--;Et[yt[dt]]=st);return Et},a=[1,4],f=[1,7],p=[1,5],v=[1,9],m=[1,6],b=[2,6],E=[1,16],C=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],A=[8,14,20,22,24,25,27,29,32,37,40],P=[8,13,14,20,22,24,25,27,29,32,37,40],F=[1,26],j=[6,8,14,50,55],R=[8,14,55],H=[1,53],Y=[1,52],rt=[8,14,30,33,35,38,55],J=[1,67],it=[1,68],ht=[1,69],Tt=[8,14,33,35,42,55],xt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55, $ accept:0, $ end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(st,Et,dt,bt,Ct,tt,Pt){var gt=tt.length-1;switch(Ct){case 3:return tt[gt];case 4:return tt[gt-1];case 5:return bt.setDirection(tt[gt-3]),tt[gt-1];case 7:bt.setOptions(tt[gt-1]),this. $ =tt[gt];break;case 8:tt[gt-1]+=tt[gt],this. $ =tt[gt-1];break;case 10:this. $ =[];break;case 11:tt[gt-1].push(tt[gt]),this. $ =tt[gt-1];break;case 12:this. $ =tt[gt-1];break;case 17:this. $ =tt[gt].trim(),bt.setAccTitle(this. $ );break;case 18:case 19:this. $ =tt[gt].trim(),bt.setAccDescription(this. $ );break;case 20:bt.addSection(tt[gt].substr(8)),this. $ =tt[gt].substr(8);break;case 22:bt.checkout(tt[gt]);break;case 23:bt.branch(tt[gt]);break;case 24:bt.branch(tt[gt-2],tt[gt]);break;case 25:bt.cherryPick(tt[gt],"",void 0);break;case 26:bt.cherryPick(tt[gt-2],"",tt[gt]);break;case 27:case 29:bt.cherryPick(tt[gt-2],"","");break;case 28:bt.cherryPick(tt[gt],"",tt[gt-2]);break;case 30:bt.merge(tt[gt],"","","");break;case 31:bt.merge(tt[gt-2],tt[gt],"","");break;case 32:bt.merge(tt[gt-2],"",tt[gt],"");break;case 33:bt.merge(tt[gt-2],"","",tt[gt]);break;case 34:bt.merge(tt[gt-4],tt[gt],"",tt[gt-2]);break;case 35:bt.merge(tt[gt-4],"",tt[gt],tt[gt-2]);break;case 36:bt.merge(tt[gt-4],"",tt[gt-2],tt[gt]);break;case 37:bt.merge(tt[gt-4],tt[gt-2],tt[gt],"");break;case 38:bt.merge(tt[gt-4],tt[gt-2],"",tt[gt]);break;case 39:bt.merge(tt[gt-4],tt[gt],tt[gt-2],"");break;case 40:bt.merge(tt[gt-6],tt[gt-4],tt[gt-2],tt[gt]);break;case 41:bt.merge(tt[gt-6],tt[gt],tt[gt-4],tt[gt-2]);break;case 42:bt.merge(tt[gt-6],tt[gt-4],tt[gt],tt[gt-2]
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ot.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +ye.join(", ")+", got '"+(this.terminals_[Ae]||Ae)+"'":fn="Parse error on line "+(Ft+1)+": Unexpected "+(Ae==Bt?"end of input":"'"+(this.terminals_[Ae]||Ae)+"'"),this.parseError(fn,{text:Ot.match,token:this.terminals_[Ae]||Ae,line:Ot.yylineno,loc:_n,expected:ye})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ne+", token: "+Ae);switch(ke[0]){case 1:dt.push(Ae),Ct.push(Ot.yytext),tt.push(Ot.yylloc),dt.push(ke[1]),Ae=null,X=Ot.yyleng,gt=Ot.yytext,Ft=Ot.yylineno,_n=Ot.yylloc;break;case 2:if(Ce=this.productions_[ke[1]][1],Ee. $ =Ct[Ct.length-Ce],Ee._ $ ={first_line:tt[tt.length-(Ce||1)].first_line,last_line:tt[tt.length-1].last_line,first_column:tt[tt.length-(Ce||1)].first_column,last_column:tt[tt.length-1].last_column},Te&&(Ee._ $ .range=[tt[tt.length-(Ce||1)].range[0],tt[tt.length-1].range[1]]),Ve=this.performAction.apply(Ee,[gt,X,Ft,Vt.yy,ke[1],Ct,tt].concat(wt)),typeof Ve<"u")return Ve;Ce&&(dt=dt.slice(0,-1*Ce*2),Ct=Ct.slice(0,-1*Ce),tt=tt.slice(0,-1*Ce)),dt.push(this.productions_[ke[1]][0]),Ct.push(Ee. $ ),tt.push(Ee._ $ ), $ e=Pt[dt[dt.length-2]][dt[dt.length-1]],dt.push( $ e);break;case 3:return!0}}return!0}},pt=function(){var yt={EOF:1,parseError:function(Et,dt){if(this.yy.parser)this.yy.parser.parseError(Et,dt);else throw new Error(Et)},setInput:function(st,Et){return this.yy=Et||this.yy||{},this._input=st,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var st=this._input[0];this.yytext+=st,this.yyleng++,this.offset++,this.match+=st,this.matched+=st;var Et=st.match(/(?: \r \n ?| \n ).*/g);return Et?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),st},unput:function(st){var Et=st.length,dt=st.split(/(?: \r \n ?| \n )/g);this._input=st+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Et),this.offset-=Et;var bt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),dt.length-1&&(this.yylineno-=dt.length-1);var Ct=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:dt?(dt.length===bt.length?this.yylloc.first_column:0)+bt[bt.length-dt.length].length-dt[0].length:this.yylloc.first_column-Et},this.options.ranges&&(this.yylloc.range=[Ct[0],Ct[0]+this.yyleng-Et]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(st){this.unput(this.match.slice(st))},pastInput:function(){var st=this.matched.substr(0,this.matched.length-this.match.length);return(st.length>20?"...":"")+st.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var st=this.match;return st.length<20&&(st+=this._input.substr(0,20-st.length)),(st.substr(0,20)+(st.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var st=this.pastInput(),Et=new Array(st.length+1).join("-");return st+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Et+"^"},test_match:function(st,Et){var dt,bt,Ct;if(this.options.backtrack_lexer&&(Ct={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ct.yylloc.range=this.yylloc.range.slice(0))),bt=st[0].match(/(?: \r \n ?| \n ).*/g),bt&&(this.yylineno+=bt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:bt?bt[bt.length-1].length-bt[bt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+st[0].length},this.yytext+=st[0],this.match+=st[0],this.matches=st,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(st[0].length),this.matched+=st[0],dt=this.performAction.call(this,this.yy,this,Et,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),dt)return dt;if(this._backtrack){for(var tt in Ct)this[tt]=Ct[tt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var st,Et,dt,bt;this._more||(this.yytext="",this.match="");for(var Ct=this._currentRules(),tt=0;tt<Ct.length;tt++)if(dt=this._input.match(this.rules[Ct[tt]]),dt&&(!Et||dt[0].length>Et[0].length)){if(Et=dt,bt=tt,this.options.backtrack_lexer){if(st=this.test_match(dt,Ct[tt]),st!==!1)return st;if(this._backtrack){Et=!1;continue}else return!1}else if(!this.options.flex)break}return Et?(st=this.test_match(Et,Ct[bt]),st!==!1?st:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Et=this.next();return Et||this.lex()},begin:function(Et){this.conditionStack.push(Et)},popState:function(){var Et=this.conditionStack.length-1;return Et>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Et){return Et=this.conditionStack.length-1-Math.abs(Et||0),Et>=0?this.conditionStack[Et]:"INITIAL"},pushState:function(Et){this.begin(Et)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Et,dt,bt,Ct){switch(bt){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:break;case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:return 10;case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 34:this.popState();break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 38:this.popState();break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:( \r ? \n )+)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?:gitGraph \b )/i,/^(?:commit(?= \s | $ ))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL \b )/i,/^(?:REVERSE \b )/i,/^(?:HIGHLIGHT \b )/i,/^(?:tag:)/i,/^(?:branch(?= \s | $ ))/i,/^(?:order:)/i,/^(?:merge(?= \s | $ ))/i,/^(?:cherry-pick(?= \s | $ ))/i,/^(?:checkout(?= \s | $ ))/i,/^(?:LR \b )/i,/^(?:TB \b )/i,/^(?::)/i,/^(?: \^ )/i,/^(?:options \r ? \n )/i,/^(?:[  \r \n \t ]+end \b )/i,/^(?:[ \s \S ]+(?=[  \r \n \t ]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?= \s | $ ))/i,/^(?: \w ([- \. / \w ]*[- \w ])?)/i,/^(?: $ )/i,/^(?: \s +)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};return yt}();xt.lexer=pt;function ct(){this.yy={}}return ct.prototype=xt,xt.Parser=ct,new ct}();N0t.parser=N0t;const rze=N0t;let EK=Me().gitGraph.mainBranchName,ize=Me().gitGraph.mainBranchOrder,d1={},gg=null,EP={};EP[EK]={name:EK,order:ize};let Bf={};Bf[EK]=gg;let td=EK,jBt="LR",m9=0;function P0t(){return VIt({length:7})}const sze=function(i,a,f){l1.parseDirective(this,i,a,f)};function aze(i,a){const f=Object.create(null);return i.reduce((p,v)=>{const m=a(v);return f[m]||(f[m]=!0,p.push(v)),p},[])}const oze=function(i){jBt=i};let  $ Bt={};const cze=function(i){Gt.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{ $ Bt=JSON.parse(i)}catch(a){Gt.error("error while parsing gitGraph options",a.message)}},uze=function(){return  $ Bt},lze=function(i,a,f,p){Gt.debug("Entering commit:",i,a,f,p),a=oi.sanitizeText(a,Me()),i=oi.sanitizeText(i,Me()),p=oi.sanitizeText(p
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b - it . width / 2 - 4 / 2 } , $ { Tt + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b - it . width / 2 - 4 / 2 } , $ { Tt - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 - it . width / 2 - 4 } , $ { Tt - ht - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 + it . width / 2 + 4 } , $ { Tt - ht - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 + it . width / 2 + 4 } , $ { Tt + ht + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								          $ { b + 10 - it . width / 2 - 4 } , $ { Tt + ht + 2 } ` ),rt.attr("cx",b-it.width/2+4/2).attr("cy",Tt).attr("r",1.5).attr("class","tag-hole"),y0==="TB"&&(Y.attr("class","tag-label-bkg").attr("points", ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j } , $ { b + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j } , $ { b - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j + 10 } , $ { b - ht - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j + 10 + it . width + 4 } , $ { b - ht - 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j + 10 + it . width + 4 } , $ { b + ht + 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            $ { j + 10 } , $ { b + ht + 2 } ` ).attr("transform","translate(12,12) rotate(45, "+j+","+b+")"),rt.attr("cx",j+4/2).attr("cy",b).attr("transform","translate(12,12) rotate(45, "+j+","+b+")"),J.attr("x",j+5).attr("y",b+3).attr("transform","translate(14,14) rotate(45, "+j+","+b+")"))}}b+=50,b>SP&&(SP=b)})},Tze=(i,a,f)=>Object.keys(f).filter(m=>f[m].branch===a.branch&&f[m].seq>i.seq&&f[m].seq<a.seq).length>0,AP=(i,a,f=0)=>{const p=i+Math.abs(i-a)/2;if(f>5)return p;if(TK.every(b=>Math.abs(b-p)>=10))return TK.push(p),p;const m=Math.abs(i-a);return AP(i,a-m/5,f+1)},_ze=(i,a,f,p)=>{const v=CP[a.id],m=CP[f.id],b=Tze(a,f,p);let E="",C="",A=0,P=0,F=ed[f.branch].index,j;if(b){E="A 10 10, 0, 0, 0,",C="A 10 10, 0, 0, 1,",A=10,P=10,F=ed[f.branch].index;const R=v.y<m.y?AP(v.y,m.y):AP(m.y,v.y),H=v.x<m.x?AP(v.x,m.x):AP(m.x,v.x);y0==="TB"?v.x<m.x?j= ` M  $ { v . x }  $ { v . y }  L  $ { H - A }  $ { v . y }  $ { C }  $ { H }  $ { v . y + P }  L  $ { H }  $ { m . y - A }  $ { E }  $ { H + P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` :j= ` M  $ { v . x }  $ { v . y }  L  $ { H + A }  $ { v . y }  $ { E }  $ { H }  $ { v . y + P }  L  $ { H }  $ { m . y - A }  $ { C }  $ { H - P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` :v.y<m.y?j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { R - A }  $ { E }  $ { v . x + P }  $ { R }  L  $ { m . x - A }  $ { R }  $ { C }  $ { m . x }  $ { R + P }  L  $ { m . x }  $ { m . y } ` :j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { R + A }  $ { C }  $ { v . x + P }  $ { R }  L  $ { m . x - A }  $ { R }  $ { E }  $ { m . x }  $ { R - P }  L  $ { m . x }  $ { m . y } ` }else y0==="TB"?(v.x<m.x&&(E="A 20 20, 0, 0, 0,",C="A 20 20, 0, 0, 1,",A=20,P=20,F=ed[f.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { m . x - A }  $ { v . y }  $ { C }  $ { m . x }  $ { v . y + P }  L  $ { m . x }  $ { m . y } ` ),v.x>m.x&&(E="A 20 20, 0, 0, 0,",C="A 20 20, 0, 0, 1,",A=20,P=20,F=ed[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { m . y - A }  $ { C }  $ { v . x - P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` ),v.x===m.x&&(F=ed[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x + A }  $ { v . y }  $ { E }  $ { v . x + P }  $ { m . y + A }  L  $ { m . x }  $ { m . y } ` )):(v.y<m.y&&(E="A 20 20, 0, 0, 0,",A=20,P=20,F=ed[f.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { m . y - A }  $ { E }  $ { v . x + P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` ),v.y>m.y&&(E="A 20 20, 0, 0, 0,",A=20,P=20,F=ed[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { m . x - A }  $ { v . y }  $ { E }  $ { m . x }  $ { v . y - P }  L  $ { m . x }  $ { m . y } ` ),v.y===m.y&&(F=ed[a.branch].index,j= ` M  $ { v . x }  $ { v . y }  L  $ { v . x }  $ { m . y - A }  $ { E }  $ { v . x + P }  $ { m . y }  L  $ { m . x }  $ { m . y } ` ));i.append("path").attr("d",j).attr("class","arrow arrow"+F%y9)},Cze=(i,a)=>{const f=i.append("g").attr("class","commit-arrows");Object.keys(a).forEach(p=>{const v=a[p];v.parents&&v.parents.length>0&&v.parents.forEach(m=>{_ze(f,a[m],v,a)})})},Sze=(i,a)=>{const f=WN().gitGraph,p=i.append("g");a.forEach((v,m)=>{const b=m%y9,E=ed[v.name].pos,C=p.append("line");C.attr("x1",0),C.attr("y1",E),C.attr("x2",SP),C.attr("y2",E),C.attr("class","branch branch"+b),y0==="TB"&&(C.attr("y1",30),C.attr("x1",E),C.attr("y2",SP),C.attr("x2",E)),TK.push(E);let A=v.name;const P=GBt(A),F=p.insert("rect"),R=p.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+b);R.node().appendChild(P);let H=P.getBBox();F.attr("class","branchLabelBkg label"+b).attr("rx",4).attr("ry",4).attr("x",-H.width-4-(f.rotateCommitLabel===!0?30:0)).attr("y",-H.height/2+8).attr("width",H.width+18).attr("height",H.height+4),R.attr("transform","translate("+(-H.width-14-(f.rotateCommitLabel===!0?30:0))+", "+(E-H.height/2-1)+")"),y0==="TB"&&(F.attr("x",E-H.width/2-10).attr("y",0),R.attr("transform","translate("+(E-H.width/2-5)+", 0)")),y0!=="TB"&&F.attr("transform","translate(-19, "+(E-H.height/2)+")")})},Aze=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:rze,db:kze,renderer:{draw:function(i,a,f,p){Eze();const v=WN(),m=v.gitGraph;Gt.debug("in gitgraph renderer",i+ ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,"id:",a,f),_P=p.db.getCommits();const b=p.db.getBranchesAsObjArray();y0=p.db.getDirection();const E=fr( ` [ id = "${a}" ] ` );let C=0;b.forEach((A,P)=>{const F=GBt(A.name),j=E.append("g"),R=j.insert("g").attr("class","branchLabel"),H=R.insert("g").attr("class","label branch-label");H.node().appendChild(F);let Y=F.getBBox();ed[A.name]={pos:C,index:P},C+=50+(m.rotateCommitLabel?40:0)+(y0==="TB"?Y.width/2:0),H.remove(),R.remove(),j.remove()}),UBt(E,_P,!1),m.showBranches&&Sze(E,b),Cze(E,_P),UBt(E,_P,!0),to.insertTitle(E,"gitTitleText",m.titleTopMargin,p.db.getDiagramTitle()),IIt(void 0,E,m.diagramPadding,m.useMaxWidth??v.useMaxWidth)}},styles:i=> `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - msg , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . branch - label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  lightgrey ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  lightgrey ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  $ { [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] . map ( a => ` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . branch - label$ { a }  {  fill :  $ { i [ "gitBranchLabel" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . commit$ { a }  {  stroke :  $ { i [ "git" + a ] } ;  fill :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . commit - highlight$ { a }  {  stroke :  $ { i [ "gitInv" + a ] } ;  fill :  $ { i [ "gitInv" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . label$ { a }   {  fill :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        . arrow$ { a }  {  stroke :  $ { i [ "git" + a ] } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        ` ).join( ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )}
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . branch  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - label  {  font - size :  $ { i . commitLabelFontSize } ;  fill :  $ { i . commitLabelColor } ; } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - label - bkg  {  font - size :  $ { i . commitLabelFontSize } ;  fill :  $ { i . commitLabelBackground } ;  opacity :  0.5 ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - label  {  font - size :  $ { i . tagLabelFontSize } ;  fill :  $ { i . tagLabelColor } ; } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - label - bkg  {  fill :  $ { i . tagLabelBackground } ;  stroke :  $ { i . tagLabelBorder } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . tag - hole  {  fill :  $ { i . textColor } ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - merge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - reverse  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - highlight - outer  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . commit - highlight - inner  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . primaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrow  {  stroke - width :  8 ;  stroke - linecap :  round ;  fill :  none } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . gitTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var F0t=function(){var i=function(Pt,gt,Ft,X){for(Ft=Ft||{},X=Pt.length;X--;Ft[Pt[X]]=gt);return Ft},a=[1,3],f=[1,5],p=[7,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,34,36,43,48],v=[1,32],m=[1,33],b=[1,34],E=[1,35],C=[1,36],A=[1,37],P=[1,38],F=[1,15],j=[1,16],R=[1,17],H=[1,18],Y=[1,19],rt=[1,20],J=[1,21],it=[1,22],ht=[1,24],Tt=[1,25],xt=[1,26],pt=[1,27],ct=[1,28],yt=[1,30],st=[1,39],Et=[1,42],dt=[5,7,9,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,34,36,43,48],bt={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,weekday:12,weekday_monday:13,weekday_tuesday:14,weekday_wednesday:15,weekday_thursday:16,weekday_friday:17,weekday_saturday:18,weekday_sunday:19,dateFormat:20,inclusiveEndDates:21,topAxis:22,axisFormat:23,tickInterval:24,excludes:25,includes:26,todayMarker:27,title:28,acc_title:29,acc_title_value:30,acc_descr:31,acc_descr_value:32,acc_descr_multiline_value:33,section:34,clickStatement:35,taskTxt:36,taskData:37,openDirective:38,typeDirective:39,closeDirective:40,":":41,argDirective:42,click:43,callbackname:44,callbackargs:45,href:46,clickStatementDebug:47,open_directive:48,type_directive:49,arg_directive:50,close_directive:51, $ accept:0, $ end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",13:"weekday_monday",14:"weekday_tuesday",15:"weekday_wednesday",16:"weekday_thursday",17:"weekday_friday",18:"weekday_saturday",19:"weekday_sunday",20:"dateFormat",21:"inclusiveEndDates",22:"topAxis",23:"axisFormat",24:"tickInterval",25:"excludes",26:"includes",27:"todayMarker",28:"title",29:"acc_title",30:"acc_title_value",31:"acc_descr",32:"acc_descr_value",33:"acc_descr_multiline_value",34:"section",36:"taskTxt",37:"taskData",41:":",43:"click",44:"callbackname",45:"callbackargs",46:"href",48:"open_directive",49:"type_directive",50:"arg_directive",51:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[35,2],[35,3],[35,3],[35,4],[35,3],[35,4],[35,2],[47,2],[47,3],[47,3],[47,4],[47,3],[47,4],[47,2],[38,1],[39,1],[42,1],[40,1]],performAction:function(gt,Ft,X,Rt,Bt,wt,Ot){var Vt=wt.length-1;switch(Bt){case 2:return wt[Vt-1];case 3:this. $ =[];break;case 4:wt[Vt-1].push(wt[Vt]),this. $ =wt[Vt-1];break;case 5:case 6:this. $ =wt[Vt];break;case 7:case 8:this. $ =[];break;case 9:Rt.setWeekday("monday");break;case 10:Rt.setWeekday("tuesday");break;case 11:Rt.setWeekday("wednesday");break;case 12:Rt.setWeekday("thursday");break;case 13:Rt.setWeekday("friday");break;case 14:Rt.setWeekday("saturday");break;case 15:Rt.setWeekday("sunday");break;case 16:Rt.setDateFormat(wt[Vt].substr(11)),this. $ =wt[Vt].substr(11);break;case 17:Rt.enableInclusiveEndDates(),this. $ =wt[Vt].substr(18);break;case 18:Rt.TopAxis(),this. $ =wt[Vt].substr(8);break;case 19:Rt.setAxisFormat(wt[Vt].substr(11)),this. $ =wt[Vt].substr(11);break;case 20:Rt.setTickInterval(wt[Vt].substr(13)),this. $ =wt[Vt].substr(13);break;case 21:Rt.setExcludes(wt[Vt].substr(9)),this. $ =wt[Vt].substr(9);break;case 22:Rt.setIncludes(wt[Vt].substr(9)),this. $ =wt[Vt].substr(9);break;case 23:Rt.setTodayMarker(wt[Vt].substr(12)),this. $ =wt[Vt].substr(12);break;case 25:Rt.setDiagramTitle(wt[Vt].substr(6)),this. $ =wt[Vt].substr(6);break;case 26:this. $ =wt[Vt].trim(),Rt.setAccTitle(this. $ );break;case 27:case 28:this. $ =wt[Vt].trim(),Rt.setAccDescription(this. $ );break;case 29:Rt.addSection(wt[Vt].substr(8)),this. $ =wt[Vt].substr(8);break;case 31:Rt.addTask(wt[Vt-1],wt[Vt]),this. $ ="task";break;case 35:this. $ =wt[Vt-1],Rt.setClickEvent(wt[Vt-1],wt[Vt],null);break;case 36:this. $ =wt[Vt-2],Rt.setClickEvent(wt[Vt-2],wt[Vt-1],wt[Vt]);break;case 37:this. $ =wt[Vt-2],Rt.setClickEvent(wt[Vt-2],wt[Vt-1],null),Rt.setLink(wt[Vt-2],wt[Vt]);break;case 38:this. $ =wt[Vt-3],Rt.setClickEvent(wt[Vt-3],wt[Vt-2],wt[Vt-1]),Rt.setLink(wt[Vt-3],wt[Vt]);break;case 39:this. $ =wt[Vt-2],R
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ne.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +ki.join(", ")+", got '"+(this.terminals_[ $ e]|| $ e)+"'":Ri="Parse error on line "+(qe+1)+": Unexpected "+( $ e==Wn?"end of input":"'"+(this.terminals_[ $ e]|| $ e)+"'"),this.parseError(Ri,{text:ne.match,token:this.terminals_[ $ e]|| $ e,line:ne.yylineno,loc:Ee,expected:ki})}if(fn[0]instanceof Array&&fn.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ye+", token: "+ $ e);switch(fn[0]){case 1:X.push( $ e),Bt.push(ne.yytext),wt.push(ne.yylloc),X.push(fn[1]), $ e=null,_n=ne.yyleng,Vt=ne.yytext,qe=ne.yylineno,Ee=ne.yylloc;break;case 2:if(zi=this.productions_[fn[1]][1],Mi. $ =Bt[Bt.length-zi],Mi._ $ ={first_line:wt[wt.length-(zi||1)].first_line,last_line:wt[wt.length-1].last_line,first_column:wt[wt.length-(zi||1)].first_column,last_column:wt[wt.length-1].last_column},He&&(Mi._ $ .range=[wt[wt.length-(zi||1)].range[0],wt[wt.length-1].range[1]]),Yt=this.performAction.apply(Mi,[Vt,_n,qe,ke.yy,fn[1],Bt,wt].concat(Ae)),typeof Yt<"u")return Yt;zi&&(X=X.slice(0,-1*zi*2),Bt=Bt.slice(0,-1*zi),wt=wt.slice(0,-1*zi)),X.push(this.productions_[fn[1]][0]),Bt.push(Mi. $ ),wt.push(Mi._ $ ),Se=Ot[X[X.length-2]][X[X.length-1]],X.push(Se);break;case 3:return!0}}return!0}},Ct=function(){var Pt={EOF:1,parseError:function(Ft,X){if(this.yy.parser)this.yy.parser.parseError(Ft,X);else throw new Error(Ft)},setInput:function(gt,Ft){return this.yy=Ft||this.yy||{},this._input=gt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var gt=this._input[0];this.yytext+=gt,this.yyleng++,this.offset++,this.match+=gt,this.matched+=gt;var Ft=gt.match(/(?: \r \n ?| \n ).*/g);return Ft?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),gt},unput:function(gt){var Ft=gt.length,X=gt.split(/(?: \r \n ?| \n )/g);this._input=gt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ft),this.offset-=Ft;var Rt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),X.length-1&&(this.yylineno-=X.length-1);var Bt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:X?(X.length===Rt.length?this.yylloc.first_column:0)+Rt[Rt.length-X.length].length-X[0].length:this.yylloc.first_column-Ft},this.options.ranges&&(this.yylloc.range=[Bt[0],Bt[0]+this.yyleng-Ft]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(gt){this.unput(this.match.slice(gt))},pastInput:function(){var gt=this.matched.substr(0,this.matched.length-this.match.length);return(gt.length>20?"...":"")+gt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var gt=this.match;return gt.length<20&&(gt+=this._input.substr(0,20-gt.length)),(gt.substr(0,20)+(gt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var gt=this.pastInput(),Ft=new Array(gt.length+1).join("-");return gt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ft+"^"},test_match:function(gt,Ft){var X,Rt,Bt;if(this.options.backtrack_lexer&&(Bt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Bt.yylloc.range=this.yylloc.range.slice(0))),Rt=gt[0].match(/(?: \r \n ?| \n ).*/g),Rt&&(this.yylineno+=Rt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Rt?Rt[Rt.length-1].length-Rt[Rt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+gt[0].length},this.yytext+=gt[0],this.match+=gt[0],this.matches=gt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(gt[0].length),this.matched+=gt[0],X=this.performAction.call(this,this.yy,this,Ft,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),X)return X;if(this._backtrack){for(var wt in Bt)this[wt]=Bt[wt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var gt,Ft,X,Rt;this._more||(this.yytext="",this.match="");for(var Bt=this._currentRules(),wt=0;wt<Bt.length;wt++)if(X=this._input.match(this.rules[Bt[wt]]),X&&(!Ft||X[0].length>Ft[0].length)){if(Ft=X,Rt=wt,this.options.backtrack_lexer){if(gt=this.test_match(X,Bt[wt]),gt!==!1)return gt;if(this._backtrack){Ft=!1;continue}else return!1}else if(!this.options.flex)break}return Ft?(gt=this.test_match(Ft,Bt[Rt]),gt!==!1?gt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ft=this.next();return Ft||this.lex()},begin:function(Ft){this.conditionStack.push(Ft)},popState:function(){var Ft=this.conditionStack.length-1;return Ft>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ft){return Ft=this.conditionStack.length-1-Math.abs(Ft||0),Ft>=0?this.conditionStack[Ft]:"INITIAL"},pushState:function(Ft){this.begin(Ft)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ft,X,Rt,Bt){switch(Rt){case 0:return this.begin("open_directive"),48;case 1:return this.begin("type_directive"),49;case 2:return this.popState(),this.begin("arg_directive"),41;case 3:return this.popState(),this.popState(),51;case 4:return 50;case 5:return this.begin("acc_title"),29;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),31;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:break;case 13:break;case 14:break;case 15:return 11;case 16:break;case 17:break;case 18:break;case 19:this.begin("href");break;case 20:this.popState();break;case 21:return 46;case 22:this.begin("callbackname");break;case 23:this.popState();break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 44;case 26:this.popState();break;case 27:return 45;case 28:this.begin("click");break;case 29:this.popState();break;case 30:return 43;case 31:return 5;case 32:return 20;case 33:return 21;case 34:return 22;case 35:return 23;case 36:return 24;case 37:return 26;case 38:return 25;case 39:return 27;case 40:return 13;case 41:return 14;case 42:return 15;case 43:return 16;case 44:return 17;case 45:return 18;case 46:return 19;case 47:return"date";case 48:return 28;case 49:return"accDescription";case 50:return 34;case 51:return 36;case 52:return 37;case 53:return 41;case 54:return 7;case 55:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:%%(?! \{ )*[^ \n ]*)/i,/^(?:[^ \} ]%%*[^ \n ]*)/i,/^(?:%%*[^ \n ]*[ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?:href[ \s ]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[ \s ]+)/i,/^(?: \( [ \s ]* \) )/i,/^(?: \( )/i,/^(?:[^(]*)/i,/^(?: \) )/i,/^(?:[^)]*)/i,/^(?:click[ \s ]+)/i,/^(?:[ \s \n ])/i,/^(?:[^ \s \n ]*)/i,/^(?:gantt \b )/i,/^(?:dateFormat \s [^# \n ;]+)/i,/^(?:inclusiveEndDates \b )/i,/^(?:topAxis \b )/i,/^(?:axisFormat \s [^# \n ;]+)/i,/^(?:tickInterval \s [^# \n ;]+)/i,/^(?:includes \s [^# \n ;]+)/i,/^(?:excludes \s [^# \n ;]+)/i,/^(?:todayMarker \s [^ \n ;]+)/i,/^(?:weekday \s +monday \b )/i,/^(?:weekday \s +tuesday \b )/i,/^(?:weekday \s +wednesday \b )/i,/^(?:weekday \s +thursday \b )/i,/^(?:weekday \s +friday \b )/i,/^(?:weekday \s +saturday \b )/i,/^(?:weekday \s +sunday \b )/i,/^(?: \d \d \d \d - \d \d - \d \d \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accDescription \s [^# \n ;]+)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?::[^# \n ;]+)/i,/^(?::)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return Pt}();bt.lexer=Ct;function tt(){this.yy={}}return tt.prototype=bt,bt.Parser
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . mermaid - main - font  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  "trebuchet ms" ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . exclude - range  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . excludeBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sectionBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sectionBkgColor2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . altSectionBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sectionTitle  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  start ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // text-height: 14px;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Grid and axis */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . grid  . tick  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . gridColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    opacity :  0.8 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    shape - rendering :  crispEdges ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . grid  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Today line */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . today  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . todayLineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Task styling */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Default task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .taskText:not([font-size]) {
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  //   font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideRight  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  start ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideLeft  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  end ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // font-size: ${i.ganttFontSize};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Special case clickable */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideLeft . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutsideRight . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextClickableColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Specific task settings for the sections*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . taskBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextOutsideColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . taskTextOutside3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextOutsideColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Active task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . active3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activeTaskBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activeTaskBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Completed task */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . done3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . doneTaskBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . doneTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  /* Tasks on the critical line */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . crit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . critBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCrit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activeTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCrit3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . critBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . doneTaskBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    shape - rendering :  crispEdges ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . milestone  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    transform :  rotate ( 45 deg )  scale ( 0.8 , 0.8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . milestoneText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - style :  italic ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . doneCritText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activeCritText3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . taskTextDarkColor }  ! important ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . titleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor }     ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var Y0t=function(){var i=function(m,b,E,C){for(E=E||{},C=m.length;C--;E[m[C]]=b);return E},a=[6,9,10],f={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10, $ accept:0, $ end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(b,E,C,A,P,F,j){switch(F.length-1,P){case 1:return A;case 4:break;case 6:A.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},i(a,[2,3]),i(a,[2,4]),i(a,[2,5]),i(a,[2,6])],defaultActions:{4:[2,1]},parseError:function(b,E){if(E.recoverable)this.trace(b);else{var C=new Error(b);throw C.hash=E,C}},parse:function(b){var E=this,C=[0],A=[],P=[null],F=[],j=this.table,R="",H=0,Y=0,rt=2,J=1,it=F.slice.call(arguments,1),ht=Object.create(this.lexer),Tt={yy:{}};for(var xt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xt)&&(Tt.yy[xt]=this.yy[xt]);ht.setInput(b,Tt.yy),Tt.yy.lexer=ht,Tt.yy.parser=this,typeof ht.yylloc>"u"&&(ht.yylloc={});var pt=ht.yylloc;F.push(pt);var ct=ht.options&&ht.options.ranges;typeof Tt.yy.parseError=="function"?this.parseError=Tt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function yt(){var Rt;return Rt=A.pop()||ht.lex()||J,typeof Rt!="number"&&(Rt instanceof Array&&(A=Rt,Rt=A.pop()),Rt=E.symbols_[Rt]||Rt),Rt}for(var st,Et,dt,bt,Ct={},tt,Pt,gt,Ft;;){if(Et=C[C.length-1],this.defaultActions[Et]?dt=this.defaultActions[Et]:((st===null||typeof st>"u")&&(st=yt()),dt=j[Et]&&j[Et][st]),typeof dt>"u"||!dt.length||!dt[0]){var X="";Ft=[];for(tt in j[Et])this.terminals_[tt]&&tt>rt&&Ft.push("'"+this.terminals_[tt]+"'");ht.showPosition?X="Parse error on line "+(H+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ht.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ft.join(", ")+", got '"+(this.terminals_[st]||st)+"'":X="Parse error on line "+(H+1)+": Unexpected "+(st==J?"end of input":"'"+(this.terminals_[st]||st)+"'"),this.parseError(X,{text:ht.match,token:this.terminals_[st]||st,line:ht.yylineno,loc:pt,expected:Ft})}if(dt[0]instanceof Array&&dt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Et+", token: "+st);switch(dt[0]){case 1:C.push(st),P.push(ht.yytext),F.push(ht.yylloc),C.push(dt[1]),st=null,Y=ht.yyleng,R=ht.yytext,H=ht.yylineno,pt=ht.yylloc;break;case 2:if(Pt=this.productions_[dt[1]][1],Ct. $ =P[P.length-Pt],Ct._ $ ={first_line:F[F.length-(Pt||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(Pt||1)].first_column,last_column:F[F.length-1].last_column},ct&&(Ct._ $ .range=[F[F.length-(Pt||1)].range[0],F[F.length-1].range[1]]),bt=this.performAction.apply(Ct,[R,Y,H,Tt.yy,dt[1],P,F].concat(it)),typeof bt<"u")return bt;Pt&&(C=C.slice(0,-1*Pt*2),P=P.slice(0,-1*Pt),F=F.slice(0,-1*Pt)),C.push(this.productions_[dt[1]][0]),P.push(Ct. $ ),F.push(Ct._ $ ),gt=j[C[C.length-2]][C[C.length-1]],C.push(gt);break;case 3:return!0}}return!0}},p=function(){var m={EOF:1,parseError:function(E,C){if(this.yy.parser)this.yy.parser.parseError(E,C);else throw new Error(E)},setInput:function(b,E){return this.yy=E||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var E=b.match(/(?: \r \n ?| \n ).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},unput:function(b){var E=b.length,C=b.split(/(?: \r \n ?| \n )/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var A=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),C.length-1&&(this.yylineno-=C.length-1);var P=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:C?(C.length===A.length?this.yylloc.first_column:0)+A[A.length-C.length].length-C[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[P[0],P[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var b=this.pastInput(),E=new Array(b.length+1).join("-");return b+this.upcomingInput()+ `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` +E+"^"},test_match:function(b,E){var C,A,P;if(this.options.backtrack_lexer&&(P={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(P.yylloc.range=this.yylloc.range.slice(0))),A=b[0].match(/(?: \r \n ?| \n ).*/g),A&&(this.yylineno+=A.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:A?A[A.length-1].length-A[A.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],C=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),C)return C;if(this._backtrack){for(var F in P)this[F]=P[F];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,E,C,A;this._more||(this.yytext="",this.match="");for(var P=this._currentRules(),F=0;F<P.length;F++)if(C=this._input.match(this.rules[P[F]]),C&&(!E||C[0].length>E[0].length)){if(E=C,A=F,this.options.backtrack_lexer){if(b=this.test_match(C,P[F]),b!==!1)return b;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(b=this.test_match(E,P[A]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var E=this.next();return E||this.lex()},begin:function(E){this.conditionStack.push(E)},popState:function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},pushState:function(E){this.begin(E)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(E,C,A,P){switch(A){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info \b )/i,/^(?:[ \s \n \r ]+)/i,/^(?:[ \s ]+)/i,/^(?:showInfo \b )/i,/^(?: $ )/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return m}();f.lexer=p;function v(){this.yy={}}return v.prototype=f,f.Parser=v,new v}();Y0t.parser=Y0t;const mqe=Y0t,oRt={info:!1};let X0t=oRt.info;const yqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:mqe,db:{clear:()=>{X0t=oRt.info},setInfo:i=>{X0t=i},getInfo:()=>X0t},renderer:{draw:(i,a,f)=>{Gt.debug( ` rendering  info  diagram  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const p=wOt(a);cg(p,100,400,!0),p.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text( ` v$ { f } ` )}}}},Symbol.toStringTag,{value:"Module"}));var Q0t=function(){var i=function(pt,ct,yt,st){for(yt=yt||{},st=pt.length;st--;yt[pt[st]]=ct);return yt},a=[1,4],f=[1,5],p=[1,6],v=[1,7],m=[1,9],b=[1,11,13,15,17,19,20,26,27,28,29],E=[2,5],C=[1,6,11,13,15,17,19,20,26,27,28,29],A=[26,27,28],P=[2,8],F=[1,18],j=[1,19],R=[1,20],H=[1,21],Y=[1,22],rt=[1,23],J=[1,28],it=[6,26,27,28,29],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32, $ accept:0, $ end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(ct,yt,st,Et,dt,bt,Ct){var tt=bt.length-1;switch(dt){case 4:Et.setShowData(!0);break;case 7:this. $ =bt[tt-1];break;case 9:Et.addSection(bt[tt-1],Et.cleanupValue(bt[tt]));break;case 10:this. $ =bt[tt].trim(),Et.setDiagramTitle(this. $ );break;case 11:this. $ =bt[tt].trim(),Et.setAccTitle(this. $ );break;case 12:case 13:this. $ =bt[tt].trim(),Et.setAccDescription(this. $ );break;case 14:Et.addSection(bt[tt].substr(8)),this. $ =bt[tt].substr(8);break;case 21:Et.parseDirective("%%{","open_directive");break;case 22:Et.parseDirective(bt[tt],"type_directive");break;case 23:bt[tt]=bt[tt].trim().replace(/'/g,'"'),Et.parseDirective(bt[tt],"arg_directive");break;case 24:Et.parseDirective("}%%","close_directive","pie");break}},table:[{3:1,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},{1:[3]},{3:10,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},{3:11,4:2,5:3,6:a,21:8,26:f,27:p,28:v,29:m},i(b,E,{7:12,8:[1,13]}),i(C,[2,18]),i(C,[2,19]),i(C,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},i(A,P,{21:8,9:16,10:17,5:24,1:[2,3],11:F,13:j,15:R,17:H,19:Y,20:rt,29:m}),i(b,E,{7:25}),{23:26,24:[1,27],32:J},i([24,32],[2,22]),i(b,[2,6]),{4:29,26:f,27:p,28:v},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},i(A,[2,13]),i(A,[2,14]),i(A,[2,15]),i(A,P,{21:8,9:16,10:17,5:24,1:[2,4],11:F,13:j,15:R,17:H,19:Y,20:rt,29:m}),i(it,[2,16]),{25:34,31:[1,35]},i(it,[2,24]),i(b,[2,7]),i(A,[2,9]),i(A,[2,10]),i(A,[2,11]),i(A,[2,12]),{23:36,32:J},{32:[2,23]},i(it,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(ct,yt){if(yt.recoverable)this.trace(ct);else{var st=new Error(ct);throw st.hash=yt,st}},parse:function(ct){var yt=this,st=[0],Et=[],dt=[null],bt=[],Ct=this.table,tt="",Pt=0,gt=0,Ft=2,X=1,Rt=bt.slice.call(arguments,1),Bt=Object.create(this.lexer),wt={yy:{}};for(var Ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ot)&&(wt.yy[Ot]=this.yy[Ot]);Bt.setInput(ct,wt.yy),wt.yy.lexer=Bt,wt.yy.parser=this,typeof Bt.yylloc>"u"&&(Bt.yylloc={});var Vt=Bt.yylloc;bt.push(Vt);var qe=Bt.options&&Bt.options.ranges;typeof wt.yy.parseError=="function"?this.parseError=wt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _n(){var ye;return ye=Et.pop()||Bt.lex()||X,typeof ye!="number"&&(ye instanceof Array&&(Et=ye,ye=Et.pop()),ye=yt.symbols_[ye]||ye),ye}for(var Te,Wn,Ae,ne,ke={},Ve,Ee,He,Ce;;){if(Wn=st[st.length-1],this.defaultActions[Wn]?Ae=this.defaultActions[Wn]:((Te===null||typeof Te>"u")&&(Te=_n()),Ae=Ct[Wn]&&Ct[Wn][Te]),typeof Ae>"u"||!Ae.length||!Ae[0]){var  $ e="";Ce=[];for(Ve in Ct[Wn])this.terminals_[Ve]&&Ve>Ft&&Ce.push("'"+this
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Bt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ce.join(", ")+", got '"+(this.terminals_[Te]||Te)+"'": $ e="Parse error on line "+(Pt+1)+": Unexpected "+(Te==X?"end of input":"'"+(this.terminals_[Te]||Te)+"'"),this.parseError( $ e,{text:Bt.match,token:this.terminals_[Te]||Te,line:Bt.yylineno,loc:Vt,expected:Ce})}if(Ae[0]instanceof Array&&Ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Wn+", token: "+Te);switch(Ae[0]){case 1:st.push(Te),dt.push(Bt.yytext),bt.push(Bt.yylloc),st.push(Ae[1]),Te=null,gt=Bt.yyleng,tt=Bt.yytext,Pt=Bt.yylineno,Vt=Bt.yylloc;break;case 2:if(Ee=this.productions_[Ae[1]][1],ke. $ =dt[dt.length-Ee],ke._ $ ={first_line:bt[bt.length-(Ee||1)].first_line,last_line:bt[bt.length-1].last_line,first_column:bt[bt.length-(Ee||1)].first_column,last_column:bt[bt.length-1].last_column},qe&&(ke._ $ .range=[bt[bt.length-(Ee||1)].range[0],bt[bt.length-1].range[1]]),ne=this.performAction.apply(ke,[tt,gt,Pt,wt.yy,Ae[1],dt,bt].concat(Rt)),typeof ne<"u")return ne;Ee&&(st=st.slice(0,-1*Ee*2),dt=dt.slice(0,-1*Ee),bt=bt.slice(0,-1*Ee)),st.push(this.productions_[Ae[1]][0]),dt.push(ke. $ ),bt.push(ke._ $ ),He=Ct[st[st.length-2]][st[st.length-1]],st.push(He);break;case 3:return!0}}return!0}},Tt=function(){var pt={EOF:1,parseError:function(yt,st){if(this.yy.parser)this.yy.parser.parseError(yt,st);else throw new Error(yt)},setInput:function(ct,yt){return this.yy=yt||this.yy||{},this._input=ct,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ct=this._input[0];this.yytext+=ct,this.yyleng++,this.offset++,this.match+=ct,this.matched+=ct;var yt=ct.match(/(?: \r \n ?| \n ).*/g);return yt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ct},unput:function(ct){var yt=ct.length,st=ct.split(/(?: \r \n ?| \n )/g);this._input=ct+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-yt),this.offset-=yt;var Et=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),st.length-1&&(this.yylineno-=st.length-1);var dt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:st?(st.length===Et.length?this.yylloc.first_column:0)+Et[Et.length-st.length].length-st[0].length:this.yylloc.first_column-yt},this.options.ranges&&(this.yylloc.range=[dt[0],dt[0]+this.yyleng-yt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ct){this.unput(this.match.slice(ct))},pastInput:function(){var ct=this.matched.substr(0,this.matched.length-this.match.length);return(ct.length>20?"...":"")+ct.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var ct=this.match;return ct.length<20&&(ct+=this._input.substr(0,20-ct.length)),(ct.substr(0,20)+(ct.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var ct=this.pastInput(),yt=new Array(ct.length+1).join("-");return ct+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +yt+"^"},test_match:function(ct,yt){var st,Et,dt;if(this.options.backtrack_lexer&&(dt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(dt.yylloc.range=this.yylloc.range.slice(0))),Et=ct[0].match(/(?: \r \n ?| \n ).*/g),Et&&(this.yylineno+=Et.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Et?Et[Et.length-1].length-Et[Et.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ct[0].length},this.yytext+=ct[0],this.match+=ct[0],this.matches=ct,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ct[0].length),this.matched+=ct[0],st=this.performAction.call(this,this.yy,this,yt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),st)return st;if(this._backtrack){for(var bt in dt)this[bt]=dt[bt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ct,yt,st,Et;this._more||(this.yytext="",this.match="");for(var dt=this._currentRules(),bt=0;bt<dt.length;bt++)if(st=this._input.match(this.rules[dt[bt]]),st&&(!yt||st[0].length>yt[0].length)){if(yt=st,Et=bt,this.options.backtrack_lexer){if(ct=this.test_match(st,dt[bt]),ct!==!1)return ct;if(this._backtrack){yt=!1;continue}else return!1}else if(!this.options.flex)break}return yt?(ct=this.test_match(yt,dt[Et]),ct!==!1?ct:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var yt=this.next();return yt||this.lex()},begin:function(yt){this.conditionStack.push(yt)},popState:function(){var yt=this.conditionStack.length-1;return yt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(yt){return yt=this.conditionStack.length-1-Math.abs(yt||0),yt>=0?this.conditionStack[yt]:"INITIAL"},pushState:function(yt){this.begin(yt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yt,st,Et,dt){switch(Et){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:break;case 6:break;case 7:return 26;case 8:break;case 9:break;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 20:this.popState();break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n \r ]+)/i,/^(?:%%[^ \n ]*)/i,/^(?:[ \s ]+)/i,/^(?:title \b )/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie \b )/i,/^(?:showData \b )/i,/^(?::[ \s ]*[ \d ]+(?: \. [ \d ]+)?)/i,/^(?: $ )/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};return pt}();ht.lexer=Tt;function xt(){this.yy={}}return xt.prototype=ht,ht.Parser=xt,new xt}();Q0t.parser=Q0t;const xqe=Q0t;let AK={},Z0t=!1;const kqe={parseDirective:function(i,a,f){l1.parseDirective(this,i,a,f)},getConfig:()=>Me().pie,addSection:function(i,a){i=oi.sanitizeText(i,Me()),AK[i]===void 0&&(AK[i]=a,Gt.debug("Added new section :",i))},getSections:()=>AK,cleanupValue:function(i){return i.substring(0,1)===":"&&(i=i.substring(1).trim()),Number(i.trim())},clear:function(){AK={},Z0t=!1,ug()},setAccTitle:m0,getAccTitle:lg,setDiagramTitle:Ob,getDiagramTitle:fp,setShowData:function(i){Z0t=i},getShowData:function(){return Z0t},getAccDescription:fg,setAccDescription:hg},Eqe=i=> `  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . pieCircle { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . pieStrokeColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width  :  $ { i . pieStrokeWidth } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    opacity  :  $ { i . pieOpacity } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . pieOuterCircle { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . pieOuterStrokeColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . pieOuterStrokeWidth } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . pieTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . pieTitleTextSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieTitleTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . slice  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieSectionTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size : $ { i . pieSectionTextSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    // fill: white;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . legend  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . pieLegendTextColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . pieLegendTextSize } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ;let y3=Me(),I5;const IP=450,Tqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:xqe,db:kqe,renderer:{draw:(i,a,f,p)=>{var ht;try{y3=Me(),Gt.debug( ` Rendering  info  diagram  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const Tt=Me().securityLevel;let xt;Tt==="sandbox"&&(xt=fr("#i"+a));const pt=fr(Tt==="sandbox"?xt.nodes()[0].contentDocument.body:"body"),yt=(Tt==="sandbox"?xt.nodes()[0].contentDocument:document).getElementById(a);I5=yt.parentElement.offsetWidth,I5===void 0&&(I5=1200),y3.useWidth!==void 0&&(I5=y3.useWidth),y3.pie.useWidth!==void 0&&(I5=y3.pie.useWidth);const st=pt.select("#"+a);cg(st,IP,I5,y3.pie.useMaxWidth),yt.setAttribute("viewBox","0 0 "+I5+" "+IP);var v=40,m=18,b=4,E=Math.min(I5,IP)/2-v,C=st.append("g").attr("transform","translate("+I5/2+","+IP/2+")"),A=p.db.getSections(),P=0;Object.keys(A).forEach(function(Ct){P+=A[Ct]});const Et=y3.themeVariables;var F=[Et.pie1,Et.pie2,Et.pie3,Et.pie4,Et.pie5,Et.pie6,Et.pie7,Et.pie8,Et.pie9,Et.pie10,Et.pie11,Et.pie12];const dt=((ht=y3.pie)==null?void 0:ht.textPosition)??.75;let[bt]=GA(Et.pieOuterStrokeWidth);bt??(bt=2);var j=k1t().range(F),R=Object.entries(A).map(function(Ct,tt){return{order:tt,name:Ct[0],value:Ct[1]}}),H=REe().value(function(Ct){return Ct.value}).sort(function(Ct,tt){return Ct.order-tt.order}),Y=H(R),rt=DA().innerRadius(0).outerRadius(E),J=DA().innerRadius(E*dt).outerRadius(E*dt);C.append("circle").attr("cx",0).attr("cy",0).attr("r",E+bt/2).attr("class","pieOuterCircle"),C.selectAll("mySlices").data(Y).enter().append("path").attr("d",rt).attr("fill",function(Ct){return j(Ct.data.name)}).attr("class","pieCircle"),C.selectAll("mySlices").data(Y).enter().append("text").text(function(Ct){return(Ct.data.value/P*100).toFixed(0)+"%"}).attr("transform",function(Ct){return"translate("+J.centroid(Ct)+")"}).style("text-anchor","middle").attr("class","slice"),C.append("text").text(p.db.getDiagramTitle()).attr("x",0).attr("y",-(IP-50)/2).attr("class","pieTitleText");var it=C.selectAll(".legend").data(j.domain()).enter().append("g").attr("class","legend").attr("transform",function(Ct,tt){const Pt=m+b,gt=Pt*j.domain().length/2,Ft=12*m,X=tt*Pt-gt;return"translate("+Ft+","+X+")"});it.append("rect").attr("width",m).attr("height",m).style("fill",j).style("stroke",j),it.data(Y).append("text").attr("x",m+b).attr("y",m-b).text(function(Ct){return p.db.getShowData()||y3.showData||y3.pie.showData?Ct.data.name+" ["+Ct.data.value+"]":Ct.data.name})}catch(Tt){Gt.error("Error while rendering info diagram"),Gt.error(Tt)}}},styles:Eqe}},Symbol.toStringTag,{value:"Module"}));var J0t=function(){var i=function(Ae,ne,ke,Ve){for(ke=ke||{},Ve=Ae.length;Ve--;ke[Ae[Ve]]=ne);return ke},a=[1,3],f=[1,5],p=[1,6],v=[1,7],m=[1,8],b=[1,10],E=[1,5,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],C=[1,5,7,14,16,18,20,21,26,28,29,30,31,32,38,39,40,41,47,48,50,51,52,53,54,55,56,57,58,59,60],A=[38,39,40],P=[2,8],F=[1,19],j=[1,23],R=[1,24],H=[1,25],Y=[1,26],rt=[1,27],J=[1,29],it=[1,30],ht=[1,31],Tt=[1,32],xt=[1,33],pt=[1,34],ct=[1,37],yt=[1,38],st=[1,39],Et=[1,40],dt=[1,41],bt=[1,42],Ct=[1,43],tt=[1,44],Pt=[1,45],gt=[1,46],Ft=[1,47],X=[1,48],Rt=[1,49],Bt=[1,52],wt=[1,67],Ot=[1,68],Vt=[5,23,27,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61],qe=[5,7,38,39,40,41],_n={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,directive:6,QUADRANT:7,document:8,line:9,statement:10,axisDetails:11,quadrantDetails:12,points:13,title:14,title_value:15,acc_title:16,acc_title_value:17,acc_descr:18,acc_descr_value:19,acc_descr_multiline_value:20,section:21,text:22,point_start:23,point_x:24,point_y:25,"X-AXIS":26,"AXIS-TEXT-DELIMITER":27,"Y-AXIS":28,QUADRANT_1:29,QUADRANT_2:30,QUADRANT_3:31,QUADRANT_4:32,openDirective:33,typeDirective:34,closeDirective:35,":":36,argDirective:37,NEWLINE:38,SEMI:39,EOF:40,open_directive:41,type_directive:42,arg_directive:43,close_directive:44,alphaNumToken:45,textNoTagsToken:46,STR:47,MD_STR:48,alphaNum:49,PUNCTUATION:50,AMP:51,NUM:52,ALPHA:53,COMMA:54,PLUS:55,EQUALS:56,MULT:57,DOT:58,BRKT:59,UNDERSCORE:60,MINUS:61, $ accept:0, $ end:1},terminals_:{2:"error",5:"SPACE",7:"QUADRANT",14:"title",15:"title_value",16:"acc_title",17:"acc_title_value",18:"acc_descr",19:"acc_descr_value",20:"acc_descr_multiline_value",21:"section",23:"point_start",24:"point_x",25
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Se.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +_r.join(", ")+", got '"+(this.terminals_[Nn]||Nn)+"'":qr="Parse error on line "+(fn+1)+": Unexpected "+(Nn==qt?"end of input":"'"+(this.terminals_[Nn]||Nn)+"'"),this.parseError(qr,{text:Se.match,token:this.terminals_[Nn]||Nn,line:Se.yylineno,loc:pi,expected:_r})}if(Li[0]instanceof Array&&Li.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Wr+", token: "+Nn);switch(Li[0]){case 1:Ve.push(Nn),He.push(Se.yytext),Ce.push(Se.yylloc),Ve.push(Li[1]),Nn=null,Yt=Se.yyleng,ye=Se.yytext,fn=Se.yylineno,pi=Se.yylloc;break;case 2:if(Xi=this.productions_[Li[1]][1],Ts. $ =He[He.length-Xi],Ts._ $ ={first_line:Ce[Ce.length-(Xi||1)].first_line,last_line:Ce[Ce.length-1].last_line,first_column:Ce[Ce.length-(Xi||1)].first_column,last_column:Ce[Ce.length-1].last_column},bi&&(Ts._ $ .range=[Ce[Ce.length-(Xi||1)].range[0],Ce[Ce.length-1].range[1]]),is=this.performAction.apply(Ts,[ye,Yt,fn,ki.yy,Li[1],He,Ce].concat(zi)),typeof is<"u")return is;Xi&&(Ve=Ve.slice(0,-1*Xi*2),He=He.slice(0,-1*Xi),Ce=Ce.slice(0,-1*Xi)),Ve.push(this.productions_[Li[1]][0]),He.push(Ts. $ ),Ce.push(Ts._ $ ),Ga= $ e[Ve[Ve.length-2]][Ve[Ve.length-1]],Ve.push(Ga);break;case 3:return!0}}return!0}},Te=function(){var Ae={EOF:1,parseError:function(ke,Ve){if(this.yy.parser)this.yy.parser.parseError(ke,Ve);else throw new Error(ke)},setInput:function(ne,ke){return this.yy=ke||this.yy||{},this._input=ne,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ne=this._input[0];this.yytext+=ne,this.yyleng++,this.offset++,this.match+=ne,this.matched+=ne;var ke=ne.match(/(?: \r \n ?| \n ).*/g);return ke?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ne},unput:function(ne){var ke=ne.length,Ve=ne.split(/(?: \r \n ?| \n )/g);this._input=ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ke),this.offset-=ke;var Ee=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ve.length-1&&(this.yylineno-=Ve.length-1);var He=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ve?(Ve.length===Ee.length?this.yylloc.first_column:0)+Ee[Ee.length-Ve.length].length-Ve[0].length:this.yylloc.first_column-ke},this.options.ranges&&(this.yylloc.range=[He[0],He[0]+this.yyleng-ke]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ne){this.unput(this.match.slice(ne))},pastInput:function(){var ne=this.matched.substr(0,this.matched.length-this.match.length);return(ne.length>20?"...":"")+ne.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var ne=this.match;return ne.length<20&&(ne+=this._input.substr(0,20-ne.length)),(ne.substr(0,20)+(ne.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var ne=this.pastInput(),ke=new Array(ne.length+1).join("-");return ne+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ke+"^"},test_match:function(ne,ke){var Ve,Ee,He;if(this.options.backtrack_lexer&&(He={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(He.yylloc.range=this.yylloc.range.slice(0))),Ee=ne[0].match(/(?: \r \n ?| \n ).*/g),Ee&&(this.yylineno+=Ee.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ee?Ee[Ee.length-1].length-Ee[Ee.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ne[0].length},this.yytext+=ne[0],this.match+=ne[0],this.matches=ne,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ne[0].length),this.matched+=ne[0],Ve=this.performAction.call(this,this.yy,this,ke,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ve)return Ve;if(this._backtrack){for(var Ce in He)this[Ce]=He[Ce];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ne,ke,Ve,Ee;this._more||(this.yytext="",this.match="");for(var He=this._currentRules(),Ce=0;Ce<He.length;Ce++)if(Ve=this._input.match(this.rules[He[Ce]]),Ve&&(!ke||Ve[0].length>ke[0].length)){if(ke=Ve,Ee=Ce,this.options.backtrack_lexer){if(ne=this.test_match(Ve,He[Ce]),ne!==!1)return ne;if(this._backtrack){ke=!1;continue}else return!1}else if(!this.options.flex)break}return ke?(ne=this.test_match(ke,He[Ee]),ne!==!1?ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ke=this.next();return ke||this.lex()},begin:function(ke){this.conditionStack.push(ke)},popState:function(){var ke=this.conditionStack.length-1;return ke>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ke){return ke=this.conditionStack.length-1-Math.abs(ke||0),ke>=0?this.conditionStack[ke]:"INITIAL"},pushState:function(ke){this.begin(ke)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ke,Ve,Ee,He){switch(Ee){case 0:return this.begin("open_directive"),41;case 1:return this.begin("type_directive"),42;case 2:return this.popState(),this.begin("arg_directive"),36;case 3:return this.popState(),this.popState(),44;case 4:return 43;case 5:break;case 6:break;case 7:return 38;case 8:break;case 9:return this.begin("title"),14;case 10:return this.popState(),"title_value";case 11:return this.begin("acc_title"),16;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),18;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 26;case 19:return 28;case 20:return 27;case 21:return 29;case 22:return 30;case 23:return 31;case 24:return 32;case 25:this.begin("md_string");break;case 26:return"MD_STR";case 27:this.popState();break;case 28:this.begin("string");break;case 29:this.popState();break;case 30:return"STR";case 31:return this.begin("point_start"),23;case 32:return this.begin("point_x"),24;case 33:this.popState();break;case 34:this.popState(),this.begin("point_y");break;case 35:return this.popState(),25;case 36:return 7;case 37:return 53;case 38:return"COLON";case 39:return 55;case 40:return 54;case 41:return 56;case 42:return 56;case 43:return 57;case 44:return 59;case 45:return 60;case 46:return 58;case 47:return 51;case 48:return 61;case 49:return 52;case 50:return 5;case 51:return 39;case 52:return 50;case 53:return 40}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n \r ]+)/i,/^(?:%%[^ \n ]*)/i,/^(?:title \b )/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][ ` ] ) / i , /^(?:[^`"]+)/i , /^(?:[`]["])/i , /^(?:["])/i , /^(?:["])/i , /^(?:[^"]*)/i , /^(?:\s*:\s*\[\s*)/i , /^(?:(1)|(0(.\d+)?))/i , /^(?:\s*\] *)/i , /^(?:\s*,\s*)/i , /^(?:(1)|(0(.\d+)?))/i , /^(?: *quadrantChart *)/i , /^(?:[A-Za-z]+)/i , /^(?::)/i , /^(?:\+)/i , /^(?:,)/i , /^(?:=)/i , /^(?:=)/i , /^(?:\*)/i , /^(?:#)/i , /^(?:[\_])/i , /^(?:\.)/i , /^(?:&)/i , /^(?:-)/i , /^(?:[0-9]+)/i , /^(?:\s)/i , /^(?:;)/i , /^(?:[!"#$%&'*+,-.`?\\_/])/i , /^(?:$)/i ] , conditions : { point _y : { rules : [ 35 ] , inclusive : ! 1 } , point _x : { rules : [ 34 ] , inclusive : ! 1 } , point _start : { rules : [ 32 , 33 ] , inclusive : ! 1 } , acc _descr _multiline : { rules : [ 16 , 17 ] , inclusive : ! 1 } , acc _descr : { rules : [ 14 ] , inclusive : ! 1 } , acc _title : { rules : [ 12 ] , inclusive : ! 1 } , close _directive : { rules : [ ] , inclusive : ! 1 } , arg _directive : { rules : [ 3 , 4 ] , inclusive : ! 1 } , type _directive : { rules : [ 2 , 3 ] , inclusive : ! 1 } , open _directive : { rules : [ 1 ] , inclusive : ! 1 } , title : { rules : [ 10 ] , inclusive : ! 1 } , md _string : { rules : [ 26 , 27 ] , inclusive : ! 1 } , string : { rules : [ 29 , 30 ] , inclusive : ! 1 } , INITIAL : { rules : [ 0 , 5 , 6 , 7 , 8 , 9 , 11 , 13 , 15 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 28 , 31 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 ] , inclusive : ! 0 } } } ; return  Ae } ( ) ; _n . lexer = Te ; function  Wn ( ) { this . yy = { } } return  Wn . prototype = _n , _n . Parser = Wn , new  Wn } ( ) ; J0t . parser = J0t ; const  _qe = J0t , pg = tIt ( ) ; class  Cqe { constructor ( ) { this . config = this . getDefaultConfig ( ) , this . themeConfig = this . getDefaul  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i);const C=E.securityLevel;let A;C==="sandbox"&&(A=fr("#i"+a));const F=fr(C==="sandbox"?A.nodes()[0].contentDocument.body:"body").select( ` [ id = "${a}" ] ` ),j=F.append("g").attr("class","main"),R=((yt=E.quadrantChart)==null?void 0:yt.chartWidth)||500,H=((st=E.quadrantChart)==null?void 0:st.chartHeight)||500;cg(F,H,R,((Et=E.quadrantChart)==null?void 0:Et.useMaxWidth)||!0),F.attr("viewBox","0 0 "+R+" "+H),p.db.setHeight(H),p.db.setWidth(R);const Y=p.db.getQuadrantData(),rt=j.append("g").attr("class","quadrants"),J=j.append("g").attr("class","border"),it=j.append("g").attr("class","data-points"),ht=j.append("g").attr("class","labels"),Tt=j.append("g").attr("class","title");Y.title&&Tt.append("text").attr("x",0).attr("y",0).attr("fill",Y.title.fill).attr("font-size",Y.title.fontSize).attr("dominant-baseline",v(Y.title.horizontalPos)).attr("text-anchor",m(Y.title.verticalPos)).attr("transform",b(Y.title)).text(Y.title.text),Y.borderLines&&J.selectAll("line").data(Y.borderLines).enter().append("line").attr("x1",dt=>dt.x1).attr("y1",dt=>dt.y1).attr("x2",dt=>dt.x2).attr("y2",dt=>dt.y2).style("stroke",dt=>dt.strokeFill).style("stroke-width",dt=>dt.strokeWidth);const xt=rt.selectAll("g.quadrant").data(Y.quadrants).enter().append("g").attr("class","quadrant");xt.append("rect").attr("x",dt=>dt.x).attr("y",dt=>dt.y).attr("width",dt=>dt.width).attr("height",dt=>dt.height).attr("fill",dt=>dt.fill),xt.append("text").attr("x",0).attr("y",0).attr("fill",dt=>dt.text.fill).attr("font-size",dt=>dt.text.fontSize).attr("dominant-baseline",dt=>v(dt.text.horizontalPos)).attr("text-anchor",dt=>m(dt.text.verticalPos)).attr("transform",dt=>b(dt.text)).text(dt=>dt.text.text),ht.selectAll("g.label").data(Y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(dt=>dt.text).attr("fill",dt=>dt.fill).attr("font-size",dt=>dt.fontSize).attr("dominant-baseline",dt=>v(dt.horizontalPos)).attr("text-anchor",dt=>m(dt.verticalPos)).attr("transform",dt=>b(dt));const ct=it.selectAll("g.data-point").data(Y.points).enter().append("g").attr("class","data-point");ct.append("circle").attr("cx",dt=>dt.x).attr("cy",dt=>dt.y).attr("r",dt=>dt.radius).attr("fill",dt=>dt.fill),ct.append("text").attr("x",0).attr("y",0).text(dt=>dt.text.text).attr("fill",dt=>dt.text.fill).attr("font-size",dt=>dt.text.fontSize).attr("dominant-baseline",dt=>v(dt.text.horizontalPos)).attr("text-anchor",dt=>m(dt.text.verticalPos)).attr("transform",dt=>b(dt.text))}},styles:()=>""}},Symbol.toStringTag,{value:"Module"}));var tgt=function(){var i=function(Wn,Ae,ne,ke){for(ne=ne||{},ke=Wn.length;ke--;ne[Wn[ke]]=Ae);return ne},a=[1,3],f=[1,5],p=[1,6],v=[1,7],m=[1,8],b=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],E=[1,22],C=[2,13],A=[1,26],P=[1,27],F=[1,28],j=[1,29],R=[1,30],H=[1,31],Y=[1,24],rt=[1,32],J=[1,33],it=[1,36],ht=[71,72],Tt=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],xt=[1,56],pt=[1,57],ct=[1,58],yt=[1,59],st=[1,60],Et=[1,61],dt=[1,62],bt=[62,63],Ct=[1,74],tt=[1,70],Pt=[1,71],gt=[1,72],Ft=[1,73],X=[1,75],Rt=[1,79],Bt=[1,80],wt=[1,77],Ot=[1,78],Vt=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],qe={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DE
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +zi.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ga.join(", ")+", got '"+(this.terminals_[dn]||dn)+"'":_r="Parse error on line "+(ye+1)+": Unexpected "+(dn==Mi?"end of input":"'"+(this.terminals_[dn]||dn)+"'"),this.parseError(_r,{text:zi.match,token:this.terminals_[dn]||dn,line:zi.yylineno,loc:Ri,expected:Ga})}if(Wr[0]instanceof Array&&Wr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Nn+", token: "+dn);switch(Wr[0]){case 1:ke.push(dn),Ee.push(zi.yytext),He.push(zi.yylloc),ke.push(Wr[1]),dn=null,fn=zi.yyleng, $ e=zi.yytext,ye=zi.yylineno,Ri=zi.yylloc;break;case 2:if(Aa=this.productions_[Wr[1]][1],is. $ =Ee[Ee.length-Aa],is._ $ ={first_line:He[He.length-(Aa||1)].first_line,last_line:He[He.length-1].last_line,first_column:He[He.length-(Aa||1)].first_column,last_column:He[He.length-1].last_column},pi&&(is._ $ .range=[He[He.length-(Aa||1)].range[0],He[He.length-1].range[1]]),Li=this.performAction.apply(is,[ $ e,fn,ye,Se.yy,Wr[1],Ee,He].concat(qt)),typeof Li<"u")return Li;Aa&&(ke=ke.slice(0,-1*Aa*2),Ee=Ee.slice(0,-1*Aa),He=He.slice(0,-1*Aa)),ke.push(this.productions_[Wr[1]][0]),Ee.push(is. $ ),He.push(is._ $ ),Xi=Ce[ke[ke.length-2]][ke[ke.length-1]],ke.push(Xi);break;case 3:return!0}}return!0}},_n=function(){var Wn={EOF:1,parseError:function(ne,ke){if(this.yy.parser)this.yy.parser.parseError(ne,ke);else throw new Error(ne)},setInput:function(Ae,ne){return this.yy=ne||this.yy||{},this._input=Ae,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Ae=this._input[0];this.yytext+=Ae,this.yyleng++,this.offset++,this.match+=Ae,this.matched+=Ae;var ne=Ae.match(/(?: \r \n ?| \n ).*/g);return ne?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ae},unput:function(Ae){var ne=Ae.length,ke=Ae.split(/(?: \r \n ?| \n )/g);this._input=Ae+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ne),this.offset-=ne;var Ve=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ke.length-1&&(this.yylineno-=ke.length-1);var Ee=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ke?(ke.length===Ve.length?this.yylloc.first_column:0)+Ve[Ve.length-ke.length].length-ke[0].length:this.yylloc.first_column-ne},this.options.ranges&&(this.yylloc.range=[Ee[0],Ee[0]+this.yyleng-ne]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Ae){this.unput(this.match.slice(Ae))},pastInput:function(){var Ae=this.matched.substr(0,this.matched.length-this.match.length);return(Ae.length>20?"...":"")+Ae.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var Ae=this.match;return Ae.length<20&&(Ae+=this._input.substr(0,20-Ae.length)),(Ae.substr(0,20)+(Ae.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var Ae=this.pastInput(),ne=new Array(Ae.length+1).join("-");return Ae+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ne+"^"},test_match:function(Ae,ne){var ke,Ve,Ee;if(this.options.backtrack_lexer&&(Ee={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ee.yylloc.range=this.yylloc.range.slice(0))),Ve=Ae[0].match(/(?: \r \n ?| \n ).*/g),Ve&&(this.yylineno+=Ve.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ve?Ve[Ve.length-1].length-Ve[Ve.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+Ae[0].length},this.yytext+=Ae[0],this.match+=Ae[0],this.matches=Ae,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ae[0].length),this.matched+=Ae[0],ke=this.performAction.call(this,this.yy,this,ne,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ke)return ke;if(this._backtrack){for(var He in Ee)this[He]=Ee[He];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ae,ne,ke,Ve;this._more||(this.yytext="",this.match="");for(var Ee=this._currentRules(),He=0;He<Ee.length;He++)if(ke=this._input.match(this.rules[Ee[He]]),ke&&(!ne||ke[0].length>ne[0].length)){if(ne=ke,Ve=He,this.options.backtrack_lexer){if(Ae=this.test_match(ke,Ee[He]),Ae!==!1)return Ae;if(this._backtrack){ne=!1;continue}else return!1}else if(!this.options.flex)break}return ne?(Ae=this.test_match(ne,Ee[Ve]),Ae!==!1?Ae:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ne=this.next();return ne||this.lex()},begin:function(ne){this.conditionStack.push(ne)},popState:function(){var ne=this.conditionStack.length-1;return ne>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ne){return ne=this.conditionStack.length-1-Math.abs(ne||0),ne>=0?this.conditionStack[ne]:"INITIAL"},pushState:function(ne){this.begin(ne)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ne,ke,Ve,Ee){switch(Ve){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:break;case 15:break;case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 53:this.popState();break;case 54:return"qString";case 55:return ke.yytext=ke.yytext.trim(),71}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:( \r ? \n )+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:%[^ \n ]*)/i,/^(?: $ )/i,/^(?:requirementDiagram \b )/i,/^(?: \{ )/i,/^(?: \} )/i,/^(?::)/i,/^(?:id \b )/i,/^(?:text \b )/i,/^(?:risk \b )/i,/^(?:verifyMethod \b )/i,/^(?:requirement \b )/i,/^(?:functionalRequirement \b )/i,/^(?:interfaceRequirement \b )/i,/^(?:performanceRequirement \b )/i,/^(?:physicalRequirement \b )/i,/^(?:designConstraint \b )/i,/^(?:low \b )/i,/^(?:medium \b )/i,/^(?:high \b )/i,/^(?:analysis \b )/i,/^(?:demonstration \b )/i,/^(?:inspection \b )/i,/^(?:test \b )/i,/^(?:element \b )/i,/^(?:contains \b )/i,/^(?:copies \b )/i,/^(?:derives \b )/i,/^(?:satisfies \b )/i,/^(?:verifies \b )/i,/^(?:refines \b )/i,/^(?:traces \b )/i,/^(?:type \b )/i,/^(?:docref \b )/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[ \w ][^ \r \n \{ \< \> \- \= ]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};return Wn}();qe.lexer=_n;function Te(){this.yy={}}return Te.prototype=qe,qe.Parser=Te,new Te}();tgt.parser=tgt;const zqe=tgt;let egt=[],pp={},OP={},hk={},NP={};const qqe={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQ
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  marker  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  marker . cross  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  svg  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  $ { i . fontSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . requirementBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill - opacity :  1.0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . requirementBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . requirementBorderSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqTitle ,  . reqLabel { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :   $ { i . requirementTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . reqLabelBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill - opacity :  1.0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . req - title - line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . requirementBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  $ { i . requirementBorderSize } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLine  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . relationColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . relationshipLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . relationLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,ngt={CONTAINS:"contains",ARROW:"arrow"},cRt={ReqMarkers:ngt,insertLineEndings:(i,a)=>{let f=i.append("defs").append("marker").attr("id",ngt.CONTAINS+"_line_ending").attr("refX",0).attr("refY",a.line_height/2).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("g");f.append("circle").attr("cx",a.line_height/2).attr("cy",a.line_height/2).attr("r",a.line_height/2).attr("fill","none"),f.append("line").attr("x1",0).attr("x2",a.line_height).attr("y1",a.line_height/2).attr("y2",a.line_height/2).attr("stroke-width",1),f.append("line").attr("y1",0).attr("y2",a.line_height).attr("x1",a.line_height/2).attr("x2",a.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",ngt.ARROW+"_line_ending").attr("refX",a.line_height).attr("refY",.5*a.line_height).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("path").attr("d", ` M0 , 0  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      L$ { a . line _height } , $ { a . line _height / 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      M$ { a . line _height } , $ { a . line _height / 2 } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      L0 , $ { a . line _height } ` ).attr("stroke-width",1)}};let _h={},uRt=0;const lRt=(i,a)=>i.insert("rect","#"+a).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",_h.rect_min_width+"px").attr("height",_h.rect_min_height+"px"),hRt=(i,a,f)=>{let p=_h.rect_min_width/2,v=i.append("text").attr("class","req reqLabel reqTitle").attr("id",a).attr("x",p).attr("y",_h.rect_padding).attr("dominant-baseline","hanging"),m=0;f.forEach(A=>{m==0?v.append("tspan").attr("text-anchor","middle").attr("x",_h.rect_min_width/2).attr("dy",0).text(A):v.append("tspan").attr("text-anchor","middle").attr("x",_h.rect_min_width/2).attr("dy",_h.line_height*.75).text(A),m++});let b=1.5*_h.rect_padding,E=m*_h.line_height*.75,C=b+E;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",_h.rect_min_width).attr("y1",C).attr("y2",C),{titleNode:v,y:C}},fRt=(i,a,f,p)=>{let v=i.append("text").attr("class","req reqLabel").attr("id",a).attr("x",_h.rect_padding).attr("y",p).attr("dominant-baseline","hanging"),m=0;const b=30;let E=[];return f.forEach(C=>{let A=C.length;for(;A>b&&m<3;){let P=C.substring(0,b);C=C.substring(b,C.length),A=C.length,E[E.length]=P,m++}if(m==3){let P=E[E.length-1];E[E.length-1]=P.substring(0,P.length-4)+"..."}else E[E.length]=C;m=0}),E.forEach(C=>{v.append("tspan").attr("x",_h.rect_padding).attr("dy",_h.line_height).text(C)}),v},Vqe=(i,a,f,p)=>{const v=a.node().getTotalLength(),m=a.node().getPointAtLength(v*.5),b="rel"+uRt;uRt++;const C=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",m.x).attr("y",m.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(p).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",m.x-C.width/2).attr("y",m.y-C.height/2).attr("width",C.width).attr("height",C.height).attr("fill","white").attr("fill-opacity","85%")},Gqe=function(i,a,f,p,v){const m=f.edge(hL(a.src),hL(a.dst)),b=QE().x(function(C){return C.x}).y(function(C){return C.y}),E=i.insert("path","#"+p).attr("class","er relationshipLine").attr("d",b(m.points)).attr("fill","none");a.type==v.db.Relationships.CONTAINS?E.attr("marker-start","url("+oi.getUrl(_h.arrowMarkerAbsolute)+"#"+a.type+"_line_ending)"):(E.attr("stroke-dasharray","10,7"),E.attr("marker-end","url("+oi.getUrl(_h.arrowMarkerAbsolute)+"#"+cRt.ReqMarkers.ARROW+"_line_ending)")),Vqe(i,E,_h, ` << $ { a . type } >> ` )},Uqe=(i,a,f)=>{Object.keys(i).forEach(p=>{let v=i[p];p=hL(p),Gt.info("Added new requirement: ",p);const m=f.append("g").attr("id",p),b="req-"+p,E=lRt(m,b);let C=hRt(m,p+"_title",[ ` << $ { v . type } >> ` , ` $ { v . name } ` ]);fRt(m,p+"_body",[ ` Id :  $ { v . id } ` , ` Text :  $ { v . text } ` , ` Risk :  $ { v . risk } ` , ` Verification :  $ { v . verifyMethod } ` ],C.y);const A=E.node().getBBox();a.setNode(p,{width:A.width,height:A.height,shape:"rect",id:p})})},Wqe=(i,a,f)=>{Object.keys(i).forEach(p=>{let v=i[p];const m=hL(p),b=f.append("g").attr("id",m),E="element-"+m,C=lRt(b,E);let A=hRt(b,E+"_title",["<<Element>>", ` $ { p } ` ]);fRt(b,E+"_body",[ ` Type :  $ { v . type || "Not Specified" } ` , ` Doc  Ref :  $ { v . docRef || "None" } ` ],A.y);const P=C.node().getBBox();a.setNode(m,{width:P.width,height:P.height,shape:"rect",id:m})})},Kqe=(i,a)=>(i.forEach(function(f){let p=hL(f.src),v=hL(f.dst);a.setEdge(p,v,{relationship:f})}),i),Yqe=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&(i.select("#"+f),i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )"))})},hL=i=>i.replace(/ \s /g,"").replace(/ \. /g,"_"),Xqe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:zqe,db:qqe,renderer:{draw:(i,a,f,p)=>{_h=Me().requirement;const v=_h.securityLevel;let m;v==="sandbox"&&(m=fr("#i"+a));const E=fr(v==="sandbox"?m.nodes()[0].contentDocument.body:"body").select( ` [ id = '${a}' ] ` );cRt.insertLineEndings(E,_h);const C=new h1({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:_h.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let A=p.db.getRequirements(),P=p.db.getElements(),F=p.db.getRelationships();Uqe(A,C,E),W
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +bi.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Js.join(", ")+", got '"+(this.terminals_[Ts]||Ts)+"'":Vn="Parse error on line "+(zi+1)+": Unexpected "+(Ts==Ri?"end of input":"'"+(this.terminals_[Ts]||Ts)+"'"),this.parseError(Vn,{text:bi.match,token:this.terminals_[Ts]||Ts,line:bi.yylineno,loc:Wr,expected:Js})}if(Xi[0]instanceof Array&&Xi.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Aa+", token: "+Ts);switch(Xi[0]){case 1: $ e.push(Ts),fn.push(bi.yytext),Yt.push(bi.yylloc), $ e.push(Xi[1]),Ts=null,Se=bi.yyleng,qt=bi.yytext,zi=bi.yylineno,Wr=bi.yylloc;break;case 2:if(Oi=this.productions_[Xi[1]][1],_r. $ =fn[fn.length-Oi],_r._ $ ={first_line:Yt[Yt.length-(Oi||1)].first_line,last_line:Yt[Yt.length-1].last_line,first_column:Yt[Yt.length-(Oi||1)].first_column,last_column:Yt[Yt.length-1].last_column},Li&&(_r._ $ .range=[Yt[Yt.length-(Oi||1)].range[0],Yt[Yt.length-1].range[1]]),Ga=this.performAction.apply(_r,[qt,Se,zi,dn.yy,Xi[1],fn,Yt].concat(pi)),typeof Ga<"u")return Ga;Oi&&( $ e= $ e.slice(0,-1*Oi*2),fn=fn.slice(0,-1*Oi),Yt=Yt.slice(0,-1*Oi)), $ e.push(this.productions_[Xi[1]][0]),fn.push(_r. $ ),Yt.push(_r._ $ ),pr=Mi[ $ e[ $ e.length-2]][ $ e[ $ e.length-1]], $ e.push(pr);break;case 3:return!0}}return!0}},ke=function(){var Ee={EOF:1,parseError:function(Ce, $ e){if(this.yy.parser)this.yy.parser.parseError(Ce, $ e);else throw new Error(Ce)},setInput:function(He,Ce){return this.yy=Ce||this.yy||{},this._input=He,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var He=this._input[0];this.yytext+=He,this.yyleng++,this.offset++,this.match+=He,this.matched+=He;var Ce=He.match(/(?: \r \n ?| \n ).*/g);return Ce?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),He},unput:function(He){var Ce=He.length, $ e=He.split(/(?: \r \n ?| \n )/g);this._input=He+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ce),this.offset-=Ce;var ye=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1), $ e.length-1&&(this.yylineno-= $ e.length-1);var fn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column: $ e?( $ e.length===ye.length?this.yylloc.first_column:0)+ye[ye.length- $ e.length].length- $ e[0].length:this.yylloc.first_column-Ce},this.options.ranges&&(this.yylloc.range=[fn[0],fn[0]+this.yyleng-Ce]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(He){this.unput(this.match.slice(He))},pastInput:function(){var He=this.matched.substr(0,this.matched.length-this.match.length);return(He.length>20?"...":"")+He.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var He=this.match;return He.length<20&&(He+=this._input.substr(0,20-He.length)),(He.substr(0,20)+(He.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var He=this.pastInput(),Ce=new Array(He.length+1).join("-");return He+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ce+"^"},test_match:function(He,Ce){var  $ e,ye,fn;if(this.options.backtrack_lexer&&(fn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(fn.yylloc.range=this.yylloc.range.slice(0))),ye=He[0].match(/(?: \r \n ?| \n ).*/g),ye&&(this.yylineno+=ye.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ye?ye[ye.length-1].length-ye[ye.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+He[0].length},this.yytext+=He[0],this.match+=He[0],this.matches=He,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(He[0].length),this.matched+=He[0], $ e=this.performAction.call(this,this.yy,this,Ce,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1), $ e)return  $ e;if(this._backtrack){for(var Yt in fn)this[Yt]=fn[Yt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var He,Ce, $ e,ye;this._more||(this.yytext="",this.match="");for(var fn=this._currentRules(),Yt=0;Yt<fn.length;Yt++)if( $ e=this._input.match(this.rules[fn[Yt]]), $ e&&(!Ce|| $ e[0].length>Ce[0].length)){if(Ce= $ e,ye=Yt,this.options.backtrack_lexer){if(He=this.test_match( $ e,fn[Yt]),He!==!1)return He;if(this._backtrack){Ce=!1;continue}else return!1}else if(!this.options.flex)break}return Ce?(He=this.test_match(Ce,fn[ye]),He!==!1?He:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ce=this.next();return Ce||this.lex()},begin:function(Ce){this.conditionStack.push(Ce)},popState:function(){var Ce=this.conditionStack.length-1;return Ce>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ce){return Ce=this.conditionStack.length-1-Math.abs(Ce||0),Ce>=0?this.conditionStack[Ce]:"INITIAL"},pushState:function(Ce){this.begin(Ce)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ce, $ e,ye,fn){switch(ye){case 0:return this.begin("open_directive"),86;case 1:return this.begin("type_directive"),87;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),89;case 4:return 88;case 5:return 5;case 6:break;case 7:break;case 8:break;case 9:break;case 10:break;case 11:return 25;case 12:return this.begin("LINE"),20;case 13:return this.begin("ID"),56;case 14:return this.begin("ID"),58;case 15:return 19;case 16:return this.begin("ID"),59;case 17:return  $ e.yytext= $ e.yytext.trim(),this.begin("ALIAS"),76;case 18:return this.popState(),this.popState(),this.begin("LINE"),57;case 19:return this.popState(),this.popState(),5;case 20:return this.begin("LINE"),42;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),44;case 23:return this.begin("LINE"),45;case 24:return this.begin("LINE"),55;case 25:return this.begin("LINE"),47;case 26:return this.begin("LINE"),49;case 27:return this.begin("LINE"),54;case 28:return this.begin("LINE"),50;case 29:return this.begin("LINE"),53;case 30:return this.begin("LINE"),52;case 31:return this.popState(),21;case 32:return 22;case 33:return 71;case 34:return 72;case 35:return 65;case 36:return 66;case 37:return 67;case 38:return 68;case 39:return 63;case 40:return 60;case 41:return this.begin("ID"),27;case 42:return this.begin("ID"),29;case 43:return 35;case 44:return 36;case 45:return this.begin("acc_title"),37;case 46:return this.popState(),"acc_title_value";case 47:return this.begin("acc_descr"),39;case 48:return this.popState(),"acc_descr_value";case 49:this.begin("acc_descr_multiline");break;case 50:this.popState();break;case 51:return"acc_descr_multiline_value";case 52:return 7;case 53:return 24;case 54:return 26;case 55:return 70;case 56:return 5;case 57:return  $ e.yytext= $ e.yytext.trim(),76;case 58:return 79;case 59:return 80;case 60:return 77;case 61:return 78;case 62:return 81;case 63:return 82;case 64:return 83;case 65:return 84;case 66:return 85;case 67:return 74;case 68:return 75;case 69:return 5;case 70:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:((?! \n ) \s )+)/i,/^(?:#[^ \n ]*)/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[0-9]+(?=[  \n ]+))/i,/^(?:box \b )/i,/^(?:participant \b )/i,/^(?:actor \b )/i,/^(?:create \b )/i,/^(?:destroy \b )/i,/^(?:[^ \- >: \n ,;]+?([ \- ]*[^ \- >: \n ,;]+?)*?(?=((?! \n ) \s )+as(?! \n ) \s |[# \n ;]| $ ))/i,/^(?:as \b )/i,/^(?:(?:))/i,/^(?:loop \b )/i,/^(?:rect \b )/i,/^(?:opt \b )/i,/^(?:alt \b )/i,/^(?:else \b )/i,/^(?:par \b )/i,/^(?:par_over \b )/i,/^(?:and \b )/i,/^(?:critical \b )/i,/^(?:option \b )/i,/^(?:break \b )/i,/^(?:(?:[:]?(?:no)?wrap)?[^# \n ;]*)/i,/^(?:end \b )/i,/^(?:left of \b )/i,/^(?:right of \b )/i,/^(?:links \b )/i,/^(?:link \b )/i,/^(?:properties \b )/i,/^(?:details \b )/i,/^(?:over \b )/i,/^(?:note \b )/i,/^(?:activate \b )/i,/^(?:deactivate \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:title: \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:sequenceDiagram \b )/i,/^(?:autonumber \b )/i,/^(?:off \b )/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^ \+ \- >: \n ,;]+((?!(-x|--x|- \) |-- \) ))[ \- ]*[^ \+ \- >: \n ,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text . actor  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorLineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageLine0  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageLine1  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ,  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # arrowhead  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . sequenceNumber  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . sequenceNumberColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # sequencenumber  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  # crosshead  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . signalColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . messageText  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . signalTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelBox  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelBoxBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . labelText ,  . labelText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . loopText ,  . loopText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . loopTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . loopLine  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - dasharray :  2 ,  2 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . labelBoxBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . note  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    //stroke: #decc93;
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . noteText ,  . noteText  >  tspan  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . activation2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . activationBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . activationBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actorPopupMenu  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actorPopupMenuPanel  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    box - shadow :  0 px  8 px  16 px  0 px  rgba ( 0 , 0 , 0 , 0.2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    filter :  drop - shadow ( 3 px  5 px  2 px  rgb ( 0  0  0  /  0.4 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - man  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - man  circle ,  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . actorBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . actorBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,k9=18*2,ugt=function(i,a){return zW(i,a)},mRt=(i,a)=>{cAe(()=>{const f=document.querySelectorAll(i);f.length!==0&&(f[0].addEventListener("mouseover",function(){SHe("actor"+a+"_popup")}),f[0].addEventListener("mouseout",function(){AHe("actor"+a+"_popup")}))})},THe=function(i,a,f,p,v){if(a.links===void 0||a.links===null||Object.keys(a.links).length===0)return{height:0,width:0};const m=a.links,b=a.actorCnt,E=a.rectData;var C="none";v&&(C="block !important");const A=i.append("g");A.attr("id","actor"+b+"_popup"),A.attr("class","actorPopupMenu"),A.attr("display",C),mRt("#actor"+b+"_popup",b);var P="";E.class!==void 0&&(P=" "+E.class);let F=E.width>f?E.width:f;const j=A.append("rect");if(j.attr("class","actorPopupMenuPanel"+P),j.attr("x",E.x),j.attr("y",E.height),j.attr("fill",E.fill),j.attr("stroke",E.stroke),j.attr("width",F),j.attr("height",E.height),j.attr("rx",E.rx),j.attr("ry",E.ry),m!=null){var R=20;for(let rt in m){var H=A.append("a"),Y=Zx(m[rt]);H.attr("xlink:href",Y),H.attr("target","_blank"),VHe(p)(rt,H,E.x+10,E.height+R,F,20,{class:"actor"},p),R+=30}}return j.attr("height",R),{height:E.height+R,width:F}},_He=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'block'; }"},CHe=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = 'none'; }"},SHe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="block")},AHe=function(i){var a=document.getElementById(i);a!=null&&(a.style.display="none")},gL=function(i,a){let f=0,p=0;const v=a.text.split(oi.lineBreakRegex),[m,b]=GA(a.fontSize);let E=[],C=0,A=()=>a.y;if(a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0)switch(a.valign){case"top":case"start":A=()=>Math.round(a.y+a.textMargin);break;case"middle":case"center":A=()=>Math.round(a.y+(f+p+a.textMargin)/2);break;case"bottom":case"end":A=()=>Math.round(a.y+(f+p+2*a.textMargin)-a.textMargin);break}if(a.anchor!==void 0&&a.textMargin!==void 0&&a.width!==void 0)switch(a.anchor){case"left":case"start":a.x=Math.round(a.x+a.textMargin),a.anchor="start",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"middle":case"center":a.x=Math.round(a.x+a.width/2),a.anchor="middle",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"right":case"end":a.x=Math.round(a.x+a.width-a.textMargin),a.anchor="end",a.dominantBaseline="middle",a.alignmentBaseline="middle";break}for(let[P,F]of v.entries()){a.textMargin!==void 0&&a.textMargin===0&&m!==void 0&&(C=P*m);const j=i.append("text");j.attr("x",a.x),j.attr("y",A()),a.anchor!==void 0&&j.attr("text-anchor",a.anchor).attr("dominant-baseline",a.dominantBaseline).attr("alignment-baseline",a.alignmentBaseline),a.fontFamily!==void 0&&j.style("font-family",a.fontFamily),b!==void 0&&j.style("font-size",b),a.fontWeight!==void 0&&j.style("font-weight",a.fontWeight),a.fill!==void 0&&j.attr("fill",a.fill),a.class!==void 0&&j.attr("class",a.class),a.dy!==void 0?j.attr("dy",a.dy):C!==0&&j.attr("dy",C);const R=F|| $ It;if(a.tspan){const H=j.append("tspan");H.attr("x",a.x),a.fill!==void 0&&H.attr("fill",a.fill),H.text(R)}else j.text(R);a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0&&(p+=(j._groups||j)[0][0].getBBox().height,f=p),E.push(j)}return E},yRt=function(i,a){function f(v,m,b,E,C){return v+","+m+" "+(v+b)+","+m+" "+(v+b)+","+(m+E-C)+" "+(v+b-C*1.2)+","+(m+E)+" "+v+","+(m+E)}const p=i.append("polygon");return p.attr("points",f(a.x,a.y,a.width,a.height,7)),p.attr("class","labelBox"),a.y=a.y+a.height/2,gL(i,a),p};let hm=-1;const xRt=(i,a,f,p)=>{i.select&&f.forEach(v=>{const m=a[v],b=i.select("#actor"+m.actorCnt);!p.mirrorActors&&m.stopy?b.attr("y2",m.stopy+m.height/2):p.mirrorActors&&b.attr("y2",m.stopy)})},LHe=function(i,a,f,p){const v=p?a.stopy:a.starty,m=a.x+a.width/2,b=v+5,E=i.append("g").lower();var C=E;p||(hm++,C.append("line").attr("id","actor"+hm).attr("x1",m).attr("y1",b).attr("x2",m).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),C=E.append("g"),a.actorCnt=hm,a.links!=null&&(C.att
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Nn.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Xc.join(", ")+", got '"+(this.terminals_[Xi]||Xi)+"'":Er="Parse error on line "+(ki+1)+": Unexpected "+(Xi==bi?"end of input":"'"+(this.terminals_[Xi]||Xi)+"'"),this.parseError(Er,{text:Nn.match,token:this.terminals_[Xi]||Xi,line:Nn.yylineno,loc:is,expected:Xc})}if(_r[0]instanceof Array&&_r.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ga+", token: "+Xi);switch(_r[0]){case 1:fn.push(Xi),Mi.push(Nn.yytext),qt.push(Nn.yylloc),fn.push(_r[1]),Xi=null,Ri=Nn.yyleng,Se=Nn.yytext,ki=Nn.yylineno,is=Nn.yylloc;break;case 2:if(Js=this.productions_[_r[1]][1],Oi. $ =Mi[Mi.length-Js],Oi._ $ ={first_line:qt[qt.length-(Js||1)].first_line,last_line:qt[qt.length-1].last_line,first_column:qt[qt.length-(Js||1)].first_column,last_column:qt[qt.length-1].last_column},Ts&&(Oi._ $ .range=[qt[qt.length-(Js||1)].range[0],qt[qt.length-1].range[1]]),qr=this.performAction.apply(Oi,[Se,Ri,ki,Wr.yy,_r[1],Mi,qt].concat(dn)),typeof qr<"u")return qr;Js&&(fn=fn.slice(0,-1*Js*2),Mi=Mi.slice(0,-1*Js),qt=qt.slice(0,-1*Js)),fn.push(this.productions_[_r[1]][0]),Mi.push(Oi. $ ),qt.push(Oi._ $ ),Vn=zi[fn[fn.length-2]][fn[fn.length-1]],fn.push(Vn);break;case 3:return!0}}return!0}},Ee=function(){var Ce={EOF:1,parseError:function(ye,fn){if(this.yy.parser)this.yy.parser.parseError(ye,fn);else throw new Error(ye)},setInput:function( $ e,ye){return this.yy=ye||this.yy||{},this._input= $ e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var  $ e=this._input[0];this.yytext+= $ e,this.yyleng++,this.offset++,this.match+= $ e,this.matched+= $ e;var ye= $ e.match(/(?: \r \n ?| \n ).*/g);return ye?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1), $ e},unput:function( $ e){var ye= $ e.length,fn= $ e.split(/(?: \r \n ?| \n )/g);this._input= $ e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ye),this.offset-=ye;var Yt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),fn.length-1&&(this.yylineno-=fn.length-1);var Mi=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:fn?(fn.length===Yt.length?this.yylloc.first_column:0)+Yt[Yt.length-fn.length].length-fn[0].length:this.yylloc.first_column-ye},this.options.ranges&&(this.yylloc.range=[Mi[0],Mi[0]+this.yyleng-ye]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function( $ e){this.unput(this.match.slice( $ e))},pastInput:function(){var  $ e=this.matched.substr(0,this.matched.length-this.match.length);return( $ e.length>20?"...":"")+ $ e.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var  $ e=this.match;return  $ e.length<20&&( $ e+=this._input.substr(0,20- $ e.length)),( $ e.substr(0,20)+( $ e.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var  $ e=this.pastInput(),ye=new Array( $ e.length+1).join("-");return  $ e+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +ye+"^"},test_match:function( $ e,ye){var fn,Yt,Mi;if(this.options.backtrack_lexer&&(Mi={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Mi.yylloc.range=this.yylloc.range.slice(0))),Yt= $ e[0].match(/(?: \r \n ?| \n ).*/g),Yt&&(this.yylineno+=Yt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Yt?Yt[Yt.length-1].length-Yt[Yt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+ $ e[0].length},this.yytext+= $ e[0],this.match+= $ e[0],this.matches= $ e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice( $ e[0].length),this.matched+= $ e[0],fn=this.performAction.call(this,this.yy,this,ye,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),fn)return fn;if(this._backtrack){for(var qt in Mi)this[qt]=Mi[qt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var  $ e,ye,fn,Yt;this._more||(this.yytext="",this.match="");for(var Mi=this._currentRules(),qt=0;qt<Mi.length;qt++)if(fn=this._input.match(this.rules[Mi[qt]]),fn&&(!ye||fn[0].length>ye[0].length)){if(ye=fn,Yt=qt,this.options.backtrack_lexer){if( $ e=this.test_match(fn,Mi[qt]), $ e!==!1)return  $ e;if(this._backtrack){ye=!1;continue}else return!1}else if(!this.options.flex)break}return ye?( $ e=this.test_match(ye,Mi[Yt]), $ e!==!1? $ e:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ye=this.next();return ye||this.lex()},begin:function(ye){this.conditionStack.push(ye)},popState:function(){var ye=this.conditionStack.length-1;return ye>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ye){return ye=this.conditionStack.length-1-Math.abs(ye||0),ye>=0?this.conditionStack[ye]:"INITIAL"},pushState:function(ye){this.begin(ye)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ye,fn,Yt,Mi){switch(Yt){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:break;case 10:break;case 11:return this.begin("acc_title"),44;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),46;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 19:break;case 20:return 23;case 21:return 23;case 22:return"EDGE_STATE";case 23:this.begin("callback_name");break;case 24:this.popState();break;case 25:this.popState(),this.begin("callback_args");break;case 26:return 79;case 27:this.popState();break;case 28:return 80;case 29:this.popState();break;case 30:return"STR";case 31:this.begin("string");break;case 32:return this.begin("namespace"),53;case 33:return this.popState(),16;case 34:break;case 35:return this.begin("namespace-body"),50;case 36:return this.popState(),52;case 37:return"EOF_IN_STRUCT";case 38:return 16;case 39:break;case 40:return"EDGE_STATE";case 41:return this.begin("class"),57;case 42:return this.popState(),16;case 43:break;case 44:return this.popState(),this.popState(),52;case 45:return this.begin("class-body"),50;case 46:return this.popState(),52;case 47:return"EOF_IN_STRUCT";case 48:return"EDGE_STATE";case 49:return"OPEN_IN_STRUCT";case 50:break;case 51:return"MEMBER";case 52:return 82;case 53:return 75;case 54:return 76;case 55:return 78;case 56:return 63;case 57:return 65;case 58:return 58;case 59:return 59;case 60:return 81;case 61:this.popState();break;case 62:return"GENERICTYPE";case 63:this.begin("generic");break;case 64:this.popState();break;case 65:return"BQUOTE_STR";case 66:this.begin("bqstring");break;case 67:return 77;case 68:return 77;case 69:return 77;case 70:return 77;case 71:return 69;case 72:return 69;case 73:return 71;case 74:return 71;case 75:return 70;case 76:return 68;case 77:return 72;case 78:return 73;case 79:return 74;case 80:return 36;case 81:return 55;case 82:return 94;case 83:return"DOT";case 84:return"PLUS";case 85:return 91;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 98;case 89:return 27;case 90:return 29;case 91:return"PUNCTUATION";case 92:return 97;case 93:return 96;case 94:return 93;case 95:return 24}},rules:[/^(?:%% \{ )/,/^(?:.*direction \s +TB[^ \n ]*)/,/^(?:.*direction \s +BT[^ \n ]*)/,/^(?:.*direction \s +RL[^ \n ]*)/,/^(?:.*direction \s +LR[^ \n ]*)/,/^(?:((?:(?! \} %%)[^:.])*))/,/^(?::)/,/^(?: \} %%)/,/^(?:((?:(?! \} %%).| \n )*))/,/^(?:%%(?! \{ )*[^ \n ]*( \r ? \n ?)+)/,/^(?:%%[^ \n ]*( \r ? \n )*)/,/^(?:accTitle \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s *: \s *)/,/^(?:(?! \n ||)*[^ \n ]*)/,/^(?:accDescr \s * \{ \s *)/,/^(?:[ \} ])/,/^(?:[^ \} ]*)/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:classDiagram-v2 \b )/,/^(?:classDiagram \b )/,/^(?: \[ \* \] )/,/^(?:call[ \s ]+)/,/^(?: \( [ \s ]* \) )/,/^(?: \( )/,/^(?:[^(]*)/,/^(?: \) )/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:namespace \b )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:[{])/,/^(?:[}])/,/^(?: $ )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?: \[ \* \] )/,/^(?:class \b )/,/^(?: \s *( \r ? \n )+)/,/^(?: \s +)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?: $ )/,
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . title  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - weight :  bolder ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. nodeLabel ,  . edgeLabel  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  rect  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. label  text  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . classText } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  span  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  background :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classTitle  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bolder ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  rect ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. divider  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . clickable  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . classGroup  rect  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . classGroup  line  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classLabel  . box  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classLabel  . label  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. relation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. dashed - line {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. dotted - line {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  1  2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# compositionStart ,  . composition  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# compositionEnd ,  . composition  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  . dependency  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  . dependency  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# extensionStart ,  . extension  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# extensionEnd ,  . extension  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# aggregationStart ,  . aggregation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# aggregationEnd ,  . aggregation  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# lollipopStart ,  . lollipop  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# lollipopEnd ,  . lollipop  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor }  ! important ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeTerminals  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  11 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. classTitleText  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ;let NK={};const PK=20, $ P=function(i){const a=Object.entries(NK).find(f=>f[1].label===i);if(a)return a[0]},TVe=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},_Ve=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:SRt,db:OK,renderer:{draw:function(i,a,f,p){const v=Me().class;NK={},Gt.info("Rendering diagram "+i);const m=Me().securityLevel;let b;m==="sandbox"&&(b=fr("#i"+a));const E=fr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body"),C=E.select( ` [ id = '${a}' ] ` );TVe(C);const A=new h1({multigraph:!0});A.setGraph({isMultiGraph:!0}),A.setDefaultEdgeLabel(function(){return{}});const P=p.db.getClasses(),F=Object.keys(P);for(const it of F){const ht=P[it],Tt=A0t.drawClass(C,ht,v,p);NK[Tt.id]=Tt,A.setNode(Tt.id,Tt),Gt.info("Org height: "+Tt.height)}p.db.getRelations().forEach(function(it){Gt.info("tjoho"+ $ P(it.id1)+ $ P(it.id2)+JSON.stringify(it)),A.setEdge( $ P(it.id1), $ P(it.id2),{relation:it},it.title||"DEFAULT")}),p.db.getNotes().forEach(function(it){Gt.debug( ` Adding  note :  $ { JSON . stringify ( it ) } ` );const ht=A0t.drawNote(C,it,v,p);NK[ht.id]=ht,A.setNode(ht.id,ht),it.class&&it.class in P&&A.setEdge(it.id, $ P(it.class),{relation:{id1:it.id,id2:it.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),sL(A),A.nodes().forEach(function(it){it!==void 0&&A.node(it)!==void 0&&(Gt.debug("Node "+it+": "+JSON.stringify(A.node(it))),E.select("#"+(p.db.lookUpDomId(it)||it)).attr("transform","translate("+(A.node(it).x-A.node(it).width/2)+","+(A.node(it).y-A.node(it).height/2)+" )"))}),A.edges().forEach(function(it){it!==void 0&&A.edge(it)!==void 0&&(Gt.debug("Edge "+it.v+" -> "+it.w+": "+JSON.stringify(A.edge(it))),A0t.drawEdge(C,A.edge(it),A.edge(it).relation,v,p))});const H=C.node().getBBox(),Y=H.width+PK*2,rt=H.height+PK*2;cg(C,rt,Y,v.useMaxWidth);const J= ` $ { H . x - PK }  $ { H . y - PK }  $ { Y }  $ { rt } ` ;Gt.debug( ` viewBox  $ { J } ` ),C.attr("viewBox",J)}},styles:ORt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,OK.clear()}}},Symbol.toStringTag,{value:"Module"})),wgt=i=>oi.sanitizeText(i,Me());let mgt={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const CVe=function(i,a,f,p){const v=Object.keys(i);Gt.info("keys:",v),Gt.info(i),v.forEach(function(m){var A,P;const b=i[m],C={shape:"rect",id:b.id,domId:b.domId,labelText:wgt(b.id),labelStyle:"",style:"
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),v.style===void 0&&(m.style=m.style||"stroke: #333; stroke-width: 1.5px;fill:none"),m.labelStyle=m.labelStyle.replace("color:","fill:"))),a.setEdge(v.id1,v.id2,m,p)})},LVe=function(i){mgt={...mgt,...i}},MVe=async function(i,a,f,p){Gt.info("Drawing class - ",a);const v=Me().flowchart??Me().class,m=Me().securityLevel;Gt.info("config:",v);const b=(v==null?void 0:v.nodeSpacing)??50,E=(v==null?void 0:v.rankSpacing)??50,C=new h1({multigraph:!0,compound:!0}).setGraph({rankdir:p.db.getDirection(),nodesep:b,ranksep:E,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),A=p.db.getNamespaces(),P=p.db.getClasses(),F=p.db.getRelations(),j=p.db.getNotes();Gt.info(F),CVe(A,C,a,p),NRt(P,C,a,p),AVe(F,C),SVe(j,C,F.length+1,P);let R;m==="sandbox"&&(R=fr("#i"+a));const H=fr(m==="sandbox"?R.nodes()[0].contentDocument.body:"body"),Y=H.select( ` [ id = "${a}" ] ` ),rt=H.select("#"+a+" g");if(await L0t(rt,C,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",a),to.insertTitle(Y,"classTitleText",(v==null?void 0:v.titleTopMargin)??5,p.db.getDiagramTitle()),e9(C,Y,v==null?void 0:v.diagramPadding,v==null?void 0:v.useMaxWidth),!(v!=null&&v.htmlLabels)){const J=m==="sandbox"?R.nodes()[0].contentDocument:document,it=J.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const ht of it){const Tt=ht.getBBox(),xt=J.createElementNS("http://www.w3.org/2000/svg","rect");xt.setAttribute("rx",0),xt.setAttribute("ry",0),xt.setAttribute("width",Tt.width),xt.setAttribute("height",Tt.height),ht.insertBefore(xt,ht.firstChild)}}};function PRt(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}const DVe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:SRt,db:OK,renderer:{setConf:LVe,draw:MVe},styles:ORt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,OK.clear()}}},Symbol.toStringTag,{value:"Module"}));var ygt=function(){var i=function(Bt,wt,Ot,Vt){for(Ot=Ot||{},Vt=Bt.length;Vt--;Ot[Bt[Vt]]=wt);return Ot},a=[1,2],f=[1,3],p=[1,5],v=[1,7],m=[2,5],b=[1,15],E=[1,17],C=[1,21],A=[1,22],P=[1,23],F=[1,24],j=[1,37],R=[1,25],H=[1,26],Y=[1,27],rt=[1,28],J=[1,29],it=[1,32],ht=[1,33],Tt=[1,34],xt=[1,35],pt=[1,36],ct=[1,39],yt=[1,40],st=[1,41],Et=[1,42],dt=[1,38],bt=[1,45],Ct=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],tt=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],Pt=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],gt=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],Ft={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63, $ accept:0, $ end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt"
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ce.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Nn.join(", ")+", got '"+(this.terminals_[qt]||qt)+"'":Wr="Parse error on line "+(ne+1)+": Unexpected "+(qt==Ee?"end of input":"'"+(this.terminals_[qt]||qt)+"'"),this.parseError(Wr,{text:Ce.match,token:this.terminals_[qt]||qt,line:Ce.yylineno,loc:fn,expected:Nn})}if(Se[0]instanceof Array&&Se.length>1)throw new Error("Parse Error: multiple actions possible at state: "+zi+", token: "+qt);switch(Se[0]){case 1:Vt.push(qt),_n.push(Ce.yytext),Te.push(Ce.yylloc),Vt.push(Se[1]),qt=null,ke=Ce.yyleng,Ae=Ce.yytext,ne=Ce.yylineno,fn=Ce.yylloc;break;case 2:if(bi=this.productions_[Se[1]][1],Ri. $ =_n[_n.length-bi],Ri._ $ ={first_line:Te[Te.length-(bi||1)].first_line,last_line:Te[Te.length-1].last_line,first_column:Te[Te.length-(bi||1)].first_column,last_column:Te[Te.length-1].last_column},Yt&&(Ri._ $ .range=[Te[Te.length-(bi||1)].range[0],Te[Te.length-1].range[1]]),ki=this.performAction.apply(Ri,[Ae,ke,ne, $ e.yy,Se[1],_n,Te].concat(He)),typeof ki<"u")return ki;bi&&(Vt=Vt.slice(0,-1*bi*2),_n=_n.slice(0,-1*bi),Te=Te.slice(0,-1*bi)),Vt.push(this.productions_[Se[1]][0]),_n.push(Ri. $ ),Te.push(Ri._ $ ),dn=Wn[Vt[Vt.length-2]][Vt[Vt.length-1]],Vt.push(dn);break;case 3:return!0}}return!0}},X=function(){var Bt={EOF:1,parseError:function(Ot,Vt){if(this.yy.parser)this.yy.parser.parseError(Ot,Vt);else throw new Error(Ot)},setInput:function(wt,Ot){return this.yy=Ot||this.yy||{},this._input=wt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var wt=this._input[0];this.yytext+=wt,this.yyleng++,this.offset++,this.match+=wt,this.matched+=wt;var Ot=wt.match(/(?: \r \n ?| \n ).*/g);return Ot?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),wt},unput:function(wt){var Ot=wt.length,Vt=wt.split(/(?: \r \n ?| \n )/g);this._input=wt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ot),this.offset-=Ot;var qe=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Vt.length-1&&(this.yylineno-=Vt.length-1);var _n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Vt?(Vt.length===qe.length?this.yylloc.first_column:0)+qe[qe.length-Vt.length].length-Vt[0].length:this.yylloc.first_column-Ot},this.options.ranges&&(this.yylloc.range=[_n[0],_n[0]+this.yyleng-Ot]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(wt){this.unput(this.match.slice(wt))},pastInput:function(){var wt=this.matched.substr(0,this.matched.length-this.match.length);return(wt.length>20?"...":"")+wt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var wt=this.match;return wt.length<20&&(wt+=this._input.substr(0,20-wt.length)),(wt.substr(0,20)+(wt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var wt=this.pastInput(),Ot=new Array(wt.length+1).join("-");return wt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ot+"^"},test_match:function(wt,Ot){var Vt,qe,_n;if(this.options.backtrack_lexer&&(_n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(_n.yylloc.range=this.yylloc.range.slice(0))),qe=wt[0].match(/(?: \r \n ?| \n ).*/g),qe&&(this.yylineno+=qe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:qe?qe[qe.length-1].length-qe[qe.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+wt[0].length},this.yytext+=wt[0],this.match+=wt[0],this.matches=wt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(wt[0].length),this.matched+=wt[0],Vt=this.performAction.call(this,this.yy,this,Ot,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Vt)return Vt;if(this._backtrack){for(var Te in _n)this[Te]=_n[Te];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var wt,Ot,Vt,qe;this._more||(this.yytext="",this.match="");for(var _n=this._currentRules(),Te=0;Te<_n.length;Te++)if(Vt=this._input.match(this.rules[_n[Te]]),Vt&&(!Ot||Vt[0].length>Ot[0].length)){if(Ot=Vt,qe=Te,this.options.backtrack_lexer){if(wt=this.test_match(Vt,_n[Te]),wt!==!1)return wt;if(this._backtrack){Ot=!1;continue}else return!1}else if(!this.options.flex)break}return Ot?(wt=this.test_match(Ot,_n[qe]),wt!==!1?wt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ot=this.next();return Ot||this.lex()},begin:function(Ot){this.conditionStack.push(Ot)},popState:function(){var Ot=this.conditionStack.length-1;return Ot>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ot){return Ot=this.conditionStack.length-1-Math.abs(Ot||0),Ot>=0?this.conditionStack[Ot]:"INITIAL"},pushState:function(Ot){this.begin(Ot)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ot,Vt,qe,_n){switch(qe){case 0:return 41;case 1:return 50;case 2:return 51;case 3:return 52;case 4:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:break;case 11:break;case 12:return 5;case 13:break;case 14:break;case 15:break;case 16:break;case 17:return this.pushState("SCALE"),17;case 18:return 18;case 19:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 25:this.popState();break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 34:return this.pushState("SCALE"),17;case 35:return 18;case 36:this.popState();break;case 37:this.pushState("STATE");break;case 38:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-8).trim(),25;case 39:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-8).trim(),26;case 40:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-10).trim(),27;case 41:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-8).trim(),25;case 42:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-8).trim(),26;case 43:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-10).trim(),27;case 44:return 50;case 45:return 51;case 46:return 52;case 47:return 53;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:return this.popState(),"ID";case 51:this.popState();break;case 52:return"STATE_DESCR";case 53:return 19;case 54:this.popState();break;case 55:return this.popState(),this.pushState("struct"),20;case 56:break;case 57:return this.popState(),21;case 58:break;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 64:break;case 65:return"NOTE_TEXT";case 66:return this.popState(),"ID";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),Vt.yytext=Vt.yytext.substr(2).trim(),31;case 69:return this.popState(),Vt.yytext=Vt.yytext.slice(0,-8).trim(),31;case 70:return 7;case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return Vt.yytext=Vt.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 79:return 5;case 80:return"INVALID"}},rules:[/^(?:default \b )/i,/^(?:.*direction \s +TB[^ \n ]*)/i,/^(?:.*direction \s +BT[^ \n ]*)/i,/^(?:.*direction \s +RL[^ \n ]*)/i,/^(?:.*direction \s +LR[^ \n ]*)/i,/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?:[ \s ]+)/i,/^(?:((?! \n ) \s )+)/i,/^(
  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								defs  # statediagram - barbEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  . state - title  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bolder ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								g . stateGroup  line  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. transition  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . transitionColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateGroup  . composit  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  border - bottom :  1 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateGroup  . alt - composit  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  # e0e0e0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  border - bottom :  1 px 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. state - note  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateLabel  . box  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . labelBackgroundColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. edgeLabel  . label  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . transitionLabelColor || i . tertiaryTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. label  div  . edgeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . transitionLabelColor || i . tertiaryTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. stateLabel  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  10 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - weight :  bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  circle . state - start  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  . fork - join  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . specialStateColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  circle . state - end  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . innerEndBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1.5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. end - state - inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeBackground || i . background } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // stroke: ${i.background};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1.5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . stateBkg || i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. node  polygon  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# statediagram - barbEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeTitleBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. cluster - label ,  . nodeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . stateLabelColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  rect . outer  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  . divider  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . stateBorder || i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  . title - state  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster . statediagram - cluster  . inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . compositeBackground || i . background } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster . statediagram - cluster - alt  . inner  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . altBackground ? i . altBackground : "#efefef" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - cluster  . inner  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx : 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry : 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  rect . basic  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - state  rect . divider  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  10 , 10 ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . altBackground ? i . altBackground : "#efefef" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. note - edge  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - dasharray :  5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  rect  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteBkgColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . noteBorderColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  rx :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  ry :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  text  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram - note  . nodeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  $ { i . noteTextColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagram  . edgeLabel  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  color :  red ;  // ${i.noteTextColor};
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								# dependencyStart ,  # dependencyEnd  {  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  stroke - width :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								. statediagramTitleText  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  font - size :  18 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,Sgt={},nGe=(i,a)=>{Sgt[i]=a},rGe=i=>Sgt[i],QRt=()=>Object.keys(Sgt),iGe={get:rGe,set:nGe,keys:QRt,size:()=>QRt().length},sGe=i=>i.append("circle").attr("class","start-state").attr("r",Me().state.sizeUnit).attr("cx",Me().state.padding+Me().state.sizeUnit).attr("cy",Me().state.padding+Me().state.sizeUnit),aGe=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Me().state.textHeight).attr("class","divider").attr("x2",Me().state.textHeight*2).attr("y1",0).attr("y2",0),oGe=(i,a)=>{const f=i.append("text").attr("x",2*Me().state.padding).attr("y",Me().state.textHeight+2*Me().state.padding).attr("font-size",Me().state.fontSize).attr("class","state-title").text(a.id),p=f.node().getBBox();return i.insert("rect",":first-child").attr("x",Me().state.padding).attr("y",Me().state.padding).attr("width",p.width+2*Me().state.padding).attr("height",p.height+2*Me().state.padding).attr("rx",Me().state.radius),f},cGe=(i,a)=>{const f=function(j,R,H){const Y=j.append("tspan").attr("x",2*Me().state.padding).text(R);H||Y.attr("dy",Me().state.textHeight)},v=i.append("text").attr("x",2*Me().state.padding).attr("y",Me().state.textHeight+1.3*Me().state.padding).attr("font-size",Me().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),m=v.height,b=i.append("text").attr("x",Me().state.padding).attr("y",m+Me().state.padding*.4+Me().state.dividerMargin+Me().state.textHeight).attr("class","state-description");let E=!0,C=!0;a.descriptions.forEach(function(j){E||(f(b,j,C),C=!1),E=!1});const A=i.append("line").attr("x1",Me().state.padding).attr("y1",Me().state.padding+m+Me().state.dividerMargin/2).attr("y2",Me().state.padding+m+Me().state.dividerMargin/2).attr("class","descr-divider"),P=b.node().getBBox(),F=Math.max(P.width,v.width);return A.attr("x2",F+3*Me().state.padding),i.insert("rect",":first-child").attr("x",Me().state.padding).attr("y",Me().state.padding).attr("width",F+2*Me().state.padding).attr("height",P.height+m+2*Me().state.padding).attr("rx",Me().state.radius),i},uGe=(i,a,f)=>{const p=Me().state.padding,v=2*Me().state.padding,m=i.node().getBBox(),b=m.width,E=m.x,C=i.append("text").attr("x",0).attr("y",Me().state.titleShift).attr("font-size",Me().state.fontSize).attr("class","state-title").text(a.id),P=C.node().getBBox().width+v;let F=Math.max(P,b);F===b&&(F=F+v);let j;const R=i.node().getBBox();a.doc,j=E-p,P>b&&(j=(b-F)/2+p),Math.abs(E-R.x)<p&&P>b&&(j=E-(P-b)/2);const H=1-Me().state.textHeight;return i.insert("rect",":first-child").attr("x",j).attr("y",H).attr("class",f?"alt-composit":"composit").attr("width",F).attr("height",R.height+Me().state.textHeight+Me().state.titleShift+1).attr("rx","0"),C.attr("x",j+p),P<=b&&C.attr("x",E+(F-v)/2-P/2+p),i.insert("rect",":first-child").attr("x",j).attr("y",Me().state.titleShift-Me().state.textHeight-Me().state.padding).attr("width",F).attr("height",Me().state.textHeight*3).attr("rx",Me().state.radius),i.insert("rect",":first-child").attr("x",j).attr("y",Me().state.titleShift-Me().state.textHeight-Me().state.padding).attr("width",F).attr("height",R.height+3+2*Me().state.textHeight).attr("rx",Me().state.radius),i},lGe=i=>(i.append("circle").attr("class","end-state-outer").attr("r",Me().state.sizeUnit+Me().state.miniPadding).attr("cx",Me().state.padding+Me().state.sizeUnit+Me().state.miniPadding).attr("cy",Me().state.padding+Me().state.sizeUnit+Me().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",Me().state.sizeUnit).attr("cx",Me().state.padding+Me().state.sizeUnit+2).attr("cy",Me().state.padding+Me().state.sizeUnit+2)),hGe=(i,a)=>{let f=Me().state.forkWidth,p=Me().state.forkHeight;if(a.parentId){let v=f;f=p,p=v}return i.append("rect").style("stroke","black").style("fill","black").attr("width",f).attr("height",p).attr("x",Me().state.padding).attr("y",Me().state.padding)},fGe=(i,a,f,p)=>{let v=0;const m=p.append("text");m.style("text-anchor","start"),m.attr("class","noteText");let b=i.replace(/ \r \n /g,"<br/>");b=b.replace(/ \n /g,"<br/>");const E=b.split(oi.lineBreakRegex);let C=1.25*Me().state.noteMargin;for(const
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +Ct.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Wn.join(", ")+", got '"+(this.terminals_[Rt]||Rt)+"'":Ae="Parse error on line "+(yt+1)+": Unexpected "+(Rt==dt?"end of input":"'"+(this.terminals_[Rt]||Rt)+"'"),this.parseError(Ae,{text:Ct.match,token:this.terminals_[Rt]||Rt,line:Ct.yylineno,loc:gt,expected:Wn})}if(wt[0]instanceof Array&&wt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bt+", token: "+Rt);switch(wt[0]){case 1:it.push(Rt),Tt.push(Ct.yytext),xt.push(Ct.yylloc),it.push(wt[1]),Rt=null,st=Ct.yyleng,ct=Ct.yytext,yt=Ct.yylineno,gt=Ct.yylloc;break;case 2:if(_n=this.productions_[wt[1]][1],Vt. $ =Tt[Tt.length-_n],Vt._ $ ={first_line:xt[xt.length-(_n||1)].first_line,last_line:xt[xt.length-1].last_line,first_column:xt[xt.length-(_n||1)].first_column,last_column:xt[xt.length-1].last_column},Ft&&(Vt._ $ .range=[xt[xt.length-(_n||1)].range[0],xt[xt.length-1].range[1]]),Ot=this.performAction.apply(Vt,[ct,st,yt,tt.yy,wt[1],Tt,xt].concat(bt)),typeof Ot<"u")return Ot;_n&&(it=it.slice(0,-1*_n*2),Tt=Tt.slice(0,-1*_n),xt=xt.slice(0,-1*_n)),it.push(this.productions_[wt[1]][0]),Tt.push(Vt. $ ),xt.push(Vt._ $ ),Te=pt[it[it.length-2]][it[it.length-1]],it.push(Te);break;case 3:return!0}}return!0}},R=function(){var Y={EOF:1,parseError:function(J,it){if(this.yy.parser)this.yy.parser.parseError(J,it);else throw new Error(J)},setInput:function(rt,J){return this.yy=J||this.yy||{},this._input=rt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var rt=this._input[0];this.yytext+=rt,this.yyleng++,this.offset++,this.match+=rt,this.matched+=rt;var J=rt.match(/(?: \r \n ?| \n ).*/g);return J?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),rt},unput:function(rt){var J=rt.length,it=rt.split(/(?: \r \n ?| \n )/g);this._input=rt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-J),this.offset-=J;var ht=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),it.length-1&&(this.yylineno-=it.length-1);var Tt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:it?(it.length===ht.length?this.yylloc.first_column:0)+ht[ht.length-it.length].length-it[0].length:this.yylloc.first_column-J},this.options.ranges&&(this.yylloc.range=[Tt[0],Tt[0]+this.yyleng-J]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(rt){this.unput(this.match.slice(rt))},pastInput:function(){var rt=this.matched.substr(0,this.matched.length-this.match.length);return(rt.length>20?"...":"")+rt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var rt=this.match;return rt.length<20&&(rt+=this._input.substr(0,20-rt.length)),(rt.substr(0,20)+(rt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var rt=this.pastInput(),J=new Array(rt.length+1).join("-");return rt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +J+"^"},test_match:function(rt,J){var it,ht,Tt;if(this.options.backtrack_lexer&&(Tt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Tt.yylloc.range=this.yylloc.range.slice(0))),ht=rt[0].match(/(?: \r \n ?| \n ).*/g),ht&&(this.yylineno+=ht.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ht?ht[ht.length-1].length-ht[ht.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+rt[0].length},this.yytext+=rt[0],this.match+=rt[0],this.matches=rt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(rt[0].length),this.matched+=rt[0],it=this.performAction.call(this,this.yy,this,J,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),it)return it;if(this._backtrack){for(var xt in Tt)this[xt]=Tt[xt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var rt,J,it,ht;this._more||(this.yytext="",this.match="");for(var Tt=this._currentRules(),xt=0;xt<Tt.length;xt++)if(it=this._input.match(this.rules[Tt[xt]]),it&&(!J||it[0].length>J[0].length)){if(J=it,ht=xt,this.options.backtrack_lexer){if(rt=this.test_match(it,Tt[xt]),rt!==!1)return rt;if(this._backtrack){J=!1;continue}else return!1}else if(!this.options.flex)break}return J?(rt=this.test_match(J,Tt[ht]),rt!==!1?rt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var J=this.next();return J||this.lex()},begin:function(J){this.conditionStack.push(J)},popState:function(){var J=this.conditionStack.length-1;return J>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(J){return J=this.conditionStack.length-1-Math.abs(J||0),J>=0?this.conditionStack[J]:"INITIAL"},pushState:function(J){this.begin(J)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(J,it,ht,Tt){switch(ht){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:journey \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?::[^# \n ;]+)/i,/^(?::)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};return Y}();j.lexer=R;function H(){this.yy={}}return H.prototype=j,j.Parser=H,new H}();Ogt.parser=Ogt;const jGe=Ogt;let wL="";const Ngt=[],UP=[],WP=[], $ Ge=function(i,a,f){l1.parseDirective(this,i,a,f)},zGe=function(){Ngt.length=0,UP.length=0,wL="",WP.length=0,ug()},qGe=function(i){wL=i,Ngt.push(i)},HGe=function(){return Ngt},VGe=function(){let i=ljt();const a=100;let f=0;for(;!i&&f<a;)i=ljt(),f++;return UP.push(...WP),UP},GGe=function(){const i=[];return UP.forEach(f=>{f.people&&i.push(...f.people)}),[...new Set(i)].sort()},UGe=function(i,a){const f=a.substr(1).split(":");let p=0,v=[];f.length===1?(p=Number(f[0]),v=[]):(p=Number(f[0]),v=f[1].split(","));const m=v.map(E=>E.trim()),b={section:wL,type:wL,people:m,task:i,score:p};WP.push(b)},WGe=function(i){const a={section:wL,type:wL,description:i,task:i,classes:[]};UP.push(a)},ljt=function(){const i=function(f){return WP[f].processed};let a=!0;for(const[f,p]of WP.entries())i(f),a=a&&p.processed;return a},hjt={parseDirective: $ Ge,getConfig:()=>Me().journey,clear:zGe,setDiagramTitle:Ob,getDiagramTitle:fp,setAccTitle:m0,getAccTitle:lg,setAccDescription:hg,getAccDescription:fg,addSection:qGe,getSections:HGe,getTasks:VGe,addTask:UGe,addTaskOrg:WGe,getActors:function(){return GGe()}},KGe=i=> ` . label  {  
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . mouth  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  # 666 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  line  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . legend  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  # 333 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . label  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . textColor } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . face  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . faceColor ? ` fill:  ${ i . faceColor } ` : "fill: #FFF8DC" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  # 999 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1.5 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.5 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  'trebuchet ms' ,  verdana ,  arial ,  sans - serif ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  var ( -- mermaid - font - family ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 0 ,  . section - type - 0   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType0 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 1 ,  . section - type - 1   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType1 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 2 ,  . section - type - 2   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType2 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 3 ,  . section - type - 3   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType3 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 4 ,  . section - type - 4   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType4 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 5 ,  . section - type - 5   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType5 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 6 ,  . section - type - 6   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType6 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . task - type - 7 ,  . section - type - 7   { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . fillType0 ? ` fill:  ${ i . fillType7 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 0  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor0 ? ` fill:  ${ i . actor0 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 1  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor1 ? ` fill:  ${ i . actor1 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 2  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor2 ? ` fill:  ${ i . actor2 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 3  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor3 ? ` fill:  ${ i . actor3 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 4  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor4 ? ` fill:  ${ i . actor4 } ` : "" } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . actor - 5  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ { i . actor5 ? ` fill:  ${ i . actor5 } ` : "" } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ,Pgt=function(i,a){return zW(i,a)},YGe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),v=i.append("g");v.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),v.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function m(C){const A=DA().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);C.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(C){const A=DA().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);C.append("path").attr("class","mouth").attr("d",A).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(C){C.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?m(v):a.score<3?b(v):E(v),p},fjt=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},djt=function(i,a){return wMe(i,a)},XGe=function(i,a){function f(v,m,b,E,C){return v+","+m+" "+(v+b)+","+m+" "+(v+b)+","+(m+E-C)+" "+(v+b-C*1.2)+","+(m+E)+" "+v+","+(m+E)}const p=i.append("polygon");p.attr("points",f(a.x,a.y,50,20,7)),p.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,djt(i,a)},QGe=function(i,a,f){const p=i.append("g"),v=u9();v.x=a.x,v.y=a.y,v.fill=a.fill,v.width=f.width*a.taskCount+f.diagramMarginX*(a.taskCount-1),v.height=f.height,v.class="journey-section section-type-"+a.num,v.rx=3,v.ry=3,Pgt(p,v),pjt(f)(a.text,p,v.x,v.y,v.width,v.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let gjt=-1;const ZGe=function(i,a,f){const p=a.x+f.width/2,v=i.append("g");gjt++;const m=300+5*30;v.append("line").attr("id","task"+gjt).attr("x1",p).attr("y1",a.y).attr("x2",p).attr("y2",m).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),YGe(v,{cx:p,cy:300+(5-a.score)*30,score:a.score});const b=u9();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,Pgt(v,b);let E=a.x+14;a.people.forEach(C=>{const A=a.actors[C].color,P={cx:E,cy:a.y,r:7,fill:A,stroke:"#000",title:C,pos:a.actors[C].position};fjt(v,P),E+=10}),pjt(f)(a.task,v,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},JGe=function(i,a){ZOt(i,a)},pjt=function(){function i(v,m,b,E,C,A,P,F){const j=m.append("text").attr("x",b+C/2).attr("y",E+A/2+5).style("font-color",F).style("text-anchor","middle").text(v);p(j,P)}function a(v,m,b,E,C,A,P,F,j){const{taskFontSize:R,taskFontFamily:H}=F,Y=v.split(/<br \s * \/ ?>/gi);for(let rt=0;rt<Y.length;rt++){const J=rt*R-R*(Y.length-1)/2,it=m.append("text").attr("x",b+C/2).attr("y",E).attr("fill",j).style("text-anchor","middle").style("font-size",R).style("font-family",H);it.append("tspan").attr("x",b+C/2).attr("dy",J).text(Y[rt]),it.attr("y",E+A/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),p(it,P)}}function f(v,m,b,E,C,A,P,F){const j=m.append("switch"),H=j.append("foreignObject").attr("x",b).attr("y",E).attr("width",C).attr("height",A).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");H.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(v),a(v,j,b,E,C,A,P,F),p(H,P)}function p(v,m){for(const b in m)b in m&&v.attr(b,m[b])}return function(v){return v.textPlacement==="fo"?f:v.textPlacement==="old"?i:a}}(),KP={drawRect:Pgt,drawCircle:fjt,drawSection:QGe,drawText:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,Lu(Ta(t,e[0])))>=0;)++e[0]}function _D(t,e){this.e=e,this.a=One(t),this.a<54?this.f=Gv(t):this.c=QD(t)}function zte(t,e,n,r){yi(),vv.call(this,26),this.c=t,this.a=e,this.d=n,this.b=r}function Xd(t,e,n){var r,s;for(r=10,s=0;s<n-1;s++)e<r&&(t.a+="0"),r*=10;t.a+=e}function Lan(t,e){var n;for(n=0;t.e!=t.i.gc();)Etn(e,gr(t),de(n)),n!=Ti&&++n}function Nmt(t,e){var n;for(++t.d,++t.c[e],n=e+1;n<t.a.length;)++t.a[n],n+=n&-n}function Man(t,e){var n,r,s;s=e.c.i,n=u(tr(t.f,s),57),r=n.d.c-n.e.c,iyt(e.a,r,0)}function CD(t){var e,n;return e=t+128,n=(UKt(),t7t)[e],!n&&(n=t7t[e]=new Itt(t)),n}function Xr(t,e){var n;return In(e),n=t[":"+e],Pan(!!n,ut(ot(Qn,1),De,1,5,[e])),n}function Dan(t){var e,n;if(t.b){n=null;do e=t.b,t.b=null,n=Rae(e,n);while(t.b);t.b=n}}function Ian(t){var e,n;if(t.a){n=null;do e=t.a,t.a=null,n=Rae(e,n);while(t.a);t.a=n}}function qte(t){var e;for(++t.a,e=t.c.a.length;t.a<e;++t.a)if(t.c.b[t.a])return}function Oan(t,e){var n,r;for(r=e.c,n=r+1;n<=e.f;n++)t.a[n]>t.a[r]&&(r=n);return r}function Nan(t,e){var n;return n=rw(t.e.c,e.e.c),n==0?js(t.e.d,e.e.d):n}function e4(t,e){return e.e==0||t.e==0?Q7:(b7(),Jst(t,e))}function Pan(t,e){if(!t)throw nt(new Pn(R2n("Enum constant undefined: %s",e)))}function q_(){q_=X,_be=new wg,Cbe=new cv,Ebe=new ZK,Tbe=new qb,Sbe=new JK}function q $ (){q $ =X,O7t=new Tbt("BY_SIZE",0),Out=new Tbt("BY_SIZE_AND_SHAPE",1)}function H $ (){H $ =X,Vut=new _bt("EADES",0),sV=new _bt("FRUCHTERMAN_REINGOLD",1)}function SD(){SD=X,FV=new Lbt("READING_DIRECTION",0),S9t=new Lbt("ROTATION",1)}function Hte(){Hte=X,u2e=Qr((m2(),ut(ot(C9t,1),oe,335,0,[ylt,_9t,xlt,vS,bS])))}function Vte(){Vte=X, $ we=Qr((cC(),ut(ot(S_t,1),oe,315,0,[C_t,hht,fht,MS,DS])))}function Gte(){Gte=X,Zbe=Qr((b4(),ut(ot(Qbe,1),oe,363,0,[DV,OV,NV,IV,MV])))}function Ute(){Ute=X,k2e=Qr((ph(),ut(ot(rTt,1),oe,163,0,[AO,kS,gb,ES,Fy])))}function Wte(){Wte=X,o3e=Qr((oI(),ut(ot(QCt,1),oe,316,0,[KCt,Uht,XCt,Wht,YCt])))}function Kte(){Kte=X,M3e=Qr((Jf(),ut(ot(ep,1),oe,175,0,[qn,ua,Id,q2,tp])))}function Yte(){Yte=X,e3e=Qr((y7(),ut(ot(t3e,1),oe,355,0,[i5,jx,VS,HS,GS])))}function Xte(){Xte=X,vbe=Qr((Ya(),ut(ot(EEt,1),oe,356,0,[Ld,fb,fu,Gc,jo])))}function Qte(){Qte=X,t4e=Qr((fo(),ut(ot(YS,1),oe,103,0,[c0,_f,Hh,X0,Q0])))}function Zte(){Zte=X,u4e=Qr((l4(),ut(ot(JS,1),oe,249,0,[xb,nN,EAt,ZS,TAt])))}function Jte(){Jte=X,f4e=Qr((be(),ut(ot(Za,1),Cc,61,0,[ac,On,Hn,xr,Bn])))}function Jrt(t,e){var n;return n=u(tr(t.a,e),134),n||(n=new k3,Ai(t.a,e,n)),n}function tee(t){var e;return e=u(K(t,(ae(),Lw)),305),e?e.a==t:!1}function eee(t){var e;return e=u(K(t,(ae(),Lw)),305),e?e.i==t:!1}function nee(t,e){return In(e),twt(t),t.d.Ob()?(e.td(t.d.Pb()),!0):!1}function V $ (t){return _c(t,Ti)>0?Ti:_c(t,Oa)<0?Oa:Mr(t)}function Qm(t){return t<3?(ql(t,Xhe),t+1):t<MC?Cs(t/.75+1):Ti}function wn(t,e){var n;return n=(t.i==null&&bd(t),t.i),e>=0&&e<n.length?n[e]:null}function Xf(t,e,n){var r;if(e==null)throw nt(new DT);return r=D0(t,e),rsn(t,e,n),r}function ree(t){return t.a>=-.01&&t.a<=j1&&(t.a=0),t.b>=-.01&&t.b<=j1&&(t.b=0),t}function iee(t,e){return e==(wnt(),wnt(),Age)?t.toLocaleLowerCase():t.toLowerCase()}function Pmt(t){return(t.i&2?"interface ":t.i&1?"":"class ")+(A0(t),t.o)}function Do(t){var e,n;n=(e=new Ktt,e),Or((!t.q&&(t.q=new he(Yh,t,11,10)),t.q),n)}function Fan(t,e){var n;return n=e>0?e-1:e,tHt(XKe(Lee(Ovt(new Yk,n),t.n),t.j),t.k)}function Ban(t,e,n,r){var s;t.j=-1,i5t(t,R4t(t,e,n),(so(),s=u(e,66).Mj(),s.Ok(r)))}function see(t){this.g=t,this.f=new le,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function aee(t){this.b=new le,this.a=new le,this.c=new le,this.d=new le,this.e=t}function oee(t,e){this.a=new Ar,this.e=new Ar,this.b=(Q_(),hG),this.c=t,this.b=e}function cee(t,e,n){Ej.call(this),Fmt(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function uee(t){this.d=t,this.c=t.c.vc().Kc(),this.b=null,this.a=null,this.e=(pR(),yut)}function Kv(t){if(t<0)throw nt(new Pn("Illegal Capacity: "+t));this.g=this.ri(t)}function Ran(t,e){if(0>t||t>e)throw nt(new Ypt("fromIndex: 0, toIndex: "+t+B6t+e))}function jan(t){var e;if(t.a==t.b.a)throw nt(new vc);return e=t.a,t.c=e,t.a=t.a.e,e}function G $ (t){var 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									` )}return e&&(e.stack||n(t[ $ at]))}function g3t(t){Vm();var e;switch(e=t.Pc(),e.length){case 0:return wut;case 1:return new Ant(Dr(e[0]));default:return new crt(sln(e))}}function iw(t,e){switch(e.g){case 1:return N6(t.j,(Vu(),MEt));case 2:return N6(t.j,(Vu(),IEt));default:return pn(),pn(),uo}}function p3t(t,e){switch(e){case 3:Xv(t,0);return;case 4:Qv(t,0);return;case 5:Cu(t,0);return;case 6:Su(t,0);return}Hyt(t,e)}function Uit(){Uit=X,NR(),uG=(xe(),Bw),Fwe=M1(ut(ot(Zht,1),Ikt,146,0,[DO,Tf,Rx,Fw,Vy,eht,mE,yE,nht,AS,J4, $ 2,t5]))}function sie(t){var e,n;e=t.d==(sx(),aE),n=g4t(t),e&&!n||!e&&n?ee(t.a,(xe(),Md),(Qd(),VO)):ee(t.a,(xe(),Md),(Qd(),HO))}function Rln(t,e){var n;return n=u( $ l(t,a2(new ke,new ne,new pi,ut(ot(wl,1),oe,132,0,[(P1(),Yl)]))),15),n.Qc(LKt(n.gc()))}function Mz(){Mz=X,mft=new JR("SIMPLE",0),AAt=new JR("GROUP_DEC",1),MAt=new JR("GROUP_MIXED",2),LAt=new JR("GROUP_INC",3)}function Wit(){Wit=X,Lft=new rB,JAt=new iB,tLt=new sB,eLt=new Ak,nLt=new aB,rLt=new oB,iLt=new YZ,sLt=new Lk,aLt=new Mk}function aie(t,e,n){gee(),aqt.call(this),this.a=Zb(Wge,[re,U6t],[595,212],0,[JH,Put],2),this.c=new L6,this.g=t,this.f=e,this.d=n}function b3t(t,e){this.n=Zb(Db,[re,oot],[364,25],14,[e,Cs(b.Math.ceil(t/32))],2),this.o=t,this.p=e,this.j=t-1>>1,this.k=e-1>>1}function jln(t,e){yr(e,"End label post-processing",1),ys(Wi(ec(new kn(null,new Tn(t.b,16)),new fY),new dY),new gY),or(e)}function  $ ln(t,e,n){var r,s;return r=Zt(t.p[e.i.p])+Zt(t.d[e.i.p])+e.n.b+e.a.b,s=Zt(t.p[n.i.p])+Zt(t.d[n.i.p])+n.n.b+n.a.b,s-r}function zln(t,e,n){var r,s;for(r=Gs(n,po),s=0;_c(r,0)!=0&&s<e;s++)r=Ra(r,Gs(t[s],po)),t[s]=Mr(r),r=Rp(r,32);return Mr(r)}function Dz(t){var e,n,r,s;for(s=0,n=0,r=t.length;n<r;n++)e=( $ r(n,t.length),t.charCodeAt(n)),e<64&&(s=L1(s,L0(1,e)));return s}function qln(t){var e;return t==null?null:new Fp((e=Hc(t,!0),e.length>0&&( $ r(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function Hln(t){var e;return t==null?null:new Fp((e=Hc(t,!0),e.length>0&&( $ r(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e))}function v3t(t,e){var n;return t.i>0&&(e.length<t.i&&(n=AD(dl(e).c,t.i),e=n),Pc(t.g,0,e,0,t.i)),e.length>t.i&&ls(e,t.i,null),e}function eu(t,e,n){var r,s,o;return t.ej()?(r=t.i,o=t.fj(),VD(t,r,e),s=t.Zi(3,null,e,r,o),n?n.Ei(s):n=s):VD(t,t.i,e),n}function Vln(t,e,n){var r,s;return r=new P0(t.e,4,10,(s=e.c,_t(s,88)?u(s,26):(ln(),Qh)),null, $ g(t,e),!1),n?n.Ei(r):n=r,n}function Gln(t,e,n){var r,s;return r=new P0(t.e,3,10,null,(s=e.c,_t(s,88)?u(s,26):(ln(),Qh)), $ g(t,e),!1),n?n.Ei(r):n=r,n}function oie(t){Bm();var e;return e=new So(u(t.e.We((di(),c5)),8)),t.B.Hc((bl(),ME))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function cie(t){sy();var e;return(t.q?t.q:(pn(),pn(),a0))._b((xe(),Nw))?e=u(K(t,Nw),197):e=u(K( $ a(t),SS),197),e}function iy(t,e){var n,r;return r=null,ea(t,(xe(),oG))&&(n=u(K(t,oG),94),n.Xe(e)&&(r=n.We(e))),r==null&&(r=K( $ a(t),e)),r}function uie(t,e){var n,r,s;return _t(e,42)?(n=u(e,42),r=n.cd(),s=ny(t.Rc(),r),dd(s,n.dd())&&(s!=null||t.Rc()._b(r))):!1}function Kit(t,e){var n,r,s;return t.f>0?(t.qj(),r=e==null?0:Ji(e),s=(r&Ti)%t.d.length,n=uce(t,s,r,e),n!=-1):!1}function Zf(t,e){var n,r,s;return t.f>0&&(t.qj(),r=e==null?0:Ji(e),s=(r&Ti)%t.d.length,n=e5t(t,s,r,e),n)?n.dd():null}function KD(t,e){var n,r,s,o;for(o=hu(t.e.Tg(),e),n=u(t.g,119),s=0;s<t.i;++s)if(r=n[s],o.rl(r.ak()))return!1;return!0}function lie(t){if(t.b==null){for(;t.a.Ob();)if(t.b=t.a.Pb(),!u(t.b,49).Zg())return!0;return t.b=null,!1}else return!0}function hie(t,e){t.mj();try{t.d.Vc(t.e++,e),t.f=t.d.j,t.g=-1}catch(n){throw n=rs(n),_t(n,73)?nt(new sh):nt(n)}}function Iz(t,e){s2t();var n,r;return n=VM((wR(),wR(),oS)),r=null,e==n&&(r=u(jc(Y8t,t),615)),r||(r=new YYt(t),e==n&&Ao(Y8t,t,r)),r}function fie(t,e){var n,r;t.a=Ra(t.a,1),t.c=b.Math.min(t.c,e),t.b=b.Math.max(t.b,e),t.d+=e,n=e-t.f,r=t.e+n,t.f=r-t.e-n,t.e=r}function Uln(t,e){var n;t.c=e,t.a=Lln(e),t.a<54&&(t.f=(n=e.d>1?L1(L0(e.a[1],32),Gs(e.a[0],po)):Gs(e.a[0],po),Gv(Ia(e.e,n))))}function YD(t,e){var n;return Vo(t)&&Vo(e)&&(n=t%e,PI<n&&n<E2)?n:Wp((h6t(Vo(t)?Dh(t):t,Vo(e)?Dh(e):e,!0),ub))}function iC(t,e){var n;f4n(e),n=u(K(t,(x
 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` ;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split( `  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` )}return[]}function Nfn(t){var e;return e=(jee(),mge),e[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[t&15]<<28}function _se(t){var e,n,r;t.b==t.c&&(r=t.a.length,n=kyt(b.Math.max(8,r))<<1,t.b!=0?(e=ff(t.a,n),Wee(t,e,r),t.a=e,t.b=0):Uzt(t.a,n),t.c=r)}function Pfn(t,e){var n;return n=t.b,n.Xe((di(),ml))?n.Hf()==(be(),Bn)?-n.rf().a-Zt(ve(n.We(ml))):e+Zt(ve(n.We(ml))):n.Hf()==(be(),Bn)?-n.rf().a:e}function eI(t){var e;return t.b.c.length!=0&&u(Pe(t.b,0),70).a?u(Pe(t.b,0),70).a:(e=irt(t),e??""+(t.c?Go(t.c.a,t,0):-1))}function Yz(t){var e;return t.f.c.length!=0&&u(Pe(t.f,0),70).a?u(Pe(t.f,0),70).a:(e=irt(t),e??""+(t.i?Go(t.i.j,t,0):-1))}function Ffn(t,e){var n,r;if(e<0||e>=t.gc())return null;for(n=e;n<t.gc();++n)if(r=u(t.Xb(n),128),n==t.gc()-1||!r.o)return new ya(de(n),r);return null}function Bfn(t,e,n){var r,s,o,h,d;for(o=t.c,d=n?e:t,r=n?t:e,s=d.p+1;s<r.p;++s)if(h=u(Pe(o.a,s),10),!(h.k==(Gn(),H1)||h1n(h)))return!1;return!0}function q3t(t){var e,n,r,s,o;for(o=0,s=Ns,r=0,n=new S(t.a);n.a<n.c.c.length;)e=u(Q(n),187),o+=e.r+(r>0?t.c:0),s=b.Math.max(s,e.d),++r;t.e=o,t.b=s}function Rfn(t){var e,n;if(!t.b)for(t.b=k $ (u(t.f,118).Ag().i),n=new nr(u(t.f,118).Ag());n.e!=n.i.gc();)e=u(gr(n),137),ue(t.b,new ret(e));return t.b}function jfn(t,e){var n,r,s;if(e.dc())return f8(),f8(),dN;for(n=new AWt(t,e.gc()),s=new nr(t);s.e!=s.i.gc();)r=gr(s),e.Hc(r)&&Or(n,r);return n}function H3t(t,e,n,r){return e==0?r?(!t.o&&(t.o=new Il((nu(),_b), $ w,t,0)),t.o):(!t.o&&(t.o=new Il((nu(),_b), $ w,t,0)),pD(t.o)):zz(t,e,n,r)}function yst(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e<n;++e)jM(At(t.rb,e));if(t.vb)for(e=0,n=t.vb.i;e<n;++e)jM(At(t.vb,e));T_((Gu(),Sa),t),t.Bb|=1}function Ui(t,e,n,r,s,o,h,d,w,k,_,M,B,q){return eoe(t,e,r,null,s,o,h,d,w,k,B,!0,q),Jyt(t,_),_t(t.Cb,88)&&hy(hl(u(t.Cb,88)),2),n&&Jmt(t,n),t3t(t,M),t}function  $ fn(t){var e,n;if(t==null)return null;n=0;try{n=Gl(t,Oa,Ti)&Ms}catch(r){if(r=rs(r),_t(r,127))e= $ $ (t),n=e[0];else throw nt(r)}return PD(n)}function zfn(t){var e,n;if(t==null)return null;n=0;try{n=Gl(t,Oa,Ti)&Ms}catch(r){if(r=rs(r),_t(r,127))e= $ $ (t),n=e[0];else throw nt(r)}return PD(n)}function qfn(t,e){var n,r,s;return s=t.h-e.h,s<0||(n=t.l-e.l,r=t.m-e.m+(n>>22),s+=r>>22,s<0)?!1:(t.l=n&vl,t.m=r&vl,t.h=s&U0,!0)}function Hfn(t,e,n,r,s,o,h){var d,w;return!(e.Ae()&&(w=t.a.ue(n,r),w<0||!s&&w==0)||e.Be()&&(d=t.a.ue(n,o),d>0||!h&&d==0))}function Vfn(t,e){J8();var n;if(n=t.j.g-e.j.g,n!=0)return 0;switch(t.j.g){case 2:return Hit(e,v9t)-Hit(t,v9t);case 4:return Hit(t,b9t)-Hit(e,b9t)}return 0}function Gfn(t){switch(t.g){case 0:return Elt;case 1:return Tlt;case 2:return _lt;case 3:return Clt;case 4:return BV;case 5:return Slt;default:return null}}function Io(t,e,n){var r,s;return r=(s=new Ytt,g2(s,e),tu(s,n),Or((!t.c&&(t.c=new he(zw,t,12,10)),t.c),s),s),Pg(r,0),ty(r,1),jg(r,!0),Rg(r,!0),r}function ix(t,e){var n,r;if(e>=t.i)throw nt(new Uet(e,t.i));return++t.j,n=t.g[e],r=t.i-e-1,r>0&&Pc(t.g,e+1,t.g,e,r),ls(t.g,--t.i,null),t.fi(e,n),t.ci(),n}function Cse(t,e){var n,r;return t.Db>>16==17?t.Cb.ih(t,21,Kh,e):(r=oo(u(wn((n=u(Mn(t,16),26),n||t.zh()),t.Db>>16),18)),t.Cb.ih(t,r.n,r.f,e))}function Ufn(t){var e,n,r,s;for(pn(),aa(t.c,t.a),s=new S(t.c);s.a<s.c.c.length;)for(r=Q(s),n=new S(t.b);n.a<n.c.c.length;)e=u(Q(n),679),e.Ke(r)}function Wfn(t){var e,n,r,s;for(pn(),aa(t.c,t.a),s=new S(t.c);s.a<s.c.c.length;)for(r=Q(s),n=new S(t.b);n.a<n.c.c.length;)e=u(Q(n),369),e.Ke(r)}function Kfn(t){var e,n,r,s,o;for(s=Ti,o=null,r=new S(t.d);r.a<r.c.c.length;)n=u(Q(r),213),n.d.j^n.e.j&&(e=n.e.e-n.d.e-n.a,e<s&&(s=e,o=n));return o}function V3t(){V3t=X,abe=new vn(uxt,(Fn(),!1)),rbe=new vn(lxt,100),pEt=(z_(),Kut),ibe=new vn(hxt,pEt),sbe=new vn(fxt,xd),obe=new vn(dxt,de(Ti))}function Sse(t,e,n){var r,s,o,h,d,w,k,_;for(k=0,s=t.a[e],o=0,h=s.length;o<h;++o)for(r=s[o],_=J_(r,n),w=_.Kc();w.Ob();)d=u(w.Pb(),11),Ai(t.f,d,de(k++))}function Yfn(t,e,n){var r,s,o,h;if(n)for(s=n.a.length,r=new Jb(s),h=(r.b-r.a)*r.c<0?(Op(),Mb):new Bp(r);h.Ob();)o=u(h.Pb(),19),cn(t,e,ax(Xm(n,o.a)))}function Xfn(t,e,n){var r,s,o,h;if(n)for(s=n.a.length,r=new J
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								\ r \ f ] + ` );try{sA=ut(ot(y6n,1),De,2015,0,[new lM((s2t(),Iz("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",VM((wR(),wR(),oS))))),new lM(Iz("yyyy-MM-dd'T'HH:mm:ss'.'SSS",VM(oS))),new lM(Iz("yyyy-MM-dd'T'HH:mm:ss",VM(oS))),new lM(Iz("yyyy-MM-dd'T'HH:mm",VM(oS))),new lM(Iz("yyyy-MM-dd",VM(oS)))])}catch(t){if(t=rs(t),!_t(t,78))throw nt(t)}}function nyn(t){var e,n,r,s;if(r=Oat((!t.c&&(t.c=qD(t.f)),t.c),0),t.e==0||t.a==0&&t.f!=-1&&t.e<0)return r;if(e=Vmt(t)<0?1:0,n=t.e,s=(r.length+1+b.Math.abs(Cs(t.e)),new Lm),e==1&&(s.a+="-"),t.e>0)if(n-=r.length-e,n>=0){for(s.a+="0.";n>N2.length;n-=N2.length)QKt(s,N2);OWt(s,N2,Cs(n)),Yr(s,r.substr(e))}else n=e-n,Yr(s,Bl(r,e,Cs(n))),s.a+=".",Yr(s,FM(r,Cs(n)));else{for(Yr(s,r.substr(e));n<-N2.length;n+=N2.length)QKt(s,N2);OWt(s,N2,Cs(-n))}return s.a}function a6t(t,e,n,r){var s,o,h,d,w,k,_,M,B;return w=fa(new Re(n.a,n.b),t),k=w.a*e.b-w.b*e.a,_=e.a*r.b-e.b*r.a,M=(w.a*r.b-w.b*r.a)/_,B=k/_,_==0?k==0?(s=Fi(new Re(n.a,n.b),ld(new Re(r.a,r.b),.5)),o=Gp(t,s),h=Gp(Fi(new Re(t.a,t.b),e),s),d=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o<h&&o<=d?new Re(t.a,t.b):h<=d?Fi(new Re(t.a,t.b),e):null):null:M>=0&&M<=1&&B>=0&&B<=1?Fi(new Re(t.a,t.b),ld(new Re(e.a,e.b),M)):null}function ryn(t,e,n){var r,s,o,h,d;if(r=u(K(t,(xe(),Vlt)),21),n.a>e.a&&(r.Hc((cy(),GO))?t.c.a+=(n.a-e.a)/2:r.Hc(UO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((cy(),KO))?t.c.b+=(n.b-e.b)/2:r.Hc(WO)&&(t.c.b+=n.b-e.b)),u(K(t,(ae(),Wc)),21).Hc((go(),yh))&&(n.a>e.a||n.b>e.b))for(d=new S(t.a);d.a<d.c.c.length;)h=u(Q(d),10),h.k==(Gn(),Is)&&(s=u(K(h,gc),61),s==(be(),Hn)?h.n.a+=n.a-e.a:s==xr&&(h.n.b+=n.b-e.b));o=t.d,t.f.a=n.a-o.b-o.c,t.f.b=n.b-o.d-o.a}function iyn(t,e,n){var r,s,o,h,d;if(r=u(K(t,(xe(),Vlt)),21),n.a>e.a&&(r.Hc((cy(),GO))?t.c.a+=(n.a-e.a)/2:r.Hc(UO)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((cy(),KO))?t.c.b+=(n.b-e.b)/2:r.Hc(WO)&&(t.c.b+=n.b-e.b)),u(K(t,(ae(),Wc)),21).Hc((go(),yh))&&(n.a>e.a||n.b>e.b))for(h=new S(t.a);h.a<h.c.c.length;)o=u(Q(h),10),o.k==(Gn(),Is)&&(s=u(K(o,gc),61),s==(be(),Hn)?o.n.a+=n.a-e.a:s==xr&&(o.n.b+=n.b-e.b));d=t.d,t.f.a=n.a-d.b-d.c,t.f.b=n.b-d.d-d.a}function syn(t){var e,n,r,s,o,h,d,w,k,_,M,B;for(e=Roe(t),_=(d=new Tm(e).a.vc().Kc(),new aM(d));_.a.Ob();){for(k=(s=u(_.a.Pb(),42),u(s.cd(),10)),M=0,B=0,M=k.d.d,B=k.o.b+k.d.a,t.d[k.p]=0,n=k;(o=t.a[n.p])!=k;)r=vhn(n,o),w=0,t.c==(gd(),Zg)?w=r.d.n.b+r.d.a.b-r.c.n.b-r.c.a.b:w=r.c.n.b+r.c.a.b-r.d.n.b-r.d.a.b,h=Zt(t.d[n.p])+w,t.d[o.p]=h,M=b.Math.max(M,o.d.d-h),B=b.Math.max(B,h+o.o.b+o.d.a),n=o;n=k;do t.d[n.p]=Zt(t.d[n.p])+M,n=t.a[n.p];while(n!=k);t.b[k.p]=M+B}}function vat(t){var e,n,r,s,o,h,d,w,k,_,M,B;for(t.b=!1,M=bs,w=Ns,B=bs,k=Ns,r=t.e.a.ec().Kc();r.Ob();)for(n=u(r.Pb(),266),s=n.a,M=b.Math.min(M,s.c),w=b.Math.max(w,s.c+s.b),B=b.Math.min(B,s.d),k=b.Math.max(k,s.d+s.a),h=new S(n.c);h.a<h.c.c.length;)o=u(Q(h),395),e=o.a,e.a?(_=s.d+o.b.b,d=_+o.c,B=b.Math.min(B,_),k=b.Math.max(k,d)):(_=s.c+o.b.a,d=_+o.c,M=b.Math.min(M,_),w=b.Math.max(w,d));t.a=new Re(w-M,k-B),t.c=new Re(M+t.d.a,B+t.d.b)}function ayn(t,e,n){var r,s,o,h,d,w,k,_,M;for(M=new le,_=new Hwt(0,n),o=0,Q $ (_,new kit(0,0,_,n)),s=0,k=new nr(t);k.e!=k.i.gc();)w=u(gr(k),33),r=u(Pe(_.a,_.a.c.length-1),187),d=s+w.g+(u(Pe(_.a,0),187).b.c.length==0?0:n),d>e&&(s=0,o+=_.b+n,M.c[M.c.length]=_,_=new Hwt(o,n),r=new kit(0,_.f,_,n),Q $ (_,r),s=0),r.b.c.length==0||w.f>=r.o&&w.f<=r.f||r.a*.5<=w.f&&r.a*1.5>=w.f?n3t(r,w):(h=new kit(r.s+r.r+n,_.f,_,n),Q $ (_,h),n3t(h,w)),s=w.i+w.g;return M.c[M.c.length]=_,M}function T4(t){var e,n,r,s,o,h,d,w;if(!t.a){if(t.o=null,w=new Szt(t),e=new xp,n=cA,d=n.a.zc(t,n),d==null){for(h=new nr(Po(t));h.e!=h.i.gc();)o=u(gr(h),26),gs(w,T4(o));n.a.Bc(t)!=null,n.a.gc()==0}for(s=(!t.s&&(t.s=new he(Nu,t,21,17)),new nr(t.s));s.e!=s.i.gc();)r=u(gr(s),170),_t(r,322)&&Or(e,u(r,34));ey(e),t.k=new DKt(t,(u(At(Kt((zp(),An).o),7),18),e.i),e.g),gs(w,t.k),ey(w),t.a=new V3((u(At(Kt(An.o),4),18),w.i),w.g),hl(t).b&=-2}return t.a}function oyn(t,e,n,r,s,o,h){var d,w,k,_,M,B;return M=!1,w=Sce(n.q,e.f+e.b-n.q.f),B=s-(n.q.e+w-h),B<r.g||(k=o==t.c.length-1&&B>=(Sn(o,t.c.length),u(t.c[o],200)).e,_=(d=_C(r,B,!1),d.a),_>e.b&&!k)?!1:((k||_<=e.b)&&(k&&_>e.b?(n.d=_,bD(n,Dae(n,_))):(Xse(n.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								\ r \ r   ` ),Ao(d5,uut,r),Ao(IE,uut,by(r)),r=new jl(4),XD(r,Z0e),Ao(d5,aS,r),Ao(IE,aS,by(r)),r=new jl(4),XD(r,Z0e),Ao(d5,aS,r),Ao(IE,aS,by(r)),r=new jl(4),XD(r,J0e),vy(r,u(jc(d5,aS),117)),Ao(d5,cut,r),Ao(IE,cut,by(r)),r=new jl(4),XD(r,"-.0:AZ__az··ÀÖØöøı ǃ ʻ ː Ρ Ϝ Ϝ ϳ ա ٠ ھ ە ۰ ः ० ০ ੦ ઃ ૦ ଃ ୦ ౦ ಂ ೦ ം ൦ ๐ ໐ ᅟ ι ι K ℮ ℮ 〇 〇  $ h,r1])),Nr(t.d,Zr,ut(ot(Le,1),re,2,6,[fi,"base64Binary", $ h,r1])),Nr(t.e,Zr,ut(ot(Le,1),re,2,6,[fi,lx, $ h,r1])),Nr(t.f,Zr,ut(ot(Le,1),re,2,6,[fi,"boolean:Object",Na,lx])),Nr(t.g,Zr,ut(ot(Le,1),re,2,6,[fi,JC])),Nr(t.i,Zr,ut(ot(Le,1),re,2,6,[fi,"byte:Object",Na,JC])),Nr(t.j,Zr,ut(ot(Le,1),re,2,6,[fi,"date", $ h,r1])),Nr(t.k,Zr,ut(ot(Le,1),re,2,6,[fi,"dateTime", $ h,r1])),Nr(t.n,Zr,ut(ot(Le,1),re,2,6,[fi,"decimal", $ h,r1])),Nr(t.o,Zr,ut(ot(Le,1),re,2,6,[fi,tS, $ h,r1])),Nr(t.p,Zr,ut(ot(Le,1),re,2,6,[fi,"double:Object",Na,tS])),Nr(t.q,Zr,ut(ot(Le,1),re,2,6,[fi,"duration", $ h,r1])),Nr(t.s,Zr,ut(ot(Le,1),re,2,6,[fi,"ENTITIES",Na,j0e,F8t,"1"])),Nr(t.r,Zr,ut(ot(Le,1),re,2,6,[fi,j0e,iut,B8t])),Nr(t.t,Zr,ut(ot(Le,1),re,2,6,[fi,B8t,Na,BH])),Nr(t.u,Zr,ut(ot(Le,1),re,2,6,[fi,eS, $ h,r1])),Nr(t.v,Zr,ut(ot(Le,1),re,2,6,[fi,"float:Object",Na,eS])),Nr(t.w,Zr,ut(ot(Le,1),re,2,6,[fi,"gDay", $ h,r1])),Nr(t.B,Zr,ut(ot(Le,1),re,2,6,[fi,"gMonth", $ h,r1])),Nr(t.A,Zr,ut(ot(Le,1),re,2,6,[fi,"gMonthDay", $ h,r1])),Nr(t.C,Zr,ut(ot(Le,1),re,2,6,[fi,"gYear", $ h,r1])),Nr(t.D,Zr,ut(ot(Le,1),re,2,6,[fi,"gYearMonth", $ h,r1])),Nr(t.F,Zr,ut(ot(Le,1),re,2,6,[fi,"hexBinary", $ h,r1])),Nr(t.G,Zr,ut(ot(Le,1),re,2,6,[fi,"ID",Na,BH])),Nr(t.H,Zr,ut(ot(Le,1),re,2,6,[fi,"IDREF",Na,BH])),Nr(t.J,Zr,ut(ot(Le,1),re,2,6,[fi,"IDREFS",Na, $ 0e,F8t,"1"])),Nr(t.I,Zr,ut(ot(Le,1),re,2,6,[fi, $ 0e,iut,"IDREF"])),Nr(t.K,Zr,ut(ot(Le,1),re,2,6,[fi,nS])),Nr(t.M,Zr,ut(ot(Le,1),re,2,6,[fi,R8t])),Nr(t.L,Zr,ut(ot(Le,1),re,2,6,[fi,"int:Object",Na,nS])),Nr(t.P,Zr,ut(ot(Le,1),re,2,6,[fi,"language",Na,aut,out,z0e])),Nr(t.Q,Zr,ut(ot(Le,1),re,2,6,[fi,rS])),Nr(t.R,Zr,ut(ot(Le,1),re,2,6,[fi,"long:Object",Na,rS])),Nr(t.S,Zr,ut(ot(Le,1),re,2,6,[fi,"Name",Na,aut,out,j8t])),Nr(t.T,Zr,ut(ot(Le,1),re,2,6,[fi,BH,Na,"Name
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,Wfe= ` ) ] } " '  	\ r  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,Kfe="The given string contains parts that cannot be parsed as numbers.",GI="org.eclipse.elk.core.math",Yfe={3:1,4:1,142:1,207:1,414:1},Xfe={3:1,4:1,116:1,207:1,414:1},Un="org.eclipse.elk.layered",Ug="org.eclipse.elk.alg.layered.graph.transform",Qfe="ElkGraphImporter",Zfe="ElkGraphImporter/lambda $ 0 $ Type",Jfe="ElkGraphImporter/lambda $ 1 $ Type",t1e="ElkGraphImporter/lambda $ 2 $ Type",e1e="ElkGraphImporter/lambda $ 4 $ Type",n1e="Node margin calculation", $ n="org.eclipse.elk.alg.layered.intermediate",r1e="ONE_SIDED_GREEDY_SWITCH",i1e="TWO_SIDED_GREEDY_SWITCH",Rot="No implementation is available for the layout processor ",pxt="IntermediateProcessorStrategy",jot="Node '",s1e="FIRST_SEPARATE",a1e="LAST_SEPARATE",o1e="Odd port side processing",Ps="org.eclipse.elk.alg.layered.intermediate.compaction", $ C="org.eclipse.elk.alg.layered.intermediate.greedyswitch",s0="org.eclipse.elk.alg.layered.p3order.counting",UI={225:1},xx="org.eclipse.elk.alg.layered.intermediate.loops",Kl="org.eclipse.elk.alg.layered.intermediate.loops.ordering",ab="org.eclipse.elk.alg.layered.intermediate.loops.routing",zC="org.eclipse.elk.alg.layered.intermediate.preserveorder",Ed="org.eclipse.elk.alg.layered.intermediate.wrapping",Sc="org.eclipse.elk.alg.layered.options", $ ot="INTERACTIVE",c1e="DEPTH_FIRST",u1e="EDGE_LENGTH",l1e="SELF_LOOPS",h1e="firstTryWithInitialOrder",bxt="org.eclipse.elk.layered.directionCongruency",vxt="org.eclipse.elk.layered.feedbackEdges",Xq="org.eclipse.elk.layered.interactiveReferencePoint",wxt="org.eclipse.elk.layered.mergeEdges",mxt="org.eclipse.elk.layered.mergeHierarchyEdges",yxt="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",xxt="org.eclipse.elk.layered.portSortingStrategy",kxt="org.eclipse.elk.layered.thoroughness",Ext="org.eclipse.elk.layered.unnecessaryBendpoints",Txt="org.eclipse.elk.layered.generatePositionAndLayerIds",zot="org.eclipse.elk.layered.cycleBreaking.strategy",WI="org.eclipse.elk.layered.layering.strategy",_xt="org.eclipse.elk.layered.layering.layerConstraint",Cxt="org.eclipse.elk.layered.layering.layerChoiceConstraint",Sxt="org.eclipse.elk.layered.layering.layerId",qot="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",Hot="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",Vot="org.eclipse.elk.layered.layering.nodePromotion.strategy",Got="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",Uot="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",qC="org.eclipse.elk.layered.crossingMinimization.strategy",Axt="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",Wot="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",Kot="org.eclipse.elk.layered.crossingMinimization.semiInteractive",Lxt="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",Mxt="org.eclipse.elk.layered.crossingMinimization.positionId",Dxt="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",Yot="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",Qq="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",I4="org.eclipse.elk.layered.nodePlacement.strategy",Zq="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",Xot="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",Qot="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",Zot="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",Jot="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",tct="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",Ixt="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",Oxt="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",Jq="org.eclipse.elk.layered.edgeRouting.splines.mode",tH="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",ect="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",Nxt="org.eclipse.elk.layered.spacing.baseValue",Pxt="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",Fxt="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",Bxt="org.eclipse.elk.layered.sp
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ,e=de(0),h=0;h<this.p;h++){for(r+=""+e.a,e=de(IWt(e.a)),s=0;s<this.o;s++)n=oit(this,s,h),_c(n,0)==0?r+="_":_c(n,1)==0?r+="X":r+="0";r+= `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }return Bl(r,0,r.length-1)},l.o=0,l.p=0,N(zq,"TwoBitGrid",1298),D(321,1298,{321:1},b3t),l.j=0,l.k=0,N(zq,"PlanarGrid",321),D(167,321,{321:1,167:1}),l.g=0,l.i=0,N(zq,"Polyomino",167);var s6n=as( $ I,Dfe);D(134,1,X6t,k3),l.Ye=function(e,n){return jD(this,e,n)},l.Ve=function(){return tYt(this)},l.We=function(e){return K(this,e)},l.Xe=function(e){return ea(this,e)},N( $ I,"MapPropertyHolder",134),D(1299,134,X6t,Oce),N(zq,"Polyominoes",1299);var Cpe=!1,lS,J7t;D(1766,1,Kn,zb),l.td=function(e){Dle(u(e,221))},N(bx,"DepthFirstCompaction/0methodref $ compactTree $ Type",1766),D(810,1,Kn,ri),l.td=function(e){qen(this.a,u(e,221))},N(bx,"DepthFirstCompaction/lambda $ 1 $ Type",810),D(1767,1,Kn,dKt),l.td=function(e){fhn(this.a,this.b,this.c,u(e,221))},N(bx,"DepthFirstCompaction/lambda $ 2 $ Type",1767);var hS,tEt;D(65,1,{65:1},yQt),N(bx,"Node",65),D(1250,1,{},xUt),N(bx,"ScanlineOverlapCheck",1250),D(1251,1,{679:1}, $ Xt),l.Ke=function(e){_Qe(this,u(e,440))},N(bx,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),D(1252,1,qi,os),l.ue=function(e,n){return Kun(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.ve=function(){return new ft(this)},N(bx,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda $ 0 $ Type",1252),D(440,1,{440:1},kbt),l.a=!1,N(bx,"ScanlineOverlapCheck/Timestamp",440),D(1253,1,qi,As),l.ue=function(e,n){return T1n(u(e,440),u(n,440))},l.Fb=function(e){return this===e},l.ve=function(){return new ft(this)},N(bx,"ScanlineOverlapCheck/lambda $ 0 $ Type",1253),D(550,1,{},ma),N(Ife,"SVGImage",550),D(324,1,{324:1},pvt),l.Ib=function(){return"("+this.a+Xa+this.b+Xa+this.c+")"},N(Ife,"UniqueTriple",324),D(209,1,_2),N(L4,"AbstractLayoutProvider",209),D(1132,209,_2,vi),l.Ze=function(e,n){var r,s,o,h;switch(yr(n,Ofe,1),this.a=Zt(ve(ze(e,(aC(),aEt)))),s2(e, $ ut)&&(o=jr(ze(e, $ ut)),r=aat(z8(),o),r&&(s=u(hrt(r.f),209),s.Ze(e,zc(n,1)))),h=new FZt(this.a),this.b=d4n(h,e),u(ze(e,(Ait(),nEt)),481).g){case 0:Lpn(new Qc,this.b),Eo(e,rV,K(this.b,rV));break;default:qd()}x4n(h),Eo(e,iEt,this.b),or(n)},l.a=0,N(Nfe,"DisCoLayoutProvider",1132),D(1244,1,{},Qc),l.c=!1,l.e=0,l.f=0,N(Nfe,"DisCoPolyominoCompactor",1244),D(561,1,{561:1},sYt),l.b=!0,N(Hq,"DCComponent",561),D(394,22,{3:1,35:1,22:1,394:1},zR),l.a=!1;var eV,gO,nV,pO,Spe=zr(Hq,"DCDirection",394,Ur,Sin,gZe),Ape;D(266,134,{3:1,266:1,94:1,134:1},Ust),N(Hq,"DCElement",266),D(395,1,{395:1}, $ 3t),l.c=0,N(Hq,"DCExtension",395),D(755,134,X6t,nHt),N(Hq,"DCGraph",755),D(481,22,{3:1,35:1,22:1,481:1},aWt);var jut,eEt=zr(Aot,Q6t,481,Ur,rnn,pZe),Lpe;D(854,1,Ph,IJ),l.Qe=function(e){an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,Z6t),Pfe),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),rEt),(Hg(),ms)),eEt),on((Jf(),qn))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,J6t),Pfe),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),TE),Le),on(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,txt),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),U1),Qn),on(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,ext),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),U1),Qn),on(qn)))),mle((new DB,e))};var Mpe,nEt,rEt,Dpe,Ipe;N(Aot,"DisCoMetaDataProvider",854),D(998,1,Ph,DB),l.Qe=function(e){mle(e)};var Ope, $ ut,Npe,iEt,rV,zut,sEt,Ppe,Fpe,Bpe,Rpe,aEt;N(Aot,"DisCoOptions",998),D(999,1,{},me),l. $ e=function(){var e;return e=new vi,e},l._e=function(e){},N(Aot,"DisCoOptions/DiscoFactory",999),D(562,167,{321:1,167:1,562:1},bce),l.a=0,l.b=0,l.c=0,l.d=0,N("org.eclipse.elk.alg.disco.structures","DCPolyomino",562);var qut,Hut,iV;D(1268,1,gi,bg),l.Mb=function(e){return Qbt(e)},N(M4,"ElkGraphComponentsProcessor/lambda $ 0 $ Type",1268),D(1269,1,{},Oe),l.Kb=function(e){return  $ 6(),Zd(u(e,79))},N(M4,"ElkGraphComponentsProcessor/lambda $ 1 $ Type",1269),D(1270,1,gi,af),l.Mb=function(e){return gtn(u(e,79))},N(M4,"ElkGraphCom
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									start = ` ,wc(e,this.i),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									end = ` ,wc(e,this.a),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									nodeStartEdge = ` ,wc(e,this.e),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startEndEdge = ` ,wc(e,this.j),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									originalEdge = ` ,wc(e,this.f),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startInLayerDummy = ` ,wc(e,this.k),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									startInLayerEdge = ` ,wc(e,this.n),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									endInLayerDummy = ` ,wc(e,this.b),e.a+= ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
									endInLayerEdge = ` ,wc(e,this.c),e.a},N(Ed,"BreakingPointInserter/BPInfo",305),D(652,1,{652:1},Cp),l.a=!1,l.b=0,l.c=0,N(Ed,"BreakingPointInserter/Cut",652),D(1480,1,vs,KX),l.pf=function(e,n){qbn(u(e,37),n)},N(Ed,"BreakingPointProcessor",1480),D(1481,1,gi,YX),l.Mb=function(e){return tee(u(e,10))},N(Ed,"BreakingPointProcessor/0methodref $ isEnd $ Type",1481),D(1482,1,gi,XX),l.Mb=function(e){return eee(u(e,10))},N(Ed,"BreakingPointProcessor/1methodref $ isStart $ Type",1482),D(1483,1,vs,QX),l.pf=function(e,n){h2n(this,u(e,37),n)},N(Ed,"BreakingPointRemover",1483),D(1484,1,Kn,ZX),l.td=function(e){u(e,128).k=!0},N(Ed,"BreakingPointRemover/lambda $ 0 $ Type",1484),D(797,1,{},l5t),l.b=0,l.e=0,l.f=0,l.j=0,N(Ed,"GraphStats",797),D(798,1,{},PF),l.Ce=function(e,n){return b.Math.max(Zt(ve(e)),Zt(ve(n)))},N(Ed,"GraphStats/0methodref $ max $ Type",798),D(799,1,{},FF),l.Ce=function(e,n){return b.Math.max(Zt(ve(e)),Zt(ve(n)))},N(Ed,"GraphStats/2methodref $ max $ Type",799),D(1660,1,{},JX),l.Ce=function(e,n){return XJe(ve(e),ve(n))},N(Ed,"GraphStats/lambda $ 1 $ Type",1660),D(1661,1,{},AT),l.Kb=function(e){return Hie(this.a,u(e,29))},N(Ed,"GraphStats/lambda $ 2 $ Type",1661),D(1662,1,{},sR),l.Kb=function(e){return Tce(this.a,u(e,29))},N(Ed,"GraphStats/lambda $ 6 $ Type",1662),D(800,1,{},BF),l.Vf=function(e,n){var r;return r=u(K(e,(xe(),g_t)),15),r||(pn(),pn(),uo)},l.Wf=function(){return!1},N(Ed,"ICutIndexCalculator/ManualCutIndexCalculator",800),D(802,1,{},RF),l.Vf=function(e,n){var r,s,o,h,d,w,k,_,M,B,q,G,W,Z,vt,Mt,St,jt,Qt;for(Qt=(n.n==null&&dse(n),n.n),k=(n.d==null&&dse(n),n.d),jt=Nt(ga,To,25,Qt.length,15,1),jt[0]=Qt[0],Mt=Qt[0],_=1;_<Qt.length;_++)jt[_]=jt[_-1]+Qt[_],Mt+=Qt[_];for(o=Lae(n)-1,d=u(K(e,(xe(),p_t)),19).a,s=Ns,r=new le,q=b.Math.max(0,o-d);q<=b.Math.min(n.f-1,o+d);q++){if(Z=Mt/(q+1),vt=0,M=1,h=new le,St=Ns,B=0,w=0,W=k[0],q==0)St=Mt,w=(n.g==null&&(n.g=ane(n,new FF)),Zt(n.g));else{for(;M<n.f;)jt[M-1]-vt>=Z&&(ue(h,de(M)),St=b.Math.max(St,jt[M-1]-B),w+=W,vt+=jt[M-1]-vt,B=jt[M-1],W=k[M]),W=b.Math.max(W,k[M]),++M;w+=W}G=b.Math.min(1/St,1/n.b/w),G>s&&(s=G,r=h)}return r},l.Wf=function(){return!1},N(Ed,"MSDCutIndexHeuristic",802),D(1617,1,vs,tQ),l.pf=function(e,n){Bmn(u(e,37),n)},N(Ed,"SingleEdgeGraphWrapper",1617),D(227,22,{3:1,35:1,22:1,227:1},QT);var V4,aE,oE,Oy,pS,G4,cE=zr(Sc,"CenterEdgeLabelPlacementStrategy",227,Ur,Ksn,CZe),s2e;D(422,22,{3:1,35:1,22:1,422:1},Abt);var m9t,wlt,y9t=zr(Sc,"ConstraintCalculationStrategy",422,Ur,Rnn,SZe),a2e;D(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Eet),l.Kf=function(){return boe(this)},l.Xf=function(){return boe(this)};var xO,Ax,x9t,k9t=zr(Sc,"CrossingMinimizationStrategy",314,Ur,Mrn,AZe),o2e;D(337,22,{3:1,35:1,22:1,337:1},Tet);var E9t,mlt,PV,T9t=zr(Sc,"CuttingStrategy",337,Ur,Drn,DZe),c2e;D(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},CM),l.Kf=function(){return nce(this)},l.Xf=function(){return nce(this)};var _9t,ylt,bS,xlt,vS,C9t=zr(Sc,"CycleBreakingStrategy",335,Ur,ysn,IZe),u2e;D(419,22,{3:1,35:1,22:1,419:1},Lbt);var FV,S9t,A9t=zr(Sc,"DirectionCongruency",419,Ur,Bnn,OZe),l2e;D(450,22,{3:1,35:1,22:1,450:1},_et);var uE,klt,U4,h2e=zr(Sc,"EdgeConstraint",450,Ur,Irn,NZe),f2e;D(276,22,{3:1,35:1,22:1,276:1},ZT);var Elt,Tlt,_lt,Clt,BV,Slt,L9t=zr(Sc,"EdgeLabelSideSelection",276,Ur,Zsn,PZe),d2e;D(479,22,{3:1,35:1,22:1,479:1},Mbt);var RV,M9t,D9t=zr(Sc,"EdgeStraighteningStrategy",479,Ur,Fnn,FZe),g2e;D(274,22,{3:1,35:1,22:1,274:1},JT);var Alt,I9t,O9t,jV,N9t,P9t,F9t=zr(Sc,"FixedAlignment",274,Ur,Xsn,BZe),p2e;D(275,22,{3:1,35:1,22:1,275:1},t_);var B9t,R9t,j9t, $ 9t,wS,z9t,q9t=zr(Sc,"GraphCompactionStrategy",275,Ur,Ysn,RZe),b2e;D(256,22,{3:1,35:1,22:1,256:1},Im);var lE, $ V,hE,yh,mS,zV,fE,W4,qV,yS,Llt=zr(Sc,"GraphProperties",256,Ur,Bon,jZe),v2e;D(292,22,{3:1,35:1,22:1,292:1},Cet);var kO,Mlt,Dlt,Ilt=zr(Sc,"GreedySwitchType",292,Ur,Prn, $ Ze),w2e;D(303,22,{3:1,35:1,22:1,303:1},Aet);var Lx,EO,K4,m2e=zr(Sc,"InLayerConstraint",303,Ur,Nrn,zZe),y2e;D(420,22,{3:1,35:1,22:1,420:1},Dbt);var Olt,H9t,V9t=zr(Sc,"InteractiveReferencePoint",420,Ur,jnn,qZe),x2e,G9t,Mx,Lw,HV,U9t,W9t,VV,K9t,TO,GV,xS,Dx,Ny,Nlt,UV,gc,Y9t,Mw,Wc,Plt,Flt,_O,P2,Dw,Ix,X9t,Ox,CO,Py,s1,qh,Blt,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;for(n=si(this.a,0);n.b!=n.d.c;)e=u(ii(n),188),o+=(e.b&&e.c?w $ (e.b)+"->"+w $ (e.c):"e_"+Ji(e))+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ;return o};var d6n=N(GC,"TGraph",135);D(633,502,{3:1,502:1,633:1,94:1,134:1}),N(GC,"TShape",633),D(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},xit),l.Ib=function(){return w $ (this)};var g6n=N(GC,"TNode",86);D(255,1,t0,Sp),l.Jc=function(e){_a(this,e)},l.Kc=function(){var e;return e=si(this.a.d,0),new v6(e)},N(GC,"TNode/2",255),D(358,1,da,v6),l.Nb=function(e){Ea(this,e)},l.Pb=function(){return u(ii(this.a),188).c},l.Ob=function(){return TR(this.a)},l.Qb=function(){G $ (this.a)},N(GC,"TNode/2/1",358),D(1840,1,vs,zWt),l.pf=function(e,n){_mn(this,u(e,135),n)},N(kx,"FanProcessor",1840),D(327,22,{3:1,35:1,22:1,327:1,234:1},n_),l.Kf=function(){switch(this.g){case 0:return new Sqt;case 1:return new zWt;case 2:return new Z5;case 3:return new WQ;case 4:return new YQ;case 5:return new FL;default:throw nt(new Pn(Rot+(this.f!=null?this.f:""+this.g)))}};var kht,Eht,Tht,_ht,Cht,yG,Wme=zr(kx,pxt,327,Ur,Jsn,lJe),Kme;D(1843,1,vs,WQ),l.pf=function(e,n){obn(this,u(e,135),n)},l.a=0,N(kx,"LevelHeightProcessor",1843),D(1844,1,t0,KQ),l.Jc=function(e){_a(this,e)},l.Kc=function(){return pn(),r8(),Z7},N(kx,"LevelHeightProcessor/1",1844),D(1841,1,vs,Z5),l.pf=function(e,n){ggn(this,u(e,135),n)},l.a=0,N(kx,"NeighborsProcessor",1841),D(1842,1,t0,qF),l.Jc=function(e){_a(this,e)},l.Kc=function(){return pn(),r8(),Z7},N(kx,"NeighborsProcessor/1",1842),D(1845,1,vs,YQ),l.pf=function(e,n){abn(this,u(e,135),n)},l.a=0,N(kx,"NodePositionProcessor",1845),D(1839,1,vs,Sqt),l.pf=function(e,n){Iyn(this,u(e,135))},N(kx,"RootProcessor",1839),D(1846,1,vs,FL),l.pf=function(e,n){zun(u(e,135))},N(kx,"Untreeifyer",1846);var jO,jS,Yme,Sht,xG, $ S,Aht,kG,EG,kE,zS,TG,Jg,Q_t,Xme,Lht,Wy,Mht,Z_t;D(851,1,Ph,D3),l.Qe=function(e){an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,Nkt),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),tCt),(Hg(),ms)),oCt),on((Jf(),qn))))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,Pkt),""),"Search Order"),"Which search order to use when computing a spanning tree."),J_t),ms),uCt),on(qn)))),Yle((new QL,e))};var Qme,J_t,Zme,tCt;N(gH,"MrTreeMetaDataProvider",851),D(994,1,Ph,QL),l.Qe=function(e){Yle(e)};var Jme,eCt,tye,eye,nye,rye,nCt,iye,rCt,sye,_G,iCt,aye,sCt,oye;N(gH,"MrTreeOptions",994),D(995,1,{},XQ),l. $ e=function(){var e;return e=new qWt,e},l._e=function(e){},N(gH,"MrTreeOptions/MrtreeFactory",995),D(480,22,{3:1,35:1,22:1,480:1},jbt);var Dht,aCt,oCt=zr(gH,"OrderWeighting",480,Ur,Wnn,hJe),cye;D(425,22,{3:1,35:1,22:1,425:1}, $ bt);var cCt,Iht,uCt=zr(gH,"TreeifyingOrder",425,Ur,Unn,dJe),uye;D(1459,1,Vc,XL),l.Yf=function(e){return u(e,135),lye},l.pf=function(e,n){ $ on(this,u(e,135),n)};var lye;N("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),D(1460,1,Vc,ZJ),l.Yf=function(e){return u(e,135),hye},l.pf=function(e,n){Tgn(this,u(e,135),n)};var hye;N("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),D(1461,1,Vc,QJ),l.Yf=function(e){return u(e,135),fye},l.pf=function(e,n){zvn(this,u(e,135),n)},l.a=0;var fye;N("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),D(1462,1,Vc,FB),l.Yf=function(e){return u(e,135),dye},l.pf=function(e,n){d1n(u(e,135),n)};var dye;N("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462);var qS;D(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},zbt),l.Kf=function(){return eie(this)},l.Xf=function(){return eie(this)};var CG,EE,lCt=zr(Fkt,"RadialLayoutPhases",495,Ur,Knn,fJe),gye;D(1131,209,_2,xHt),l.Ze=function(e,n){var r,s,o,h,d,w;if(r=ioe(this,e),yr(n,"Radial layout",r.c.length),Be(Fe(ze(e,(ay(),yCt))))||h $ ((s=new rr((Dm(),new Sm(e))),s)),w=Mdn(e),Eo(e,(w_(),qS),w),!w)throw nt(new Pn("The given graph is not a tree!"));for(o=Zt(ve(ze(e,LG))),o==0&&(o=woe(e)),Eo(e,LG,o),d=new S(ioe(this,e));d.a<d.c.c.length;)h=u(Q(d),51),h.pf(e,zc(n,1));or(n)},N(Fkt,"RadialLayoutProvider",1131),D(549,1,qi,_R),l.ue=function(e,n){return nwn(this.a,this.b,u(e,33),u(n,33))},l.Fb=function(e){return this===e},l.ve=function(){return new ft(this)},l.a=0,l.b=0,N(Fkt,"RadialUtil/lambda $ 0 $ Type",549),D(1375,1,vs,ZQ),l.pf=function(e,n){x3n(u(e,33),n)},N(M1e,"CalculateGraphSize",1375),D(442,22,{3:1,35:1,22:1,442:1,234:1},Bet),l.Kf=functi
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),o.length!=2)throw nt(new Pn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=ly(uy(o[0])),this.b=ly(uy(o[1]))}catch(h){throw h=rs(h),_t(h,127)?(r=h,nt(new Pn(Kfe+r))):nt(h)}},l.Ib=function(){return"("+this.a+","+this.b+")"},l.a=0,l.b=0;var na=N(GI,"KVector",8);D(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},ju,kR,lWt),l.Pc=function(){return Jcn(this)},l.Jf=function(e){var n,r,s,o,h,d;s=py(e, ` , | ; | \ \ ( | \ \ ) | \ \ [ | \ \ ] | \ \ { | \ \ } |  | 	|  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),Mh(this);try{for(r=0,h=0,o=0,d=0;r<s.length;)s[r]!=null&&uy(s[r]).length>0&&(h%2==0?o=ly(s[r]):d=ly(s[r]),h>0&&h%2!=0&&ai(this,new Re(o,d)),++h),++r}catch(w){throw w=rs(w),_t(w,127)?(n=w,nt(new Pn("The given string does not match the expected format for vectors."+n))):nt(w)}},l.Ib=function(){var e,n,r;for(e=new Fl("("),n=si(this,0);n.b!=n.d.c;)r=u(ii(n),8),Yr(e,r.a+","+r.b),n.b!=n.d.c&&(e.a+="; ");return(e.a+=")",e).a};var mSt=N(GI,"KVectorChain",74);D(248,22,{3:1,35:1,22:1,248:1},r_);var Jht,FG,BG,HO,VO,RG,ySt=zr(Bh,"Alignment",248,Ur,Wsn,MJe),O3e;D(979,1,Ph,ett),l.Qe=function(e){Vue(e)};var xSt,tft,N3e,kSt,ESt,P3e,TSt,F3e,B3e,_St,CSt,R3e;N(Bh,"BoxLayouterOptions",979),D(980,1,{},IZ),l. $ e=function(){var e;return e=new RZ,e},l._e=function(e){},N(Bh,"BoxLayouterOptions/BoxFactory",980),D(291,22,{3:1,35:1,22:1,291:1},i_);var GO,eft,UO,WO,KO,nft,rft=zr(Bh,"ContentAlignment",291,Ur,Usn,DJe),j3e;D(684,1,Ph,kp),l.Qe=function(e){an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,H1e),""),"Layout Algorithm"),"Select a specific layout algorithm."),(Hg(),TE)),Le),on((Jf(),qn))))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,V1e),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),U1),v6n),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,fkt),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),SSt),ms),ySt),on(ua)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,vx),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."), $ o),wa),on(qn)))),an(e,new Xe(rn(nn(sn(Ze(en(Je(tn(new Ue,a8t),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),U1),mSt),on(Id)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,lH),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),LSt), $ x),rft),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,QI),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Fn(),!1)),Pa),Ws),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,pkt),""),Y6t),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),MSt),ms),YS),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,YI),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),OSt),ms),bft),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,bH),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),Pa),Ws),on(qn)))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,uH),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to  ` INCLUDE _CHILDREN `  will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to  ` SEPARATE _CHILDREN ` . In general,  ` SEPARATE _CHILDREN `  will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to  ` INHERIT `  (or not set at all), the default behavior is  ` SEPARATE _CHILDREN ` ."),BSt),ms),kAt),Ki(qn,ut(ot(ep,1),oe,175,0,[ua]))))),an(e,new Xe(rn(nn(sn(yn(Ze(en(Je(tn(new Ue,ww),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output o
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Consider  installing  the  package  or  pass  your  own  'workerFactory'  to  ELK ' s  constructor .  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								...  Falling  back  to  non - web  worker  version . ` );if(!R.workerFactory){var rt=f("./elk-worker.min.js"),J=rt.Worker;R.workerFactory=function(it){return new J(it)}}return b(this,(F.__proto__||Object.getPrototypeOf(F)).call(this,R))}return F}(C);Object.defineProperty(p.exports,"__esModule",{value:!0}),p.exports=A,A.default=A},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(f,p,v){p.exports=Worker},{}]},{},[3])(3)})})(wjt);var aUe=wjt.exports;const oUe=BE(aUe),mjt=new oUe;let sv={};const cUe={};let j5={};const uUe=async function(i,a,f,p,v,m,b){const C=f.select( ` [ id = "${a}" ] ` ).insert("g").attr("class","nodes"),A=Object.keys(i);return await Promise.all(A.map(async function(P){const F=i[P];let j="default";F.classes.length>0&&(j=F.classes.join(" ")),j=j+" flowchart-label";const R=tm(F.styles);let H=F.text!==void 0?F.text:F.id;const Y={width:0,height:0},rt=[{id:F.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:F.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:F.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:F.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let J=0,it="",ht={};switch(F.type){case"round":J=5,it="rect";break;case"square":it="rect";break;case"diamond":it="question",ht={portConstraints:"FIXED_SIDE"};break;case"hexagon":it="hexagon";break;case"odd":it="rect_left_inv_arrow";break;case"lean_right":it="lean_right";break;case"lean_left":it="lean_left";break;case"trapezoid":it="trapezoid";break;case"inv_trapezoid":it="inv_trapezoid";break;case"odd_right":it="rect_left_inv_arrow";break;case"circle":it="circle";break;case"ellipse":it="ellipse";break;case"stadium":it="stadium";break;case"subroutine":it="subroutine";break;case"cylinder":it="cylinder";break;case"group":it="rect";break;case"doublecircle":it="doublecircle";break;default:it="rect"}const Tt={labelStyle:R.labelStyle,shape:it,labelText:H,labelType:F.labelType,rx:J,ry:J,class:j,style:R.style,id:F.id,link:F.link,linkTarget:F.linkTarget,tooltip:v.db.getTooltip(F.id)||"",domId:v.db.lookUpDomId(F.id),haveCallback:F.haveCallback,width:F.type==="group"?500:void 0,dir:F.dir,type:F.type,props:F.props,padding:Me().flowchart.padding};let xt,pt;if(Tt.type!=="group")pt=await _Bt(C,Tt,F.dir),xt=pt.node().getBBox();else{p.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:yt,bbox:st}=await Od(C,Tt,void 0,!0);Y.width=st.width,Y.wrappingWidth=Me().flowchart.wrappingWidth,Y.height=st.height,Y.labelNode=yt.node(),Tt.labelData=Y}const ct={id:F.id,ports:F.type==="diamond"?rt:[],layoutOptions:ht,labelText:H,labelData:Y,domId:v.db.lookUpDomId(F.id),width:xt==null?void 0:xt.width,height:xt==null?void 0:xt.height,type:F.type,el:pt,parent:m.parentById[F.id]};j5[Tt.id]=ct})),b},yjt=(i,a,f)=>{const p={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return p.TD=p.TB,Gt.info("abc88",f,a,i),p[f][a][i]},xjt=(i,a,f)=>{if(Gt.info("getNextPort abc88",{node:i,edgeDirection:a,graphDirection:f}),!sv[i])switch(f){case"TB":case"TD":sv[i]={inPosition:"north",outPosition:"south"};break;case"BT":sv[i]={inPosition:"south",outPosition:"north"};break;case"RL":sv[i]={inPosition:"east",outPosition:"west"};break;case"LR":sv[i]={inPosition:"west",outPosition:"east"};break}const p=a==="in"?sv[i].inPosition:sv[i].outPosition;return a==="in"?sv[i].inPosition=yjt(sv[i].inPosition,a,f):sv[i].outPosition=yjt(sv[i].outPosition,a,f),p},lUe=(i,a)=>{let f=i.start,p=i.end;const v=f,m=p,b=j5[f],E=j5[p];return!b||!E?{source:f,target:p}:(b.type==="diamond"&&(f= ` $ { f } - $ { xjt ( f , "out" , a ) } ` ),E.type==="diamond"&&(p= ` $ { p } - $ { xjt ( p , "in" , a ) } ` ),{source:f,target:p,sourceId:v,targetId:m})},hUe=function(i,a,f,p){Gt.info("abc78 edges = ",i);const v=p.insert("g").attr("class","edgeLabels");let m={},b=a.db.getDirection(),E,C;if(i.defaultStyle!==void 0){const A=tm(i.defaultStyle);E=A.style,C=A.labelStyle}return i.forEach(function(A){const P="L-"+A.start+"-"+A.end;m[P]===void 0?(m
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),A.style===void 0&&(H.style=H.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),H.labelStyle=H.labelStyle.replace("color:","fill:"),H.id=F,H.classes="flowchart-link "+j+" "+R;const J=ABt(v,H),{source:it,target:ht,sourceId:Tt,targetId:xt}=lUe(A,b);Gt.debug("abc78 source and target",it,ht),f.edges.push({id:"e"+A.start+A.end,sources:[it],targets:[ht],sourceId:Tt,targetId:xt,labelEl:J,labels:[{width:H.width,height:H.height,orgWidth:H.width,orgHeight:H.height,text:H.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:H})}),f},fUe=function(i,a,f,p){let v="";switch(p&&(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,v=v.replace(/ \( /g," \\ ("),v=v.replace(/ \) /g," \\ )")),a.arrowTypeStart){case"arrow_cross":i.attr("marker-start","url("+v+"#"+f+"-crossStart)");break;case"arrow_point":i.attr("marker-start","url("+v+"#"+f+"-pointStart)");break;case"arrow_barb":i.attr("marker-start","url("+v+"#"+f+"-barbStart)");break;case"arrow_circle":i.attr("marker-start","url("+v+"#"+f+"-circleStart)");break;case"aggregation":i.attr("marker-start","url("+v+"#"+f+"-aggregationStart)");break;case"extension":i.attr("marker-start","url("+v+"#"+f+"-extensionStart)");break;case"composition":i.attr("marker-start","url("+v+"#"+f+"-compositionStart)");break;case"dependency":i.attr("marker-start","url("+v+"#"+f+"-dependencyStart)");break;case"lollipop":i.attr("marker-start","url("+v+"#"+f+"-lollipopStart)");break}switch(a.arrowTypeEnd){case"arrow_cross":i.attr("marker-end","url("+v+"#"+f+"-crossEnd)");break;case"arrow_point":i.attr("marker-end","url("+v+"#"+f+"-pointEnd)");break;case"arrow_barb":i.attr("marker-end","url("+v+"#"+f+"-barbEnd)");break;case"arrow_circle":i.attr("marker-end","url("+v+"#"+f+"-circleEnd)");break;case"aggregation":i.attr("marker-end","url("+v+"#"+f+"-aggregationEnd)");break;case"extension":i.attr("marker-end","url("+v+"#"+f+"-extensionEnd)");break;case"composition":i.attr("marker-end","url("+v+"#"+f+"-compositionEnd)");break;case"dependency":i.attr("marker-end","url("+v+"#"+f+"-dependencyEnd)");break;case"lollipop":i.attr("marker-end","url("+v+"#"+f+"-lollipopEnd)");break}},dUe=function(i,a){return Gt.info("Extracting classes"),a.db.getClasses()},gUe=function(i){const a={parentById:{},childrenById:{}},f=i.getSubGraphs();return Gt.info("Subgraphs - ",f),f.forEach(function(p){p.nodes.forEach(function(v){a.parentById[v]=p.id,a.childrenById[p.id]===void 0&&(a.childrenById[p.id]=[]),a.childrenById[p.id].push(v)})}),f.forEach(function(p){p.id,a.parentById[p.id]!==void 0&&a.parentById[p.id]}),a},pUe=function(i,a,f){const p=sUe(i,a,f);if(p===void 0||p==="root")return{x:0,y:0};const v=j5[p].offset;return{x:v.posX,y:v.posY}},bUe=function(i,a,f,p,v){const m=pUe(a.sourceId,a.targetId,v),b=a.sections[0].startPoint,E=a.sections[0].endPoint,A=(a.sections[0].bendPoints?a.sections[0].bendPoints:[]).map(rt=>[rt.x+m.x,rt.y+m.y]),P=[[b.x+m.x,b.y+m.y],...A,[E.x+m.x,E.y+m.y]],F=QE().curve(rg),j=i.insert("path").attr("d",F(P)).attr("class","path "+f.classes).attr("fill","none"),R=i.insert("g").attr("class","edgeLabel"),H=fr(R.node().appendChild(a.labelEl)),Y=H.node().firstChild.getBoundingClientRect();H.attr("width",Y.width),H.attr("height",Y.height),R.attr("transform", ` translate ( $ { a . labels [ 0 ] . x + m . x } ,  $ { a . labels [ 0 ] . y + m . y } ) ` ),fUe(j,f,p.type,p.arrowMarkerAbsolute)},kjt=(i,a)=>{i.forEach(f=>{f.children||(f.children=[]);const p=a.childrenById[f.id];p&&p.forEach(v=>{f.children.push(j5[v])}),kjt(f.children,a)})},vUe=async function(i,a,f,p){var ct;j5={},sv={};const v=fr("body").append("div").attr("style","height:400px").attr("id","cy");let m={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Gt.info("Drawing flowchart using v3 renderer",mjt),p.db.getDirection()){case"BT":m.layoutOptions["elk.direction"]="UP";break;case"TB":m.layoutOptions["elk.direction"]="DOWN";break;case"LR":
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      . subgraph - lvl - $ { f }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        fill :  $ { i [ ` surface ${ f } ` ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        stroke :  $ { i [ ` surfacePeer ${ f } ` ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    ` ;return a},yUe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:VMe,renderer:wUe,parser:Ddt,styles:i=> ` . label  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster - label  span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . label  text , span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . nodeTextColor || i . textColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . node  rect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  circle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  ellipse , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  polygon , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . mainBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . nodeBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node  . label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . node . clickable  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    cursor :  pointer ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . arrowheadPath  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . arrowheadColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edgePath  . path  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  2.0 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - link  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . lineColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edgeLabel  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      opacity :  0.85 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      background - color :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i . edgeLabelBackground } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  rect  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . clusterBkg } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke :  $ { i . clusterBorder } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  1 px ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . cluster  span  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  / *   . c l u s t e r   d i v   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    color :  $ { i . titleColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  }  * / 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  div . mermaidTooltip  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    position :  absolute ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    max - width :  200 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    padding :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - family :  $ { i . fontFamily } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  12 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    background :  $ { i . tertiaryColor } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border :  1 px  solid  $ { i . border2 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    border - radius :  2 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    pointer - events :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    z - index :  100 ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchartTitleText  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    font - size :  18 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . textColor } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . subgraph  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width : 2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    rx : 3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // .subgraph-lvl-1 {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   fill:#ccc;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  //   // stroke:black;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  // }
 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . flowchart - label  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  $ { mUe ( i ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var Bgt=function(){var i=function(rt,J,it,ht){for(it=it||{},ht=rt.length;ht--;it[rt[ht]]=J);return it},a=[1,2],f=[1,5],p=[6,9,11,17,18,20,22,23,26,27,28],v=[1,15],m=[1,16],b=[1,17],E=[1,18],C=[1,19],A=[1,23],P=[1,24],F=[1,27],j=[4,6,9,11,17,18,20,22,23,26,27,28],R={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31, $ accept:0, $ end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(J,it,ht,Tt,xt,pt,ct){var yt=pt.length-1;switch(xt){case 1:return pt[yt-1];case 3:this. $ =[];break;case 4:pt[yt-1].push(pt[yt]),this. $ =pt[yt-1];break;case 5:case 6:this. $ =pt[yt];break;case 7:case 8:this. $ =[];break;case 11:Tt.getCommonDb().setDiagramTitle(pt[yt].substr(6)),this. $ =pt[yt].substr(6);break;case 12:this. $ =pt[yt].trim(),Tt.getCommonDb().setAccTitle(this. $ );break;case 13:case 14:this. $ =pt[yt].trim(),Tt.getCommonDb().setAccDescription(this. $ );break;case 15:Tt.addSection(pt[yt].substr(8)),this. $ =pt[yt].substr(8);break;case 19:Tt.addTask(pt[yt],0,""),this. $ =pt[yt];break;case 20:Tt.addEvent(pt[yt].substr(2)),this. $ =pt[yt];break;case 21:Tt.parseDirective("%%{","open_directive");break;case 22:Tt.parseDirective(pt[yt],"type_directive");break;case 23:pt[yt]=pt[yt].trim().replace(/'/g,'"'),Tt.parseDirective(pt[yt],"arg_directive");break;case 24:Tt.parseDirective("}%%","close_directive","timeline");break}},table:[{3:1,4:a,7:3,12:4,28:f},{1:[3]},i(p,[2,3],{5:6}),{3:7,4:a,7:3,12:4,28:f},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:v,18:m,20:b,22:E,23:C,24:20,25:21,26:A,27:P,28:f},{1:[2,2]},{14:25,15:[1,26],31:F},i([15,31],[2,22]),i(p,[2,8],{1:[2,1]}),i(p,[2,4]),{7:22,10:28,12:4,17:v,18:m,20:b,22:E,23:C,24:20,25:21,26:A,27:P,28:f},i(p,[2,6]),i(p,[2,7]),i(p,[2,11]),{19:[1,29]},{21:[1,30]},i(p,[2,14]),i(p,[2,15]),i(p,[2,16]),i(p,[2,17]),i(p,[2,18]),i(p,[2,19]),i(p,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},i(p,[2,5]),i(p,[2,12]),i(p,[2,13]),i(j,[2,9]),{14:34,31:F},{31:[2,23]},{11:[1,35]},i(j,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(J,it){if(it.recoverable)this.trace(J);else{var ht=new Error(J);throw ht.hash=it,ht}},parse:function(J){var it=this,ht=[0],Tt=[],xt=[null],pt=[],ct=this.table,yt="",st=0,Et=0,dt=2,bt=1,Ct=pt.slice.call(arguments,1),tt=Object.create(this.lexer),Pt={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(Pt.yy[gt]=this.yy[gt]);tt.setInput(J,Pt.yy),Pt.yy.lexer=tt,Pt.yy.parser=this,typeof tt.yylloc>"u"&&(tt.yylloc={});var Ft=tt.yylloc;pt.push(Ft);var X=tt.options&&tt.options.ranges;typeof Pt.yy.parseError=="function"?this.parseError=Pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Rt(){var ke;return ke=Tt.pop()||tt.lex()||bt,typeof ke!="number"&&(ke instanceof Array&&(Tt=ke,ke=Tt.pop()),ke=it.symbols_[ke]||ke),ke}for(var Bt,wt,Ot,Vt,qe={},_n,Te,Wn,Ae;;){if(wt=ht[ht.length-1],this.defaultActions[wt]?Ot=this.defaultActions[wt]:((Bt===null||typeof Bt>"u")&&(Bt=Rt()),Ot=ct[wt]&&ct[wt][Bt]),typeof Ot>"u"||!Ot.length||!Ot[0]){var ne="";Ae=[];for(_n in ct[wt])this.terminals_[_n]&&_n>dt&&Ae.push("'"+this.terminals_[_n]+"'");tt.showPosition?ne="Parse error on line "+(st+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +tt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ae.join(", ")+", got '"+(this.terminals_[Bt]||Bt)+"'":ne="Parse error on line "+(st+1)+": Unexpected "+(Bt==bt?"end of input":"'"+(this.terminals_[Bt]||Bt)+"'"),this.parseError(ne,{text:tt.match,token:this.terminals_[Bt]||Bt,line:tt.yylineno,loc:Ft,expected:Ae})}if(Ot[0]instanceof Array&&Ot.length>1)throw new Error("Parse Error: multiple actions possible at state: "+wt+", token: "+Bt);switch(Ot[0]){case 1:ht.push(Bt),xt.push(tt.yytext),pt.push(tt.yylloc),ht.push(Ot[1]),Bt=null,Et=tt.yyleng,yt=tt.yytext,st=tt.yylineno,Ft=tt.yylloc;break;case 2:if(Te=this.productions_[Ot[1]][1],qe. $ =xt[xt.length-Te],qe._ $ ={first_line:pt[pt.length-(Te||1)].first_line,last_line:pt[pt.length-1].last_line,first_column:pt[pt.length-(Te||1)].first_column,last_column:pt[pt.length-1].last_column},X&&(qe._ $ .range=[pt[pt.length-(Te||1)].range[0],pt[pt.length-1].range[1]]),Vt=this.performAction.apply(qe,[yt,Et,st,Pt.yy,Ot[1],xt,pt].concat(Ct)),typeof Vt<"u")return Vt;Te&&(ht=ht.slice(0,-1*Te*2),xt=xt.slice(0,-1*Te),pt=pt.slice(0,-1*Te)),ht.push(this.productions_[Ot[1]][0]),xt.push(qe. $ ),pt.push(qe._ $ ),Wn=ct[ht[ht.length-2]][ht[ht.length-1]],ht.push(Wn);break;case 3:return!0}}return!0}},H=function(){var rt={EOF:1,parseError:function(it,ht){if(this.yy.parser)this.yy.parser.parseError(it,ht);else throw new Error(it)},setInput:function(J,it){return this.yy=it||this.yy||{},this._input=J,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var J=this._input[0];this.yytext+=J,this.yyleng++,this.offset++,this.match+=J,this.matched+=J;var it=J.match(/(?: \r \n ?| \n ).*/g);return it?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),J},unput:function(J){var it=J.length,ht=J.split(/(?: \r \n ?| \n )/g);this._input=J+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-it),this.offset-=it;var Tt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ht.length-1&&(this.yylineno-=ht.length-1);var xt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ht?(ht.length===Tt.length?this.yylloc.first_column:0)+Tt[Tt.length-ht.length].length-ht[0].length:this.yylloc.first_column-it},this.options.ranges&&(this.yylloc.range=[xt[0],xt[0]+this.yyleng-it]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(J){this.unput(this.match.slice(J))},pastInput:function(){var J=this.matched.substr(0,this.matched.length-this.match.length);return(J.length>20?"...":"")+J.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var J=this.match;return J.length<20&&(J+=this._input.substr(0,20-J.length)),(J.substr(0,20)+(J.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var J=this.pastInput(),it=new Array(J.length+1).join("-");return J+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +it+"^"},test_match:function(J,it){var ht,Tt,xt;if(this.options.backtrack_lexer&&(xt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(xt.yylloc.range=this.yylloc.range.slice(0))),Tt=J[0].match(/(?: \r \n ?| \n ).*/g),Tt&&(this.yylineno+=Tt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Tt?Tt[Tt.length-1].length-Tt[Tt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+J[0].length},this.yytext+=J[0],this.match+=J[0],this.matches=J,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(J[0].length),this.matched+=J[0],ht=this.performAction.call(this,this.yy,this,it,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ht)return ht;if(this._backtrack){for(var pt in xt)this[pt]=xt[pt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var J,it,ht,Tt;this._more||(this.yytext="",this.match="");for(var xt=this._currentRules(),pt=0;pt<xt.length;pt++)if(ht=this._input.match(this.rules[xt[pt]]),ht&&(!it||ht[0].length>it[0].length)){if(it=ht,Tt=pt,this.options.backtrack_lexer){if(J=this.test_match(ht,xt[pt]),J!==!1)return J;if(this._backtrack){it=!1;continue}else return!1}else if(!this.options.flex)break}return it?(J=this.test_match(it,xt[Tt]),J!==!1?J:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var it=this.next();return it||this.lex()},begin:function(it){this.conditionStack.push(it)},popState:function(){var it=this.conditionStack.length-1;return it>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(it){return it=this.conditionStack.length-1-Math.abs(it||0),it>=0?this.conditionStack[it]:"INITIAL"},pushState:function(it){this.begin(it)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(it,ht,Tt,xt){switch(Tt){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:break;case 6:break;case 7:return 11;case 8:break;case 9:break;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%% \{ )/i,/^(?:((?:(?! \} %%)[^:.])*))/i,/^(?::)/i,/^(?: \} %%)/i,/^(?:((?:(?! \} %%).| \n )*))/i,/^(?:%(?! \{ )[^ \n ]*)/i,/^(?:[^ \} ]%%[^ \n ]*)/i,/^(?:[ \n ]+)/i,/^(?: \s +)/i,/^(?:#[^ \n ]*)/i,/^(?:timeline \b )/i,/^(?:title \s [^# \n ;]+)/i,/^(?:accTitle \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s *: \s *)/i,/^(?:(?! \n ||)*[^ \n ]*)/i,/^(?:accDescr \s * \{ \s *)/i,/^(?:[ \} ])/i,/^(?:[^ \} ]*)/i,/^(?:section \s [^#: \n ;]+)/i,/^(?:: \s [^#: \n ;]+)/i,/^(?:[^#: \n ;]+)/i,/^(?: $ )/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};return rt}();R.lexer=H;function Y(){this.yy={}}return Y.prototype=R,R.Parser=Y,new Y}();Bgt.parser=Bgt;const xUe=Bgt;let mL="",Tjt=0;const Rgt=[],GK=[],yL=[],_jt=()=>DIt,Cjt=(i,a,f)=>{ndt(globalThis,i,a,f)},Sjt=function(){Rgt.length=0,GK.length=0,mL="",yL.length=0,ug()},Ajt=function(i){mL=i,Rgt.push(i)},Ljt=function(){return Rgt},Mjt=function(){let i=Njt();const a=100;let f=0;for(;!i&&f<a;)i=Njt(),f++;return GK.push(...yL),GK},Djt=function(i,a,f){const p={id:Tjt++,section:mL,type:mL,task:i,score:a||0,events:f?[f]:[]};yL.push(p)},Ijt=function(i){yL.find(f=>f.id===Tjt-1).events.push(i)},Ojt=function(i){const a={section:mL,type:mL,description:i,task:i,classes:[]};GK.push(a)},Njt=function(){const i=function(f){return yL[f].processed};let a=!0;for(const[f,p]of yL.entries())i(f),a=a&&p.processed;return a},kUe=Object.freeze(Object.defineProperty({__proto__:null,addEvent:Ijt,addSection:Ajt,addTask:Djt,addTaskOrg:Ojt,clear:Sjt,default:{clear:Sjt,getCommonDb:_jt,addSection:Ajt,getSections:Ljt,getTasks:Mjt,addTask:Djt,addTaskOrg:Ojt,addEvent:Ijt,parseDirective:Cjt},getCommonDb:_jt,getSections:Ljt,getTasks:Mjt,parseDirective:Cjt},Symbol.toStringTag,{value:"Module"})),EUe=12,UK=function(i,a){const f=i.append("rect");return f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),f.attr("rx",a.rx),f.attr("ry",a.ry),a.class!==void 0&&f.attr("class",a.class),f},TUe=function(i,a){const p=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),v=i.append("g");v.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),v.append("circle").a
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  rect ,  . section - $ { f - 1 }  path ,  . section - $ { f - 1 }  circle ,  . section - $ { f - 1 }  path   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								     fill :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . node - icon - $ { f - 1 }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      font - size :  40 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      color :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - edge - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . edge - depth - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  $ { p } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  line  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleInv" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . lineWrapper  line { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleLabel" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled ,  . disabled  circle ,  . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  lightgray ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  # efefef ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    ` }return a},jUe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:kUe,renderer:BUe,parser:xUe,styles:i=> ` 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  $ { RUe ( i ) } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  rect ,  . section - root  path ,  . section - root  circle   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . git0 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . gitBranchLabel0 } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . icon - container  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    height : 100 % ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    display :  flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    justify - content :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    align - items :  center ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-12-15 20:37:59 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . eventWrapper   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								   filter :  brightness ( 120 % ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var  $ gt=function(){var i=function(Tt,xt,pt,ct){for(pt=pt||{},ct=Tt.length;ct--;pt[Tt[ct]]=xt);return pt},a=[1,4],f=[1,13],p=[1,12],v=[1,15],m=[1,16],b=[1,20],E=[1,19],C=[6,7,8],A=[1,26],P=[1,24],F=[1,25],j=[6,7,11],R=[1,6,13,15,16,19,22],H=[1,33],Y=[1,34],rt=[1,6,7,11,13,15,16,19,22],J={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22, $ accept:0, $ end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(xt,pt,ct,yt,st,Et,dt){var bt=Et.length-1;switch(st){case 6:case 7:return yt;case 8:yt.getLogger().trace("Stop NL ");break;case 9:yt.getLogger().trace("Stop EOF ");break;case 11:yt.getLogger().trace("Stop NL2 ");break;case 12:yt.getLogger().trace("Stop EOF2 ");break;case 15:yt.getLogger().info("Node: ",Et[bt].id),yt.addNode(Et[bt-1].length,Et[bt].id,Et[bt].descr,Et[bt].type);break;case 16:yt.getLogger().trace("Icon: ",Et[bt]),yt.decorateNode({icon:Et[bt]});break;case 17:case 21:yt.decorateNode({class:Et[bt]});break;case 18:yt.getLogger().trace("SPACELIST");break;case 19:yt.getLogger().trace("Node: ",Et[bt].id),yt.addNode(0,Et[bt].id,Et[bt].descr,Et[bt].type);break;case 20:yt.decorateNode({icon:Et[bt]});break;case 25:yt.getLogger().trace("node found ..",Et[bt-2]),this. $ ={id:Et[bt-1],descr:Et[bt-1],type:yt.getType(Et[bt-2],Et[bt])};break;case 26:this. $ ={id:Et[bt],descr:Et[bt],type:yt.nodeType.DEFAULT};break;case 27:yt.getLogger().trace("node found ..",Et[bt-3]),this. $ ={id:Et[bt-3],descr:Et[bt-1],type:yt.getType(Et[bt-2],Et[bt])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:a},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:a},{6:f,7:[1,10],9:9,12:11,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},i(C,[2,3]),{1:[2,2]},i(C,[2,4]),i(C,[2,5]),{1:[2,6],6:f,12:21,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},{6:f,9:22,12:11,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},{6:A,7:P,10:23,11:F},i(j,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:b,22:E}),i(j,[2,18]),i(j,[2,19]),i(j,[2,20]),i(j,[2,21]),i(j,[2,23]),i(j,[2,24]),i(j,[2,26],{19:[1,30]}),{20:[1,31]},{6:A,7:P,10:32,11:F},{1:[2,7],6:f,12:21,13:p,14:14,15:v,16:m,17:17,18:18,19:b,22:E},i(R,[2,14],{7:H,11:Y}),i(rt,[2,8]),i(rt,[2,9]),i(rt,[2,10]),i(j,[2,15]),i(j,[2,16]),i(j,[2,17]),{20:[1,35]},{21:[1,36]},i(R,[2,13],{7:H,11:Y}),i(rt,[2,11]),i(rt,[2,12]),{21:[1,37]},i(j,[2,25]),i(j,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(xt,pt){if(pt.recoverable)this.trace(xt);else{var ct=new Error(xt);throw ct.hash=pt,ct}},parse:function(xt){var pt=this,ct=[0],yt=[],st=[null],Et=[],dt=this.table,bt="",Ct=0,tt=0,Pt=2,gt=1,Ft=Et.slice.call(arguments,1),X=Object.create(this.lexer),Rt={yy:{}};for(var Bt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Bt)&&(Rt.yy[Bt]=this.yy[Bt]);X.setInput(xt,Rt.yy),Rt.yy.lexer=X,Rt.yy.parser=this,typeof X.yylloc>"u"&&(X.yylloc={});var wt=X.yylloc;Et.push(wt);var Ot=X.options&&X.options.ranges;typeof Rt.yy.parseError=="function"?this.parseError=Rt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vt(){var Ce;return Ce=yt.pop()||X.lex()||gt,typeof Ce!="number"&&(Ce instanceof Array&&(yt=Ce,Ce=yt.pop()),Ce=pt.symbols_[Ce]||Ce),Ce}for(var qe,_n,Te,Wn,Ae={},ne,ke,Ve,Ee;;){if(_n=ct[ct.length-1],this.defaultActions[_n]?Te=this.defaultActions[_n]:((qe===null||typeof qe>"u")&&(qe=Vt()),Te=dt[_n]&&dt[_n][qe]),typeof Te>"u"||!Te.length||!Te[0]){var He="";Ee=[];for(ne in dt[_n])this.terminals_[ne]&&ne>Pt&&Ee.push("'"+this.terminals_[ne]+"'");X.showPosition?He="Parse error on line "+(Ct+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +X.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Ee.join(", ")+", got '"+(this.terminals_[qe]||qe)+"'":He="Parse error on line "+(Ct+1)+": Unexpected "+(qe==gt?"end of input":"'"+(this.terminals_[qe]||qe)+"'"),this.parseError(He,{text:X.match,token:this.terminals_[qe]||qe,line:X.yylineno,loc:wt,expected:Ee})}if(Te[0]instanceof Array&&Te.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_n+", token: "+qe);switch(Te[0]){case 1:ct.push(qe),st.push(X.yytext),Et.push(X.yylloc),ct.push(Te[1]),qe=null,tt=X.yyleng,bt=X.yytext,Ct=X.yylineno,wt=X.yylloc;break;case 2:if(ke=this.productions_[Te[1]][1],Ae. $ =st[st.length-ke],Ae._ $ ={first_line:Et[Et.length-(ke||1)].first_line,last_line:Et[Et.length-1].last_line,first_column:Et[Et.length-(ke||1)].first_column,last_column:Et[Et.length-1].last_column},Ot&&(Ae._ $ .range=[Et[Et.length-(ke||1)].range[0],Et[Et.length-1].range[1]]),Wn=this.performAction.apply(Ae,[bt,tt,Ct,Rt.yy,Te[1],st,Et].concat(Ft)),typeof Wn<"u")return Wn;ke&&(ct=ct.slice(0,-1*ke*2),st=st.slice(0,-1*ke),Et=Et.slice(0,-1*ke)),ct.push(this.productions_[Te[1]][0]),st.push(Ae. $ ),Et.push(Ae._ $ ),Ve=dt[ct[ct.length-2]][ct[ct.length-1]],ct.push(Ve);break;case 3:return!0}}return!0}},it=function(){var Tt={EOF:1,parseError:function(pt,ct){if(this.yy.parser)this.yy.parser.parseError(pt,ct);else throw new Error(pt)},setInput:function(xt,pt){return this.yy=pt||this.yy||{},this._input=xt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var xt=this._input[0];this.yytext+=xt,this.yyleng++,this.offset++,this.match+=xt,this.matched+=xt;var pt=xt.match(/(?: \r \n ?| \n ).*/g);return pt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xt},unput:function(xt){var pt=xt.length,ct=xt.split(/(?: \r \n ?| \n )/g);this._input=xt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-pt),this.offset-=pt;var yt=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ct.length-1&&(this.yylineno-=ct.length-1);var st=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ct?(ct.length===yt.length?this.yylloc.first_column:0)+yt[yt.length-ct.length].length-ct[0].length:this.yylloc.first_column-pt},this.options.ranges&&(this.yylloc.range=[st[0],st[0]+this.yyleng-pt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(xt){this.unput(this.match.slice(xt))},pastInput:function(){var xt=this.matched.substr(0,this.matched.length-this.match.length);return(xt.length>20?"...":"")+xt.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var xt=this.match;return xt.length<20&&(xt+=this._input.substr(0,20-xt.length)),(xt.substr(0,20)+(xt.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var xt=this.pastInput(),pt=new Array(xt.length+1).join("-");return xt+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +pt+"^"},test_match:function(xt,pt){var ct,yt,st;if(this.options.backtrack_lexer&&(st={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(st.yylloc.range=this.yylloc.range.slice(0))),yt=xt[0].match(/(?: \r \n ?| \n ).*/g),yt&&(this.yylineno+=yt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:yt?yt[yt.length-1].length-yt[yt.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+xt[0].length},this.yytext+=xt[0],this.match+=xt[0],this.matches=xt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xt[0].length),this.matched+=xt[0],ct=this.performAction.call(this,this.yy,this,pt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ct)return ct;if(this._backtrack){for(var Et in st)this[Et]=st[Et];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xt,pt,ct,yt;this._more||(this.yytext="",this.match="");for(var st=this._currentRules(),Et=0;Et<st.length;Et++)if(ct=this._input.match(this.rules[st[Et]]),ct&&(!pt||ct[0].length>pt[0].length)){if(pt=ct,yt=Et,this.options.backtrack_lexer){if(xt=this.test_match(ct,st[Et]),xt!==!1)return xt;if(this._backtrack){pt=!1;continue}else return!1}else if(!this.options.flex)break}return pt?(xt=this.test_match(pt,st[yt]),xt!==!1?xt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var pt=this.next();return pt||this.lex()},begin:function(pt){this.conditionStack.push(pt)},popState:function(){var pt=this.conditionStack.length-1;return pt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(pt){return pt=this.conditionStack.length-1-Math.abs(pt||0),pt>=0?this.conditionStack[pt]:"INITIAL"},pushState:function(pt){this.begin(pt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(pt,ct,yt,st){switch(yt){case 0:return pt.getLogger().trace("Found comment",ct.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:pt.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return pt.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:pt.getLogger().trace("end icon"),this.popState();break;case 10:return pt.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return pt.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return pt.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return pt.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:pt.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return pt.getLogger().trace("description:",ct.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),pt.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),pt.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),pt.getLogger().trace("node end ...",ct.yytext),"NODE_DEND";case 30:return this.popState(),pt.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),pt.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),pt.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),pt.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),pt.getLogger().trace("node end (("),"NODE_DEND";case 35:return pt.getLogger().trace("Long description:",ct.yytext),20;case 36:return pt.getLogger().trace("Long description:",ct.yytext),20}},rules:[/^(?: \s *%%.*)/i,/^(?:mindmap \b )/i,/^(?::::)/i,/^(?:.+)/i,/^(?: \n )/i,/^(?:::icon \( )/i,/^(?:[ \s ]+[ \n ])/i,/^(?:[ \n ]+)/i,/^(?:[^ \) ]+)/i,/^(?: \) )/i,/^(?:- \) )/i,/^(?: \( -)/i,/^(?: \) \) )/i,/^(?: \) )/i,/^(?: \( \( )/i,/^(?: \{ \{ )/i,/^(?: \( )/i,/^(?: \[ )/i,/^(?:[ \s ]+)/i,/^(?:[^ \( \[ \n \) \{ \} ]+)/i,/^(?: $ )/i,/^(?:["][ ` ] ) / i , /^(?:[^`"]+)/i , /^(?:[`]["])/i , /^(?:["])/i , /^(?:[^"]+)/i , /^(?:["])/i , /^(?:[\)]\))/i , /^(?:[\)])/i , /^(?:[\]])/i , /^(?:\}\})/i , /^(?:\(-)/i , /^(?:-\))/i , /^(?:\(\()/i , /^(?:\()/i , /^(?:[^\)\]\(\}]+)/i , /^(?:.+(?!\(\())/i ] , conditions : { CLASS : { rules : [ 3 , 4 ] , inclusive : ! 1 } , ICON : { rules : [ 8 , 9 ] , inclusive : ! 1 } , NSTR2 : { rules : [ 22 , 23 ] , inclusive : ! 1 } , NSTR : { rules : [ 25 , 26 ] , inclusive : ! 1 } , NODE : { rules : [ 21 , 24 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 ] , inclusive : ! 1 } , INITIAL : { rules : [ 0 , 1 , 2 , 5 , 6 , 7 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 ] , inclusive : ! 0 } } } ; return  Tt } ( ) ; J . lexer = it ; function  ht ( ) { this . yy = { } } return  ht . prototype = J , J . Parser = ht , new  ht } ( ) ; $gt . parser = $gt ; const  $Ue = $gt , YP = i => sg ( i , Me ( ) ) ; let  av = [ ] , $jt = 0 , zgt = { } ; const  zUe = ( ) => { av = [ ] , $jt = 0 , zgt = { } } , qUe = function ( i ) { for ( let  a = av . length - 1 ; a >= 0 ; a -- ) if ( av [ a ] . level < i ) return  av [ a ] ; return  null } , HUe = ( ) => av . length > 0 ? av [ 0 ] : null , VUe = ( i , a , f , p ) => { Gt . info ( "addNode" , i , a , f , p ) ; const  v = Me ( ) , m = { id : $jt ++ , nodeId : YP ( a ) , level : i , descr : YP ( f ) , type : p , children : [ ] , width : Me ( ) . mindmap . maxNodeWidth } ; switch ( m . type ) { case  Zu . ROUNDED _RECT : m . padding = 2 * v . mindmap . padding ; break ; case  Zu . RECT :  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { b } , $ { b }  1  0 , 1  $ { f * . 4 } , $ { - 1 * f * . 1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { m } , $ { m }  1  0 , 1  $ { f * . 35 } , $ { 1 * f * . 2 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { f * . 15 } , $ { 1 * p * . 35 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { E } , $ { E }  1  0 , 1  $ { - 1 * f * . 15 } , $ { 1 * p * . 65 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { m } , $ { v }  1  0 , 1  $ { - 1 * f * . 25 } , $ { f * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { b } , $ { b }  1  0 , 1  $ { - 1 * f * . 5 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { - 1 * f * . 25 } , $ { - 1 * f * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 1  $ { - 1 * f * . 1 } , $ { - 1 * p * . 35 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { E } , $ { E }  1  0 , 1  $ { f * . 1 } , $ { - 1 * p * . 65 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    H0  V0  Z ` )},tWe=function(i,a){const f=a.width,p=a.height,v=.15*f;i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+S9(a.type)).attr("d", ` M0  0  a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , $ { - 1 * p * . 1 } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 25 } , $ { 1 * p * . 1 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 15 } , $ { 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v * . 8 } , $ { v * . 8 }  1  0 , 0  0 , $ { 1 * p * . 34 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 15 } , $ { 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , $ { p * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 25 } , $ { - 1 * p * . 15 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { - 1 * f * . 1 } , $ { - 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v * . 8 } , $ { v * . 8 }  1  0 , 0  0 , $ { - 1 * p * . 34 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      a$ { v } , $ { v }  1  0 , 0  $ { f * . 1 } , $ { - 1 * p * . 33 } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    H0  V0  Z ` )},eWe=function(i,a){i.append("circle").attr("id","node-"+a.id).attr("class","node-bkg node-"+S9(a.type)).attr("r",a.width/2)};function nWe(i,a,f,p,v){return i.insert("polygon",":first-child").attr("points",p.map(function(m){return m.x+","+m.y}).join(" ")).attr("transform","translate("+(v.width-a)/2+", "+f+")")}const rWe=function(i,a){const f=a.height,v=f/4,m=a.width-a.padding+2*v,b=[{x:v,y:0},{x:m-v,y:0},{x:m,y:-f/2},{x:m-v,y:-f},{x:v,y:-f},{x:0,y:-f/2}];nWe(i,m,f,b,a)},iWe=function(i,a){i.append("rect").attr("id","node-"+a.id).attr("class","node-bkg node-"+S9(a.type)).attr("height",a.height).attr("rx",a.padding).attr("ry",a.padding).attr("width",a.width)},Vjt={drawNode:function(i,a,f,p){const v=p.htmlLabels,m=f%(Hjt-1),b=i.append("g");a.section=m;let E="section-"+m;m<0&&(E+=" section-root"),b.attr("class",(a.class?a.class+" ":"")+"mindmap-node "+E);const C=b.append("g"),A=b.append("g"),P=a.descr.replace(/(<br \/ *>)/g, ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` );vK(A,P,{useHtmlLabels:v,width:a.width,classes:"mindmap-node-label"}),v||A.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const F=A.node().getBBox(),j=p.fontSize.replace?p.fontSize.replace("px",""):p.fontSize;if(a.height=F.height+j*1.1*.5+a.padding,a.width=F.width+2*a.padding,a.icon)if(a.type===Zu.CIRCLE)a.height+=50,a.width+=50,b.append("foreignObject").attr("height","50px").attr("width",a.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),A.attr("transform","translate("+a.width/2+", "+(a.height/2-1.5*a.padding)+")");else{a.width+=50;const R=a.height;a.height=Math.max(R,60);const H=Math.abs(a.height-R);b.append("foreignObject").attr("width","60px").attr("height",a.height).attr("style","text-align: center;margin-top:"+H/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+m+" "+a.icon),A.attr("transform","translate("+(25+a.width/2)+", "+(H/2+a.padding/2)+")")}else if(v){const R=(a.width-F.width)/2,H=(a.height-F.height)/2;A.attr("transform","translate("+R+", "+H+")")}else{const R=a.width/2,H=a.padding/2;A.attr("transform","translate("+R+", "+H+")")}switch(a.type){case Zu.DEFAULT:QUe(C,a,m);break;case Zu.ROUNDED_RECT:iWe(C,a);break;case Zu.RECT:ZUe(C,a);break;case Zu.CIRCLE:C.attr("transform","translate("+a.width/2+", "+ +a.height/2+")"),eWe(C,a);break;case Zu.CLOUD:JUe(C,a);break;case Zu.BANG:tWe(C,a);break;case Zu.HEXAGON:rWe(C,a);break}return zjt(a.id,b),a.height},positionNode:function(i){const a=qgt(i.id),f=i.x||0,p=i.y||0;a.attr("transform","translate("+f+","+p+")")},drawEdge:function(a,f,p,v,m){const b=m%(Hjt-1),E=p.x+p.width/2,C=p.y+p.height/2,A=f.x+f.width/2,P=f.y+f.height/2,F=A>E?E+Math.abs(E-A)/2:E-Math.abs(E-A)/2,j=P>C?C+Math.abs(C-P)/2:C-Math.abs(C-P)/2,R=A>E?Math.abs(E-F)/2+E:-Math.abs(E-F)/2+E,H=P>C?Math.abs(C-j)/2+C:-Math.abs(C-j)/2+C;a.append("path").attr("d",p.direction==="TB"||p.direction==="BT"? ` M$ { E } , $ { C }  Q$ { E } , $ { H }  $ { F } , $ { j }  T$ { A } , $ { P } ` : ` M$ { E } , $ { C }  Q$ { R } , $ { C }  $ { F } , $ { j }  T$ { A } , $ { P } ` ).attr("class","edge section-edge-"+b+" edge-depth-"+v)}};var Gjt={exports:{}};(function(i,a){(function(f,p){i.exports=p()})(d0,function(){function f(y){return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},f(y)}function p(y,g){if(!(y instanceof g))throw new TypeError("Cannot call a class as a function")}function v(y,g){for(var x=0;x<g.length;x++){var T=g[x];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(y,T.key,T)}}function m(y,g,x){return g&&v(y.prototype,g),x&&v(y,x),Object.defineProperty(y,"prototype",{writable:!1}),y}function b(y,g,x){return g in y?Object.defineProperty(y,g,{value:x,enumerable:!0,configurable:!0,writable:!0}):y[g]=x,y}function E(y,g){return C(y)||A(y,g)||P(y,g)||j()}function C(y){if(Array.isArray(y))return y}function A(y,g){var x=y==null?null:typeof Symbol<"u"&&y[Symbol.iterator]||y["@@iterator"];if(x!=null){var T=[],L=!0,I=!1,O, $ ;try{for(x=x.call(y);!(L=(O=x.next()).done)&&(T.push(O.value),!(g&&T.length===g));L=!0);}catch(z){I=!0, $ =z}finally{try{!L&&x.return!=null&&x.return()}finally{if(I)throw  $ }}return T}}function P(y,g){if(y){if(typeof y=="string")return F(y,g);var x=Object.prototype.toString.call(y).slice(8,-1);if(x==="Object"&&y.constructor&&(x=y.constructor.name),x==="Map"||x==="Set")return Array.from(y);if(x==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array $ /.test(x))return F(y,g)}}function F(y,g){(g==null||g>y.length)&&(g=y.length);for(var x=0,T=new Array(g);x<g;x++)T[x]=y[x];return T}function j(){throw new TypeError( ` Invalid  attempt  to  destructure  non - iterable  instance .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								In  order  to  be  iterable ,  non - array  objects  must  have  a  [ Symbol . iterator ] ( )  method . ` )}var R=typeof window>"u"?null:window,H=R?R.navigator:null;R&&R.document;var Y=f(""),rt=f({}),J=f(function(){}),it=typeof HTMLElement>"u"?"undefined":f(HTMLElement),ht=function(g){return g&&g.instanceString&&xt(g.instanceString)?g.instanceString():null},Tt=function(g){return g!=null&&f(g)==Y},xt=function(g){return g!=null&&f(g)===J},pt=function(g){return!bt(g)&&(Array.isArray?Array.isArray(g):g!=null&&g instanceof Array)},ct=function(g){return g!=null&&f(g)===rt&&!pt(g)&&g.constructor===Object},yt=function(g){return g!=null&&f(g)===rt},st=function(g){return g!=null&&f(g)===f(1)&&!isNaN(g)},Et=function(g){return st(g)&&Math.floor(g)===g},dt=function(g){if(it!=="undefined")return g!=null&&g instanceof HTMLElement},bt=function(g){return Ct(g)||tt(g)},Ct=function(g){return ht(g)==="collection"&&g._private.single},tt=function(g){return ht(g)==="collection"&&!g._private.single},Pt=function(g){return ht(g)==="core"},gt=function(g){return ht(g)==="stylesheet"},Ft=function(g){return ht(g)==="event"},X=function(g){return g==null?!0:!!(g===""||g.match(/^ \s + $ /))},Rt=function(g){return typeof HTMLElement>"u"?!1:g instanceof HTMLElement},Bt=function(g){return ct(g)&&st(g.x1)&&st(g.x2)&&st(g.y1)&&st(g.y2)},wt=function(g){return yt(g)&&xt(g.then)},Ot=function(){return H&&H.userAgent.match(/msie|trident|edge/i)},Vt=function(g,x){x||(x=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var I=[],O=0;O<arguments.length;O++)I.push(arguments[O]);return I.join(" $ ")});var T=function L(){var I=this,O=arguments, $ ,z=x.apply(I,O),S=L.cache;return( $ =S[z])||( $ =S[z]=g.apply(I,O)), $ };return T.cache={},T},qe=Vt(function(y){return y.replace(/([A-Z])/g,function(g){return"-"+g.toLowerCase()})}),_n=Vt(function(y){return y.replace(/(- \w )/g,function(g){return g[1].toUpperCase()})}),Te=Vt(function(y,g){return y+g[0].toUpperCase()+g.substring(1)},function(y,g){return y+" $ "+g}),Wn=function(g){return X(g)?g:g.charAt(0).toUpperCase()+g.substring(1)},Ae="(?:[-+]?(?:(?: \\ d+| \\ d* \\ . \\ d+)(?:[Ee][+-]? \\ d+)?))",ne="rgb[a]? \\ (("+Ae+"[%]?) \\ s*, \\ s*("+Ae+"[%]?) \\ s*, \\ s*("+Ae+"[%]?)(?: \\ s*, \\ s*("+Ae+"))? \\ )",ke="rgb[a]? \\ ((?:"+Ae+"[%]?) \\ s*, \\ s*(?:"+Ae+"[%]?) \\ s*, \\ s*(?:"+Ae+"[%]?)(?: \\ s*, \\ s*(?:"+Ae+"))? \\ )",Ve="hsl[a]? \\ (("+Ae+") \\ s*, \\ s*("+Ae+"[%]) \\ s*, \\ s*("+Ae+"[%])(?: \\ s*, \\ s*("+Ae+"))? \\ )",Ee="hsl[a]? \\ ((?:"+Ae+") \\ s*, \\ s*(?:"+Ae+"[%]) \\ s*, \\ s*(?:"+Ae+"[%])(?: \\ s*, \\ s*(?:"+Ae+"))? \\ )",He=" \\ #[0-9a-fA-F]{3}",Ce=" \\ #[0-9a-fA-F]{6}", $ e=function(g,x){return g<x?-1:g>x?1:0},ye=function(g,x){return-1* $ e(g,x)},fn=Object.assign!=null?Object.assign.bind(Object):function(y){for(var g=arguments,x=1;x<g.length;x++){var T=g[x];if(T!=null)for(var L=Object.keys(T),I=0;I<L.length;I++){var O=L[I];y[O]=T[O]}}return y},Yt=function(g){if(!(!(g.length===4||g.length===7)||g[0]!=="#")){var x=g.length===4,T,L,I,O=16;return x?(T=parseInt(g[1]+g[1],O),L=parseInt(g[2]+g[2],O),I=parseInt(g[3]+g[3],O)):(T=parseInt(g[1]+g[2],O),L=parseInt(g[3]+g[4],O),I=parseInt(g[5]+g[6],O)),[T,L,I]}},Mi=function(g){var x,T,L,I,O, $ ,z,S;function V(lt,ft,Lt){return Lt<0&&(Lt+=1),Lt>1&&(Lt-=1),Lt<1/6?lt+(ft-lt)*6*Lt:Lt<1/2?ft:Lt<2/3?lt+(ft-lt)*(2/3-Lt)*6:lt}var U=new RegExp("^"+Ve+" $ ").exec(g);if(U){if(T=parseInt(U[1]),T<0?T=(360- -1*T%360)%360:T>360&&(T=T%360),T/=360,L=parseFloat(U[2]),L<0||L>100||(L=L/100,I=parseFloat(U[3]),I<0||I>100)||(I=I/100,O=U[4],O!==void 0&&(O=parseFloat(O),O<0||O>1)))return;if(L===0) $ =z=S=Math.round(I*255);else{var et=I<.5?I*(1+L):I+L-I*L,at=2*I-et; $ =Math.round(255*V(at,et,T+1/3)),z=Math.round(255*V(at,et,T)),S=Math.round(255*V(at,et,T-1/3))}x=[ $ ,z,S,O]}return x},qt=function(g){var x,T=new RegExp("^"+ne+" $ ").exec(g);if(T){x=[];for(var L=[],I=1;I<=3;I++){var O=T[I];if(O[O.length-1]==="%"&&(L[I]=!0),O=parseFloat(O),L[I]&&(O=O/100*255),O<0||O>255)return;x.push(Math.floor(O))}var  $ =L[1]||L[2]||L[3],z=L[1]&&L[2]&&L[3];if( $ &&!z)return;var S=T[4];if(S!==void 0){if(S=parseFloat(S),S<0||S>1)return;x.push(S)}}return x},zi=function(g){return ki[g.toLowerCase()]},Se=fu
  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Embeddable  Minimum  Strictly - Compliant  Promises / A +  1.1 . 1  Thenable  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Copyright  ( c )  2013 - 2014  Ralf  S .  Engelschall  ( http : //engelschall.com)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Licensed  under  The  MIT  License  ( http : //opensource.org/licenses/MIT)
  
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								* / v a r   C F = 0 , S F = 1 , A F = 2 , h v = f u n c t i o n   y ( g ) { i f ( ! ( t h i s   i n s t a n c e o f   y ) ) r e t u r n   n e w   y ( g ) ; t h i s . i d = " T h e n a b l e / 1 . 0 . 7 " , t h i s . s t a t e = C F , t h i s . f u l f i l l V a l u e = v o i d   0 , t h i s . r e j e c t R e a s o n = v o i d   0 , t h i s . o n F u l f i l l e d = [ ] , t h i s . o n R e j e c t e d = [ ] , t h i s . p r o x y = { t h e n : t h i s . t h e n . b i n d ( t h i s ) } , t y p e o f   g = = " f u n c t i o n " & & g . c a l l ( t h i s , t h i s . f u l f i l l . b i n d ( t h i s ) , t h i s . r e j e c t . b i n d ( t h i s ) ) } ; h v . p r o t o t y p e = { f u l f i l l : f u n c t i o n ( g ) { r e t u r n   L F ( t h i s , S F , " f u l f i l l V a l u e " , g ) } , r e j e c t : f u n c t i o n ( g ) { r e t u r n   L F ( t h i s , A F , " r e j e c t R e a s o n " , g ) } , t h e n : f u n c t i o n ( g , x ) { v a r   T = t h i s , L = n e w   h v ; r e t u r n   T . o n F u l f i l l e d . p u s h ( I F ( g , L , " f u l f i l l " ) ) , T . o n R e j e c t e d . p u s h ( I F ( x , L , " r e j e c t " ) ) , M F ( T ) , L . p r o x y } } ; v a r   L F = f u n c t i o n ( g , x , T , L ) { r e t u r n   g . s t a t e = = = C F & & ( g . s t a t e = x , g [ T ] = L , M F ( g ) ) , g } , M F = f u n c t i o n ( g ) { g . s t a t e = = = S F ? D F ( g , " o n F u l f i l l e d " , g . f u l f i l l V a l u e ) : g . s t a t e = = = A F & & D F ( g , " o n R e j e c t e d " , g . r e j e c t R e a s o n ) } , D F = f u n c t i o n ( g , x , T ) { i f ( g [ x ] . l e n g t h ! = = 0 ) { v a r   L = g [ x ] ; g [ x ] = [ ] ; v a r   I = f u n c t i o n ( ) { f o r ( v a r   $ = 0 ; $ < L . l e n g t h ; $ + + ) L [ $ ] ( T ) } ; t y p e o f   s e t I m m e d i a t e = = " f u n c t i o n " ? s e t I m m e d i a t e ( I ) : s e t T i m e o u t ( I , 0 ) } } , I F = f u n c t i o n ( g , x , T ) { r e t u r n   f u n c t i o n ( L ) { i f ( t y p e o f   g ! = " f u n c t i o n " ) x [ T ] . c a l l ( x , L ) ; e l s e { v a r   I ; t r y { I = g ( L ) } c a t c h ( O ) { x . r e j e c t ( O ) ; r e t u r n } M X ( x , I ) } } } , M X = f u n c t i o n   y ( g , x ) { i f ( g = = = x | | g . p r o x y = = = x ) { g . r e j e c t ( n e w   T y p e E r r o r ( " c a n n o t   r e s o l v e   p r o m i s e   w i t h   i t s e l f " ) ) ; r e t u r n } v a r   T ; i f ( f ( x ) = = = " o b j e c t " & & x ! = = n u l l | | t y p e o f   x = = " f u n c t i o n " ) t r y { T = x . t h e n } c a t c h ( I ) { g . r e j e c t ( I ) ; r e t u r n } i f ( t y p e o f   T = = " f u n c t i o n " ) { v a r   L = ! 1 ; t r y { T . c a l l ( x , f u n c t i o n ( I ) { L | | ( L = ! 0 , I = = = x ? g . r e j e c t ( n e w   T y p e E r r o r ( " c i r c u l a r   t h e n a b l e   c h a i n " ) ) : y ( g , I ) ) } , f u n c t i o n ( I ) { L | | ( L = ! 0 , g . r e j e c t ( I ) ) } ) } c a t c h ( I ) { L | | g . r e j e c t ( I ) } r e t u r n } g . f u l f i l l ( x ) } ; h v . a l l = f u n c t i o n ( y ) { r e t u r n   n e w   h v ( f u n c t i o n ( g , x ) { f o r ( v a r   T = n e w   A r r a y ( y . l e n g t h ) , L = 0 , I = f u n c t i o n ( z , S ) { T [ z ] = S , L + + , L = = = y . l e n g t h & & g ( T ) } , O = 0 ; O < y . l e n g t h ; O + + ) ( f u n c t i o n ( $ ) { v a r   z = y [ $ ] , S = z ! = n u l l & & z . t h e n ! = n u l l ; i f ( S ) z . t h e n ( f u n c t i o n ( U ) { I ( $ , U ) } , f u n c t i o n ( U ) { x ( U ) } ) ; e l s e { v a r   V = z ; I ( $ , V ) } } ) ( O ) } ) } , h v . r e s o l v e = f u n c t i o n ( y ) { r e t u r n   n e w   h v ( f u n c t i o n ( g , x ) { g ( y ) } ) } , h v . r e j e c t = f u n c t i o n ( y ) { r e t u r n   n e w   h v ( f u n c t i o n ( g , x ) { x ( y ) } ) } ; v a r   Y 5 = t y p e o f   P r o m i s e < " u " ? P r o m i s e : h v , V 9 = f u n c t i o n ( g , x , T ) { v a r   L = P t ( g ) , I = ! L , O = t h i s . _ p r i v a t e = f n ( { d u r a t i o n : 1 e 3 } , x , T ) ; i f ( O . t a r g e t = g , O . s t y l e = O . s t y l e | | O . c s s , O . s t a r t e d = ! 1 , O . p l a y i n g = ! 1 , O . h o o k e d = ! 1 , O . a p p l y i n g = ! 1 , O . p r o g r e s s = 0 , O . c o m p l e t e s = [ ] , O . f r a m e s = [ ] , O . c o m p l e t e & & x t ( O . c o m p l e t e ) & & O . c o m p l e t e s . p u s h ( O . c o m p l e t e ) , I ) { v a r   $ = g . p o s i t i o n ( ) ; O . s t a r t P o s i t i o n = O . s t a r t P o s i t i o n | | { x : $ . x , y : $ . y } , O . s t a r t S t y l e = O . s t a r t S t y l e | | g . c y ( ) . s t y l e ( ) . g e t A n i m a t i o n S t a r t S t y l e ( g , O . s t y l e ) } i f ( L ) { v a r   z = g . p a n ( ) ; O . s t a r t P a n = { x : z . x , y : z . y } , O . s t a r t Z o o m = g . z o o m ( ) } t h i s . l e n g t h = 1 , t h i s [ 0 ] = t h i s } , A 3 = V 9 . p r o t o t y p e ; f n ( A 3 , { i n s t a n c e S t r i n g : f u n c t i o n ( ) { r e t u r n " a n i m a t i o n " } , h o o k : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; i f ( ! g . h o o k e d ) { v a r   x , T = g . t a r g e t . _ p r i v a t e . a n i m a t i o n ; g . q u e u e ? x = T . q u e u e : x = T . c u r r e n t , x . p u s h ( t h i s ) , b t ( g . t a r g e t ) & & g . t a r g e t . c y ( ) . a d d T o A n i m a t i o n P o o l ( g . t a r g e t ) , g . h o o k e d = ! 0 } r e t u r n   t h i s } , p l a y : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p r o g r e s s = = = 1 & & ( g . p r o g r e s s = 0 ) , g . p l a y i n g = ! 0 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 1 , t h i s . h o o k ( ) , t h i s } , p l a y i n g : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . p l a y i n g } , a p p l y : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . a p p l y i n g = ! 0 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 1 , t h i s . h o o k ( ) , t h i s } , a p p l y i n g : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . a p p l y i n g } , p a u s e : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p l a y i n g = ! 1 , g . s t a r t e d = ! 1 , t h i s } , s t o p : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e ; r e t u r n   g . p l a y i n g = ! 1 , g . s t a r t e d = ! 1 , g . s t o p p e d = ! 0 , t h i s } , r e w i n d : f u n c t i o n ( ) { r e t u r n   t h i s . p r o g r e s s ( 0 ) } , f a s t f o r w a r d : f u n c t i o n ( ) { r e t u r n   t h i s . p r o g r e s s ( 1 ) } , t i m e : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e ; r e t u r n   g = = = v o i d   0 ? x . p r o g r e s s * x . d u r a t i o n : t h i s . p r o g r e s s ( g / x . d u r a t i o n ) } , p r o g r e s s : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e , T = x . p l a y i n g ; r e t u r n   g = = = v o i d   0 ? x . p r o g r e s s : ( T & & t h i s . p a u s e ( ) , x . p r o g r e s s = g , x . s t a r t e d = ! 1 , T & & t h i s . p l a y ( ) , t h i s ) } , c o m p l e t e d : f u n c t i o n ( ) { r e t u r n   t h i s . _ p r i v a t e . p r o g r e s s = = = 1 } , r e v e r s e : f u n c t i o n ( ) { v a r   g = t h i s . _ p r i v a t e , x = g . p l a y i n g ; x & & t h i s . p a u s e ( ) , g . p r o g r e s s = 1 - g . p r o g r e s s , g . s t a r t e d = ! 1 ; v a r   T = f u n c t i o n ( S , V ) { v a r   U = g [ S ] ; U ! = n u l l & & ( g [ S ] = g [ V ] , g [ V ] = U ) } ; i f ( T ( " z o o m " , " s t a r t Z o o m " ) , T ( " p a n " , " s t a r t P a n " ) , T ( " p o s i t i o n " , " s t a r t P o s i t i o n " ) , g . s t y l e ) f o r ( v a r   L = 0 ; L < g . s t y l e . l e n g t h ; L + + ) { v a r   I = g . s t y l e [ L ] , O = I . n a m e , $ = g . s t a r t S t y l e [ O ] ; g . s t a r t S t y l e [ O ] = I , g . s t y l e [ L ] = $ } r e t u r n   x & & t h i s . p l a y ( ) , t h i s } , p r o m i s e : f u n c t i o n ( g ) { v a r   x = t h i s . _ p r i v a t e , T ; s w i t c h ( g ) { c a s e " f r a m e " : T = x . f r a m e s ; b r e a k ; d e f a u l t : c  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    	  Event  object  based  on  jQuery  events ,  MIT  license 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //jquery.org/license/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //tldrlegal.com/license/mit-license
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    	  https : //github.com/jquery/jquery/blob/master/src/event.js
 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    	  * /var uB=function(g,x){this.recycle(g,x)};function Dk(){return!1}function tT(){return!0}uB.prototype={instanceString:function(){return"event"},recycle:function(g,x){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Dk,g!=null&&g.preventDefault?(this.type=g.type,this.isDefaultPrevented=g.defaultPrevented?tT:Dk):g!=null&&g.type?x=g:this.type=g,x!=null&&(this.originalEvent=x.originalEvent,this.type=x.type!=null?x.type:this.type,this.cy=x.cy,this.target=x.target,this.position=x.position,this.renderedPosition=x.renderedPosition,this.namespace=x.namespace,this.layout=x.layout),this.cy!=null&&this.position!=null&&this.renderedPosition==null){var T=this.position,L=this.cy.zoom(),I=this.cy.pan();this.renderedPosition={x:T.x*L+I.x,y:T.y*L+I.y}}this.timeStamp=g&&g.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=tT;var g=this.originalEvent;g&&g.preventDefault&&g.preventDefault()},stopPropagation:function(){this.isPropagationStopped=tT;var g=this.originalEvent;g&&g.stopPropagation&&g.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tT,this.stopPropagation()},isDefaultPrevented:Dk,isPropagationStopped:Dk,isImmediatePropagationStopped:Dk};var lB=/ ^ ( [ ^ . ] + ) ( \ . ( ? : [ ^ . ] + ) ) ? $ / , oJ = ".*" , hB = { qualifierCompare : function ( g , x ) { return  g === x } , eventMatches : function ( ) { return ! 0 } , addEventFields : function ( ) { } , callbackContext : function ( g ) { return  g } , beforeEmit : function ( ) { } , afterEmit : function ( ) { } , bubble : function ( ) { return ! 1 } , parent : function ( ) { return  null } , context : null } , fB = Object . keys ( hB ) , cJ = { } ; function  eT ( ) { for ( var  y = arguments . length > 0 && arguments [ 0 ] !== void  0 ? arguments [ 0 ] : cJ , g = arguments . length > 1 ? arguments [ 1 ] : void  0 , x = 0 ; x < fB . length ; x ++ ) { var  T = fB [ x ] ; this [ T ] = y [ T ] || hB [ T ] } this . context = g || this . context , this . listeners = [ ] , this . emitting = 0 } var  km = eT . prototype , dB = function ( g , x , T , L , I , O , $ ) { xt ( L ) && ( I = L , L = null ) , $ && ( O == null ? O = $ : O = fn ( { } , O , $ ) ) ; for ( var  z = pt ( T ) ? T : T . split ( /\s+/ ) , S = 0 ; S < z . length ; S ++ ) { var  V = z [ S ] ; if ( ! X ( V ) ) { var  U = V . match ( lB ) ; if ( U ) { var  et = U [ 1 ] , at = U [ 2 ] ? U [ 2 ] : null , lt = x ( g , V , et , at , L , I , O ) ; if ( lt === ! 1 ) break } } } } , gB = function ( g , x ) { return  g . addEventFields ( g . context , x ) , new  uB ( x . type , x ) } , uJ = function ( g , x , T ) { if ( Ft ( T ) ) { x ( g , T ) ; return } else  if ( ct ( T ) ) { x ( g , gB ( g , T ) ) ; return } for ( var  L = pt ( T ) ? T : T . split ( /\s+/ ) , I = 0 ; I < L . length ; I ++ ) { var  O = L [ I ] ; if ( ! X ( O ) ) { var  $ = O . match ( lB ) ; if ( $ ) { var  z = $ [ 1 ] , S = $ [ 2 ] ? $ [ 2 ] : null , V = gB ( g , { type : z , namespace : S , target : g . context } ) ; x ( g , V ) } } } } ; km . on = km . addListener = function ( y , g , x , T , L ) { return  dB ( this , function ( I , O , $ , z , S , V , U ) { xt ( V ) && I . listeners . push ( { event : O , callback : V , type : $ , namespace : z , qualifier : S , conf : U } ) } , y , g , x , T , L ) , this } , km . one = function ( y , g , x , T ) { return  this . on ( y , g , x , T , { one : ! 0 } ) } , km . removeListener = km . off = function ( y , g , x , T ) { var  L = this ; this . emitting !== 0 && ( this . listeners = JK ( this . listeners ) ) ; for ( var  I = this . listeners , O = function ( S ) { var  V = I [ S ] ; dB ( L , function ( U , et , at , lt , ft , Lt ) { if ( ( V . type === at || y === "*" ) && ( ! lt && V . namespace !== ".*" || V . namespace === lt ) && ( ! ft || U . qualifierCompare ( V . qualifier , ft ) ) && ( ! Lt || V . callback === Lt ) ) return  I . splice ( S , 1 ) , ! 1 } , y , g , x , T ) } , $ = I . length - 1 ; $ >= 0 ; $ -- ) O ( $ ) ; return  this } , km . removeAllListeners = function ( ) { return  this . removeListener ( "*" ) } , km . emit = km . trigger = function ( y , g , x ) { var  T = this . listeners , L = T . length ; return  this . emitting ++ , pt ( g ) || ( g = [ g ] ) , uJ ( this , function ( I , O ) { x != null && ( T = [ { event : O . event , type : O . type , namespace : O . namespace , callback : x } ] , L = T . length ) ; for ( var  $ = function ( V ) { var  U = T [ V ] ; if ( U . type === O . type && ( ! U . namespace || U . namespace === O . namespace || U . namespace === oJ ) && I . eventMatches ( I . context , U , O ) ) { var  et = [ O ] ; g != null && QP ( et , g ) , I . beforeEmit ( I . context , U , O ) , U . conf && U . conf . one && ( I . listeners = I . listeners . filter ( function ( ft ) { return  ft !== U } ) ) ; var  at = I . callbackContext ( I . context , U , O ) , lt = U . callback . apply ( at , et ) ; I . afterEmit ( I . context , U , O ) , lt === ! 1 && ( O . stopPropagation ( ) , O . preventDefault ( ) ) } } , z = 0 ; z < L ; z ++ ) $ ( z ) ; I . bubble ( I . context ) && ! O . isPropagationStopped ( ) && I . parent ( I . context ) . emit ( O , g ) } , y ) , this . emitting -- , this } ; var  lJ = { qualifierCompare : function ( g , x ) { return  g == null || x == null ? g == null && x == null : g . sameText ( x ) } , eventMatches : function ( g , x , T ) { var  L = x . qualifier ; return  L != null ? g !== T . target && Ct ( T . target ) && L . matc 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),U=y.pstyle("text-max-width").pfValue,et=y.pstyle("text-overflow-wrap").value,at=et==="anywhere",lt=[],ft=/[ \s \u 200b]+/,Lt=at?"":" ",kt=0;kt<V.length;kt++){var Dt=V[kt],It=this.calculateLabelDimensions(y,Dt),zt=It.width;if(at){var te=Dt.split("").join(S);Dt=te}if(zt>U){for(var Xt=Dt.split(ft),Ht="",ie=0;ie<Xt.length;ie++){var Wt=Xt[ie],fe=Ht.length===0?Wt:Ht+Lt+Wt,ge=this.calculateLabelDimensions(y,fe),se=ge.width;se<=U?Ht+=Wt+Lt:(Ht&<.push(Ht),Ht=Wt+Lt)}Ht.match(/^[ \s \u 200b]+ $ /)||lt.push(Ht)}else lt.push(Dt)}O("labelWrapCachedLines",lt),L=O("labelWrapCachedText",lt.join( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` )),O("labelWrapKey",z)}else if( $ ==="ellipsis"){var Ne=y.pstyle("text-max-width").pfValue,pe="",gn="…",je=!1;if(this.calculateLabelDimensions(y,L).width<Ne)return L;for(var Ge=0;Ge<L.length;Ge++){var xn=this.calculateLabelDimensions(y,pe+L[Ge]+gn).width;if(xn>Ne)break;pe+=L[Ge],Ge===L.length-1&&(je=!0)}return je||(pe+=gn),pe}return L},kp.getLabelJustification=function(y){var g=y.pstyle("text-justification").strValue,x=y.pstyle("text-halign").strValue;if(g==="auto")if(y.isNode())switch(x){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return g},kp.calculateLabelDimensions=function(y,g){var x=this,T=vp(g,y._private.labelDimsKey),L=x.labelDimCache||(x.labelDimCache=[]),I=L[T];if(I!=null)return I;var O=0, $ =y.pstyle("font-style").strValue,z=y.pstyle("font-size").pfValue,S=y.pstyle("font-family").strValue,V=y.pstyle("font-weight").strValue,U=this.labelCalcCanvas,et=this.labelCalcCanvasContext;if(!U){U=this.labelCalcCanvas=document.createElement("canvas"),et=this.labelCalcCanvasContext=U.getContext("2d");var at=U.style;at.position="absolute",at.left="-9999px",at.top="-9999px",at.zIndex="-1",at.visibility="hidden",at.pointerEvents="none"}et.font="".concat( $ ," ").concat(V," ").concat(z,"px ").concat(S);for(var lt=0,ft=0,Lt=g.split( `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ),kt=0;kt<Lt.length;kt++){var Dt=Lt[kt],It=et.measureText(Dt),zt=Math.ceil(It.width),te=z;lt=Math.max(zt,lt),ft+=te}return lt+=O,ft+=O,L[T]={width:lt,height:ft}},kp.calculateLabelAngle=function(y,g){var x=y._private,T=x.rscratch,L=y.isEdge(),I=g?g+"-":"",O=y.pstyle(I+"text-rotation"), $ =O.strValue;return  $ ==="none"?0:L&& $ ==="autorotate"?T.labelAutoAngle: $ ==="autorotate"?0:O.pfValue},kp.calculateLabelAngles=function(y){var g=this,x=y.isEdge(),T=y._private,L=T.rscratch;L.labelAngle=g.calculateLabelAngle(y),x&&(L.sourceLabelAngle=g.calculateLabelAngle(y,"source"),L.targetLabelAngle=g.calculateLabelAngle(y,"target"))};var ih={},JL=28,GB=!1;ih.getNodeShape=function(y){var g=this,x=y.pstyle("shape").value;if(x==="cutrectangle"&&(y.width()<JL||y.height()<JL))return GB||(no("The  ` cutrectangle `  node shape can not be used at small sizes so  ` rectangle `  is used instead"),GB=!0),"rectangle";if(y.isParent())return x==="rectangle"||x==="roundrectangle"||x==="round-rectangle"||x==="cutrectangle"||x==="cut-rectangle"||x==="barrel"?x:"rectangle";if(x==="polygon"){var T=y.pstyle("shape-polygon-points").value;return g.nodeShapes.makePolygon(T).name}return x};var Rk={};Rk.registerCalculationListeners=function(){var y=this.cy,g=y.collection(),x=this,T=function(O){var  $ =arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(g.merge(O), $ )for(var z=0;z<O.length;z++){var S=O[z],V=S._private,U=V.rstyle;U.clean=!1,U.cleanConnected=!1}};x.binder(y).on("bounds.* dirty.*",function(O){var  $ =O.target;T( $ )}).on("style.* background.*",function(O){var  $ =O.target;T( $ ,!1)});var L=function(O){if(O){var  $ =x.onUpdateEleCalcsFns;g.cleanStyle();for(var z=0;z<g.length;z++){var S=g[z],V=S._private.rstyle;S.isNode()&&!V.cleanConnected&&(T(S.connectedEdges()),V.cleanConnected=!0)}if( $ )for(var U=0;U< $ .length;U++){var et= $ [U];et(O,g)}x.recalculateRenderedStyle(g),g=y.collection()}};x.flushRenderedStyleQueue=function(){L(!0)},x.beforeRender(L,x.beforeRenderPriorities.eleCalcs)},Rk.onUpdateEleCalcs=function(y){var g=this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[];g.push(y)},Rk.recalculateRenderedStyle=function(y,g){var x=function(zt){return zt._private.rstyle.cleanConnected},T=[],L=[];if(!this.destroyed){g===void 0&&(g=!0);for(var I=0;I<y.length;I++){var O=y[I], $ =O._private,z= $ .rstyle;O.isEdge()&&(!x(O.source())||!x(O.target()))&&(z.clean=!1),!(g&&z.clean||O.removed())&&O.pstyle("display").value!=="none"&&( $ .group==="nodes"?L.push(O):T.push(O),z.clean=!0)}for(var S=0;S<L.length;S++){var V=L[S],U=V._private,et=U.rstyle,at=V.position();this.recalculateNodeLabelProjection(V),et.nodeX=at.x,et.nodeY=at.y,et.nodeW=V.pstyle("width").pfValue,et.nodeH=V.pstyle("height").pfValue}this.recalculateEdgeProjections(T);for(var lt=0;lt<T.length;lt++){var ft=T[lt],Lt=ft._private,kt=Lt.rstyle,Dt=Lt.rscratch;kt.srcX=Dt.arrowStartX,kt.srcY=Dt.arrowStartY,kt.tgtX=Dt.arrowEndX,kt.tgtY=Dt.arrowEndY,kt.midX=Dt.midX,kt.midY=Dt.midY,kt.labelAngle=Dt.labelAngle,kt.sourceLabelAngle=Dt.sourceLabelAngle,kt.targetLabelAngle=Dt.targetLabelAngle}}};var wT={};wT.updateCachedGrabbedEles=function(){var y=this.cachedZSortedEles;if(y){y.drag=[],y.nondrag=[];for(var g=[],x=0;x<y.length;x++){var T=y[x],L=T._private.rscratch;T.grabbed()&&!T.isParent()?g.push(T):L.inDragLayer?y.drag.push(T):y.nondrag.push(T)}for(var x=0;x<g.length;x++){var T=g[x];y.drag.push(T)}}},wT.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},wT.getCachedZSortedEles=function(y){if(y||!this.cachedZSortedEles){var g=this.cy.mutableElements().toArray();g.sort(vB),g.interactive=g.filter(function(x){return x.interactive()}),this.cachedZSortedEles=g,this.updateCachedGrabbedEles()}else g=this.cachedZSortedEles;return g};var jk={};[D3,vT,sd,Bk,ZL,kp,ih,Rk,wT].forEach(function(y){fn(jk,y)});var UB={};UB.getCachedImage=function(y,g,x){var T=this,L=T.imageCache=T.imageCache||{},I=L[y];if(I)return I.image.complete||I.image.addEventListener("load",x),I.image;I=L[y]=L[y]||{};var O=I.image=new Image;O.addEventListener("load",x),O.addEventListener("error",function(){O.error=!0});var  $ ="data:",z=y.substring(0, $ .length).toLowe
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +i,p.parser);const m=Me().securityLevel;let b;m==="sandbox"&&(b=fr("#i"+a));const C=fr(m==="sandbox"?b.nodes()[0].contentDocument.body:"body").select("#"+a);C.append("g");const A=p.db.getMindmap(),P=C.append("g");P.attr("class","mindmap-edges");const F=C.append("g");F.attr("class","mindmap-nodes"),Xjt(F,A,-1,v);const j=await hWe(A,v);lWe(P,j),fWe(j),e9(void 0,C,v.mindmap.padding,v.mindmap.useMaxWidth)}},gWe=i=>{let a="";for(let f=0;f<i.THEME_COLOR_LIMIT;f++)i["lineColor"+f]=i["lineColor"+f]||i["cScaleInv"+f],ZE(i["lineColor"+f])?i["lineColor"+f]=Ss(i["lineColor"+f],20):i["lineColor"+f]=Ys(i["lineColor"+f],20);for(let f=0;f<i.THEME_COLOR_LIMIT;f++){const p=""+(17-3*f);a+= `  
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  rect ,  . section - $ { f - 1 }  path ,  . section - $ { f - 1 }  circle ,  . section - $ { f - 1 }  polygon ,  . section - $ { f - 1 }  path   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								     fill :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . node - icon - $ { f - 1 }  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      font - size :  40 px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      color :  $ { i [ "cScaleLabel" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - edge - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScale" + f ] } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . edge - depth - $ { f - 1 } { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  $ { p } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . section - $ { f - 1 }  line  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke :  $ { i [ "cScaleInv" + f ] }  ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled ,  . disabled  circle ,  . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  lightgray ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    . disabled  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								      fill :  # efefef ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    ` }return a},pWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:XUe,renderer:dWe,parser: $ Ue,styles:i=> ` 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    stroke - width :  3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  $ { gWe ( i ) } 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-14 19:56:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  rect ,  . section - root  path ,  . section - root  circle ,  . section - root  polygon   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . git0 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . section - root  text  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  $ { i . gitBranchLabel0 } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . icon - container  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    height : 100 % ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    display :  flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    justify - content :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    align - items :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . edge  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    fill :  none ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  . mindmap - node - label  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    dy :  1 em ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    alignment - baseline :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - anchor :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    dominant - baseline :  middle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    text - align :  center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-15 10:30:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								` }},Symbol.toStringTag,{value:"Module"}));var Ggt=function(){var i=function(E,C,A,P){for(A=A||{},P=E.length;P--;A[E[P]]=C);return A},a=[1,9],f=[1,10],p=[1,5,10,12],v={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20, $ accept:0, $ end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(C,A,P,F,j,R,H){var Y=R.length-1;switch(j){case 7:const rt=F.findOrCreateNode(R[Y-4].trim().replaceAll('""','"')),J=F.findOrCreateNode(R[Y-2].trim().replaceAll('""','"')),it=parseFloat(R[Y].trim());F.addLink(rt,J,it);break;case 8:case 9:case 11:this. $ =R[Y];break;case 10:this. $ =R[Y-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:a,20:f},{1:[2,6],7:11,10:[1,12]},i(f,[2,4],{9:13,5:[1,14]}),{12:[1,15]},i(p,[2,8]),i(p,[2,9]),{19:[1,16]},i(p,[2,11]),{1:[2,1]},{1:[2,5]},i(f,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:a,20:f},{15:18,16:7,17:8,18:a,20:f},{18:[1,19]},i(f,[2,3]),{12:[1,20]},i(p,[2,10]),{15:21,16:7,17:8,18:a,20:f},i([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(C,A){if(A.recoverable)this.trace(C);else{var P=new Error(C);throw P.hash=A,P}},parse:function(C){var A=this,P=[0],F=[],j=[null],R=[],H=this.table,Y="",rt=0,J=0,it=2,ht=1,Tt=R.slice.call(arguments,1),xt=Object.create(this.lexer),pt={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(pt.yy[ct]=this.yy[ct]);xt.setInput(C,pt.yy),pt.yy.lexer=xt,pt.yy.parser=this,typeof xt.yylloc>"u"&&(xt.yylloc={});var yt=xt.yylloc;R.push(yt);var st=xt.options&&xt.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Et(){var wt;return wt=F.pop()||xt.lex()||ht,typeof wt!="number"&&(wt instanceof Array&&(F=wt,wt=F.pop()),wt=A.symbols_[wt]||wt),wt}for(var dt,bt,Ct,tt,Pt={},gt,Ft,X,Rt;;){if(bt=P[P.length-1],this.defaultActions[bt]?Ct=this.defaultActions[bt]:((dt===null||typeof dt>"u")&&(dt=Et()),Ct=H[bt]&&H[bt][dt]),typeof Ct>"u"||!Ct.length||!Ct[0]){var Bt="";Rt=[];for(gt in H[bt])this.terminals_[gt]&>>it&&Rt.push("'"+this.terminals_[gt]+"'");xt.showPosition?Bt="Parse error on line "+(rt+1)+ ` :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +xt.showPosition()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Expecting  ` +Rt.join(", ")+", got '"+(this.terminals_[dt]||dt)+"'":Bt="Parse error on line "+(rt+1)+": Unexpected "+(dt==ht?"end of input":"'"+(this.terminals_[dt]||dt)+"'"),this.parseError(Bt,{text:xt.match,token:this.terminals_[dt]||dt,line:xt.yylineno,loc:yt,expected:Rt})}if(Ct[0]instanceof Array&&Ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+bt+", token: "+dt);switch(Ct[0]){case 1:P.push(dt),j.push(xt.yytext),R.push(xt.yylloc),P.push(Ct[1]),dt=null,J=xt.yyleng,Y=xt.yytext,rt=xt.yylineno,yt=xt.yylloc;break;case 2:if(Ft=this.productions_[Ct[1]][1],Pt. $ =j[j.length-Ft],Pt._ $ ={first_line:R[R.length-(Ft||1)].first_line,last_line:R[R.length-1].last_line,first_column:R[R.length-(Ft||1)].first_column,last_column:R[R.length-1].last_column},st&&(Pt._ $ .range=[R[R.length-(Ft||1)].range[0],R[R.length-1].range[1]]),tt=this.performAction.apply(Pt,[Y,J,rt,pt.yy,Ct[1],j,R].concat(Tt)),typeof tt<"u")return tt;Ft&&(P=P.slice(0,-1*Ft*2),j=j.slice(0,-1*Ft),R=R.slice(0,-1*Ft)),P.push(this.productions_[Ct[1]][0]),j.push(Pt. $ ),R.push(Pt._ $ ),X=H[P[P.length-2]][P[P.length-1]],P.push(X);break;case 3:return!0}}return!0}},m=function(){var E={EOF:1,parseError:function(A,P){if(this.yy.parser)this.yy.parser.parseError(A,P);else throw new Error(A)},setInput:function(C,A){return this.yy=A||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var A=C.match(/(?: \r \n ?| \n ).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},unput:function(C){var A=C.length,P=C.split(/(?: \r \n ?| \n )/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var F=this.match.split(/(?: \r \n ?| \n )/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),P.length-1&&(this.yylineno-=P.length-1);var j=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:P?(P.length===F.length?this.yylloc.first_column:0)+F[F.length-P.length].length-P[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[j[0],j[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  You  can  only  invoke  reject ( )  in  the  lexer  when  the  lexer  is  of  the  backtracking  persuasion  ( options . backtrack _lexer  =  true ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(C){this.unput(this.match.slice(C))},pastInput:function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/ \n /g,"")},upcomingInput:function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/ \n /g,"")},showPosition:function(){var C=this.pastInput(),A=new Array(C.length+1).join("-");return C+this.upcomingInput()+ `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +A+"^"},test_match:function(C,A){var P,F,j;if(this.options.backtrack_lexer&&(j={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(j.yylloc.range=this.yylloc.range.slice(0))),F=C[0].match(/(?: \r \n ?| \n ).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/ \r ? \n ?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],P=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),P)return P;if(this._backtrack){for(var R in j)this[R]=j[R];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,A,P,F;this._more||(this.yytext="",this.match="");for(var j=this._currentRules(),R=0;R<j.length;R++)if(P=this._input.match(this.rules[j[R]]),P&&(!A||P[0].length>A[0].length)){if(A=P,F=R,this.options.backtrack_lexer){if(C=this.test_match(P,j[R]),C!==!1)return C;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(C=this.test_match(A,j[F]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+ ` .  Unrecognized  text .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` +this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var A=this.next();return A||this.lex()},begin:function(A){this.conditionStack.push(A)},popState:function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},pushState:function(A){this.begin(A)},stateStackSize:function(){return this.conditionStack.length},options:{easy_keword_rules:!0},performAction:function(A,P,F,j){switch(F){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta \b )/,/^(?: $ )/,/^(?:(( \u 000D \u 000A)|( \u 000A)))/,/^(?:( \u 002C))/,/^(?:( \u 0022))/,/^(?:([ \u 0020- \u 0021 \u 0023- \u 002B \u 002D- \u 007E])*)/,/^(?:( \u 0022)(?!( \u 0022)))/,/^(?:(([ \u 0020- \u 0021 \u 0023- \u 002B \u 002D- \u 007E])|( \u 002C)|( \u 000D)|( \u 000A)|( \u 0022)( \u 0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return E}();v.lexer=m;function b(){this.yy={}}return b.prototype=v,v.Parser=b,new b}();Ggt.parser=Ggt;const WK=Ggt;let KK=[],YK=[],xL={};const bWe=()=>{KK=[],YK=[],xL={},ug()};class vWe{constructor(a,f,p=0){this.source=a,this.target=f,this.value=p}}const wWe=(i,a,f)=>{KK.push(new vWe(i,a,f))};class mWe{constructor(a){this.ID=a}}const yWe={nodesMap:xL,getConfig:()=>Me().sankey,getNodes:()=>YK,getLinks:()=>KK,getGraph:()=>({nodes:YK.map(i=>({id:i.ID})),links:KK.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:wWe,findOrCreateNode:i=>(i=oi.sanitizeText(i,Me()),xL[i]||(xL[i]=new mWe(i),YK.push(xL[i])),xL[i]),getAccTitle:lg,setAccTitle:m0,getAccDescription:fg,setAccDescription:hg,getDiagramTitle:fp,setDiagramTitle:Ob,clear:bWe};function Zjt(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f<p||f===void 0&&p>=p)&&(f=p);else{let p=-1;for(let v of i)(v=a(v,++p,i))!=null&&(f<v||f===void 0&&v>=v)&&(f=v)}return f}function Jjt(i,a){let f;if(a===void 0)for(const p of i)p!=null&&(f>p||f===void 0&&p>=p)&&(f=p);else{let p=-1;for(let v of i)(v=a(v,++p,i))!=null&&(f>v||f===void 0&&v>=v)&&(f=v)}return f}function Ugt(i,a){let f=0;if(a===void 0)for(let p of i)(p=+p)&&(f+=p);else{let p=-1;for(let v of i)(v=+a(v,++p,i))&&(f+=v)}return f}function xWe(i){return i.target.depth}function kWe(i){return i.depth}function EWe(i,a){return a-1-i.height}function t $ t(i,a){return i.sourceLinks.length?i.depth:a-1}function TWe(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?Jjt(i.sourceLinks,xWe)-1:0}function XK(i){return function(){return i}}function e $ t(i,a){return QK(i.source,a.source)||i.index-a.index}function n $ t(i,a){return QK(i.target,a.target)||i.index-a.index}function QK(i,a){return i.y0-a.y0}function Wgt(i){return i.value}function _We(i){return i.index}function CWe(i){return i.nodes}function SWe(i){return i.links}function r $ t(i,a){const f=i.get(a);if(!f)throw new Error("missing: "+a);return f}function i $ t({nodes:i}){for(const a of i){let f=a.y0,p=f;for(const v of a.sourceLinks)v.y0=f+v.width/2,f+=v.width;for(const v of a.targetLinks)v.y1=p+v.width/2,p+=v.width}}function AWe(){let i=0,a=0,f=1,p=1,v=24,m=8,b,E=_We,C=t $ t,A,P,F=CWe,j=SWe,R=6;function H(){const Pt={nodes:F.apply(null,arguments),links:j.apply(null,arguments)};return Y(Pt),rt(Pt),J(Pt),it(Pt),xt(Pt),i $ t(Pt),Pt}H.update=function(Pt){return i $ t(Pt),Pt},H.nodeId=function(Pt){return arguments.length?(E=typeof Pt=="function"?Pt:XK(Pt),H):E},H.nodeAlign=function(Pt){return arguments.length?(C=typeof Pt=="function"?Pt:XK(Pt),H):C},H.nodeSort=function(Pt){return arguments.length?(A=Pt,H):A},H.nodeWidth=function(Pt){return arguments.length?(v=+Pt,H):v},H.nodePaddi
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								` ).trim(),VWe=WK.parse.bind(WK);WK.parse=i=>VWe(HWe(i));const GWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:WK,db:yWe,renderer:qWe}},Symbol.toStringTag,{value:"Module"}));return Pb});