diff --git a/docs/public/bootstrap-icons-6QOYJHKE.woff2 b/docs/public/bootstrap-icons-6QOYJHKE.woff2 deleted file mode 100644 index 87032d17..00000000 Binary files a/docs/public/bootstrap-icons-6QOYJHKE.woff2 and /dev/null differ diff --git a/docs/public/bootstrap-icons-BNVXHMH5.woff b/docs/public/bootstrap-icons-BNVXHMH5.woff new file mode 100644 index 00000000..ae24c650 Binary files /dev/null and b/docs/public/bootstrap-icons-BNVXHMH5.woff differ diff --git a/docs/public/bootstrap-icons-JHE3QUSN.woff b/docs/public/bootstrap-icons-JHE3QUSN.woff deleted file mode 100644 index dbeeb055..00000000 Binary files a/docs/public/bootstrap-icons-JHE3QUSN.woff and /dev/null differ diff --git a/docs/public/bootstrap-icons-UDRIHJCM.woff2 b/docs/public/bootstrap-icons-UDRIHJCM.woff2 new file mode 100644 index 00000000..fff9d0cf Binary files /dev/null and b/docs/public/bootstrap-icons-UDRIHJCM.woff2 differ diff --git a/docs/public/c4Diagram-817c8e44-DEM7FJ4Q.min.js b/docs/public/c4Diagram-817c8e44-SGFOBFRD.min.js similarity index 99% rename from docs/public/c4Diagram-817c8e44-DEM7FJ4Q.min.js rename to docs/public/c4Diagram-817c8e44-SGFOBFRD.min.js index aab02ffc..5279f3ae 100644 --- a/docs/public/c4Diagram-817c8e44-DEM7FJ4Q.min.js +++ b/docs/public/c4Diagram-817c8e44-SGFOBFRD.min.js @@ -1,4 +1,4 @@ -import{a as de,f as fe}from"./chunk-OZIWJXOC.min.js";import{$a as ge,Ga as $t,Ia as te,J as Ie,La as Bt,Oa as pe,Ua as ye,Va as ee,Wa as At,b as Be,c as Ye,cb as be,db as _e,eb as xe,fb as me,h as Dt,jb as Ot}from"./chunk-JUXSCBYR.min.js";import{d as Zt}from"./chunk-P42HNYSU.min.js";var ke=Zt(Ye(),1);var B0=Zt(Be(),1),Y0=Zt(Ie(),1);var It=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],N=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],Ct=[14,42],Xt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Tt=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],oe=[12,14,33,42],Mt=[12,14,33,42,76,77,79,80],mt=[12,33],Wt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Qt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Rt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ct,[2,14]),e(Xt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(Tt,[2,19]),e(Tt,[2,20]),{25:[1,78]},{27:[1,79]},e(Tt,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Xt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Tt,[2,21]),e(Tt,[2,22]),e(w,[2,39]),e(oe,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Mt,[2,73]),{78:[1,133]},e(Mt,[2,75]),e(Mt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Xt,[2,18]),e(Ct,[2,38]),e(oe,[2,72]),e(Mt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(Wt,[2,25]),e(Wt,[2,26],{12:[1,138]}),e(Wt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Rt=this.table,y="",Et=0,ce=0,Pe=2,he=1,Me=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qt)&&(vt.yy[qt]=this.yy[qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Gt=D.yylloc;u.push(Gt);var Le=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ne(){var X;return X=g.pop()||D.lex()||he,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,B,Kt,wt={},Lt,z,ue,Nt;;){if(kt=m[m.length-1],this.defaultActions[kt]?B=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ne()),B=Rt[kt]&&Rt[kt][M]),typeof B>"u"||!B.length||!B[0]){var Jt="";Nt=[];for(Lt in Rt[kt])this.terminals_[Lt]&&Lt>Pe&&Nt.push("'"+this.terminals_[Lt]+"'");D.showPosition?Jt="Parse error on line "+(Et+1)+`: +import{a as de,f as fe}from"./chunk-F7JJDB3C.min.js";import{$a as ge,Ga as $t,Ia as te,J as Ie,La as Bt,Oa as pe,Ua as ye,Va as ee,Wa as At,b as Be,c as Ye,cb as be,db as _e,eb as xe,fb as me,h as Dt,jb as Ot}from"./chunk-YICCS3KT.min.js";import{d as Zt}from"./chunk-P42HNYSU.min.js";var ke=Zt(Ye(),1);var B0=Zt(Be(),1),Y0=Zt(Ie(),1);var It=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],N=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],Ct=[14,42],Xt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Tt=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],oe=[12,14,33,42],Mt=[12,14,33,42,76,77,79,80],mt=[12,33],Wt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Qt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Rt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ct,[2,14]),e(Xt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(Tt,[2,19]),e(Tt,[2,20]),{25:[1,78]},{27:[1,79]},e(Tt,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Xt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:N,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Tt,[2,21]),e(Tt,[2,22]),e(w,[2,39]),e(oe,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Mt,[2,73]),{78:[1,133]},e(Mt,[2,75]),e(Mt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Xt,[2,18]),e(Ct,[2,38]),e(oe,[2,72]),e(Mt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(Wt,[2,25]),e(Wt,[2,26],{12:[1,138]}),e(Wt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Rt=this.table,y="",Et=0,ce=0,Pe=2,he=1,Me=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qt)&&(vt.yy[qt]=this.yy[qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Gt=D.yylloc;u.push(Gt);var Le=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ne(){var X;return X=g.pop()||D.lex()||he,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,B,Kt,wt={},Lt,z,ue,Nt;;){if(kt=m[m.length-1],this.defaultActions[kt]?B=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ne()),B=Rt[kt]&&Rt[kt][M]),typeof B>"u"||!B.length||!B[0]){var Jt="";Nt=[];for(Lt in Rt[kt])this.terminals_[Lt]&&Lt>Pe&&Nt.push("'"+this.terminals_[Lt]+"'");D.showPosition?Jt="Parse error on line "+(Et+1)+`: `+D.showPosition()+` Expecting `+Nt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Jt="Parse error on line "+(Et+1)+": Unexpected "+(M==he?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(Jt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:Gt,expected:Nt})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+M);switch(B[0]){case 1:m.push(M),T.push(D.yytext),u.push(D.yylloc),m.push(B[1]),M=null,ce=D.yyleng,y=D.yytext,Et=D.yylineno,Gt=D.yylloc;break;case 2:if(z=this.productions_[B[1]][1],wt.$=T[T.length-z],wt._$={first_line:u[u.length-(z||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(z||1)].first_column,last_column:u[u.length-1].last_column},Le&&(wt._$.range=[u[u.length-(z||1)].range[0],u[u.length-1].range[1]]),Kt=this.performAction.apply(wt,[y,ce,Et,vt.yy,B[1],T,u].concat(Me)),typeof Kt<"u")return Kt;z&&(m=m.slice(0,-1*z*2),T=T.slice(0,-1*z),u=u.slice(0,-1*z)),m.push(this.productions_[B[1]][0]),T.push(wt.$),u.push(wt._$),ue=Rt[m[m.length-2]][m[m.length-1]],m.push(ue);break;case 3:return!0}}return!0}},Se=function(){var bt={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,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 _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=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),m.length-1&&(this.yylineno-=m.length-1);var T=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:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-x]),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(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` @@ -8,4 +8,4 @@ Expecting `+Nt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Jt="Parse error fill: ${e.personBkg}; } `,S0=D0,I0={parser:je,db:ie,renderer:ve,styles:S0,init:({c4:e,wrap:t})=>{ve.setConf(e),ie.setWrap(t)}};export{I0 as diagram}; -//# sourceMappingURL=c4Diagram-817c8e44-DEM7FJ4Q.min.js.map +//# sourceMappingURL=c4Diagram-817c8e44-SGFOBFRD.min.js.map diff --git a/docs/public/c4Diagram-817c8e44-DEM7FJ4Q.min.js.map b/docs/public/c4Diagram-817c8e44-SGFOBFRD.min.js.map similarity index 100% rename from docs/public/c4Diagram-817c8e44-DEM7FJ4Q.min.js.map rename to docs/public/c4Diagram-817c8e44-SGFOBFRD.min.js.map diff --git a/docs/public/chunk-NV7BXRXJ.min.js b/docs/public/chunk-3RELVOUY.min.js similarity index 99% rename from docs/public/chunk-NV7BXRXJ.min.js rename to docs/public/chunk-3RELVOUY.min.js index a43f67af..236658b6 100644 --- a/docs/public/chunk-NV7BXRXJ.min.js +++ b/docs/public/chunk-3RELVOUY.min.js @@ -1,5 +1,5 @@ -import{b as Q}from"./chunk-ZMRDHQ6H.min.js";import{G as K,Ga as x,I as G,Ia as V,Ja as H,Za as W,h as E,jb as w,pb as A}from"./chunk-JUXSCBYR.min.js";var ct=(a,t,r,n)=>{t.forEach(e=>{ut[e](a,r,n)})},ht=(a,t,r)=>{x.trace("Making markers for ",r),a.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),a.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},ot=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).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")},ft=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).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")},pt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).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")},yt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),a.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},xt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},bt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},gt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},ut={extension:ht,composition:ot,aggregation:ft,dependency:pt,lollipop:yt,point:dt,circle:xt,cross:bt,barb:gt},rr=ct;function wt(a,t){t&&a.attr("style",t)}function mt(a){let t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),n=a.label,e=a.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),wt(r,a.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}var kt=(a,t,r,n)=>{let e=a||"";if(typeof e=="object"&&(e=e[0]),H(w().flowchart.htmlLabels)){e=e.replace(/\\n|\n/g,"
"),x.info("vertexText"+e);let i={isNode:n,label:A(e).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:t.replace("fill:","color:")};return mt(i)}else{let i=document.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof e=="string"?s=e.split(/\\n|\n|/gi):Array.isArray(e)?s=e:s=[];for(let l of s){let c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),r?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=l.trim(),i.appendChild(c)}return i}},I=kt,_=async(a,t,r,n)=>{let e,i=t.useHtmlLabels||H(w().flowchart.htmlLabels);r?e=r:e="node default";let s=a.insert("g").attr("class",e).attr("id",t.domId||t.id),l=s.insert("g").attr("class","label").attr("style",t.labelStyle),c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];let o=l.node(),h;t.labelType==="markdown"?h=Q(l,V(A(c),w()),{useHtmlLabels:i,width:t.width||w().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(I(V(A(c),w()),t.labelStyle,!1,n));let f=h.getBBox(),y=t.padding/2;if(H(w().flowchart.htmlLabels)){let p=h.children[0],u=E(h),k=p.getElementsByTagName("img");if(k){let g=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(d=>new Promise(b=>{function M(){if(d.style.display="flex",d.style.flexDirection="column",g){let C=w().fontSize?w().fontSize:window.getComputedStyle(document.body).fontSize,X=5;d.style.width=parseInt(C,10)*X+"px"}else d.style.width="100%";b(d)}setTimeout(()=>{d.complete&&M()}),d.addEventListener("error",M),d.addEventListener("load",M)})))}f=p.getBoundingClientRect(),u.attr("width",f.width),u.attr("height",f.height)}return i?l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):l.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:s,bbox:f,halfPadding:y,label:l}},v=(a,t)=>{let r=t.node().getBBox();a.width=r.width,a.height=r.height};function $(a,t,r,n){return a.insert("polygon",":first-child").attr("points",n.map(function(e){return e.x+","+e.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}function vt(a,t){return a.intersect(t)}function it(a,t,r,n){var e=a.x,i=a.y,s=e-n.x,l=i-n.y,c=Math.sqrt(t*t*l*l+r*r*s*s),o=Math.abs(t*r*s/c);n.x0}function Et(a,t,r){var n=a.x,e=a.y,i=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(u){s=Math.min(s,u.x),l=Math.min(l,u.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));for(var c=n-a.width/2-s,o=e-a.height/2-l,h=0;h1&&i.sort(function(u,k){var g=u.x-r.x,d=u.y-r.y,b=Math.sqrt(g*g+d*d),M=k.x-r.x,C=k.y-r.y,X=Math.sqrt(M*M+C*C);return b{var r=a.x,n=a.y,e=t.x-r,i=t.y-n,s=a.width/2,l=a.height/2,c,o;return Math.abs(i)*s>Math.abs(e)*l?(i<0&&(l=-l),c=i===0?0:l*e/i,o=l):(e<0&&(s=-s),c=s,o=e===0?0:s*i/e),{x:r+c,y:n+o}},Mt=Bt,m={node:vt,circle:Lt,ellipse:it,polygon:Et,rect:Mt},_t=async(a,t)=>{t.useHtmlLabels||w().flowchart.htmlLabels||(t.centerLabel=!0);let{shapeSvg:n,bbox:e,halfPadding:i}=await _(a,t,"node "+t.classes,!0);x.info("Classes = ",t.classes);let s=n.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2-i).attr("y",-e.height/2-i).attr("width",e.width+t.padding).attr("height",e.height+t.padding),v(t,s),t.intersect=function(l){return m.rect(t,l)},n},Ct=_t,tt=a=>a?" "+a:"",R=(a,t)=>`${t||"node default"}${tt(a.classes)} ${tt(a.class)}`,rt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=e+i,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];x.info("Question main (Circle)");let c=$(r,s,s,l);return c.attr("style",t.style),v(t,c),t.intersect=function(o){return x.warn("Intersect called"),m.polygon(t,l,o)},r},Tt=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=28,e=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",e.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return m.circle(t,14,s)},r},Rt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=4,i=n.height+t.padding,s=i/e,l=n.width+2*s+t.padding,c=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-i/2},{x:l-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}],o=$(r,l,i,c);return o.attr("style",t.style),v(t,o),t.intersect=function(h){return m.polygon(t,c,h)},r},It=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-i/2,y:0},{x:e,y:0},{x:e,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];return $(r,e,i,s).attr("style",t.style),t.width=e+i,t.height=i,t.intersect=function(c){return m.polygon(t,s,c)},r},Ht=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-2*i/6,y:0},{x:e-i/6,y:0},{x:e+2*i/6,y:-i},{x:i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Nt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:2*i/6,y:0},{x:e+i/6,y:0},{x:e-2*i/6,y:-i},{x:-i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},$t=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-2*i/6,y:0},{x:e+2*i/6,y:0},{x:e-i/6,y:-i},{x:i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Ot=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:i/6,y:0},{x:e-i/6,y:0},{x:e+2*i/6,y:-i},{x:-2*i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Xt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:0,y:0},{x:e+i/2,y:0},{x:e,y:-i/2},{x:e+i/2,y:-i},{x:0,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Yt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=e/2,s=i/(2.5+e/50),l=n.height+s+t.padding,c="M 0,"+s+" a "+i+","+s+" 0,0,0 "+e+" 0 a "+i+","+s+" 0,0,0 "+-e+" 0 l 0,"+l+" a "+i+","+s+" 0,0,0 "+e+" 0 l 0,"+-l,o=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-e/2+","+-(l/2+s)+")");return v(t,o),t.intersect=function(h){let f=m.rect(t,h),y=f.x-t.x;if(i!=0&&(Math.abs(y)t.height/2-s)){let p=s*s*(1-y*y/(i*i));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),f.y+=p}return f},r},Wt=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,"node "+t.classes+" "+t.class,!0),i=r.insert("rect",":first-child"),s=n.width+t.padding,l=n.height+t.padding;if(i.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",-n.width/2-e).attr("y",-n.height/2-e).attr("width",s).attr("height",l),t.props){let c=new Set(Object.keys(t.props));t.props.borders&&(nt(i,t.props.borders,s,l),c.delete("borders")),c.forEach(o=>{x.warn(`Unknown node property ${o}`)})}return v(t,i),t.intersect=function(c){return m.rect(t,c)},r},Dt=async(a,t)=>{let{shapeSvg:r}=await _(a,t,"label",!0);x.trace("Classes = ",t.class);let n=r.insert("rect",":first-child"),e=0,i=0;if(n.attr("width",e).attr("height",i),r.attr("class","label edgeLabel"),t.props){let s=new Set(Object.keys(t.props));t.props.borders&&(nt(n,t.props.borders,e,i),s.delete("borders")),s.forEach(l=>{x.warn(`Unknown node property ${l}`)})}return v(t,n),t.intersect=function(s){return m.rect(t,s)},r};function nt(a,t,r,n){let e=[],i=l=>{e.push(l,0)},s=l=>{e.push(0,l)};t.includes("t")?(x.debug("add top border"),i(r)):s(r),t.includes("r")?(x.debug("add right border"),i(n)):s(n),t.includes("b")?(x.debug("add bottom border"),i(r)):s(r),t.includes("l")?(x.debug("add left border"),i(n)):s(n),a.attr("stroke-dasharray",e.join(" "))}var jt=(a,t)=>{let r;t.classes?r="node "+t.classes:r="node default";let n=a.insert("g").attr("class",r).attr("id",t.domId||t.id),e=n.insert("rect",":first-child"),i=n.insert("line"),s=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText,c="";typeof l=="object"?c=l[0]:c=l,x.info("Label text abc79",c,l,typeof l=="object");let o=s.node().appendChild(I(c,t.labelStyle,!0,!0)),h={width:0,height:0};if(H(w().flowchart.htmlLabels)){let k=o.children[0],g=E(o);h=k.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}x.info("Text 2",l);let f=l.slice(1,l.length),y=o.getBBox(),p=s.node().appendChild(I(f.join?f.join("
"):f,t.labelStyle,!0,!0));if(H(w().flowchart.htmlLabels)){let k=p.children[0],g=E(p);h=k.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}let u=t.padding/2;return E(p).attr("transform","translate( "+(h.width>y.width?0:(y.width-h.width)/2)+", "+(y.height+u+5)+")"),E(o).attr("transform","translate( "+(h.width{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.height+t.padding,i=n.width+e/4+t.padding,s=r.insert("rect",":first-child").attr("style",t.style).attr("rx",e/2).attr("ry",e/2).attr("x",-i/2).attr("y",-e/2).attr("width",i).attr("height",e);return v(t,s),t.intersect=function(l){return m.rect(t,l)},r},Ut=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,R(t,void 0),!0),i=r.insert("circle",":first-child");return i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("Circle main"),v(t,i),t.intersect=function(s){return x.info("Circle intersect",t,n.width/2+e,s),m.circle(t,n.width/2+e,s)},r},zt=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,R(t,void 0),!0),i=5,s=r.insert("g",":first-child"),l=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e+i).attr("width",n.width+t.padding+i*2).attr("height",n.height+t.padding+i*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("DoubleCircle main"),v(t,l),t.intersect=function(o){return x.info("DoubleCircle intersect",t,n.width/2+e+i,o),m.circle(t,n.width/2+e+i,o)},r},Zt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:0,y:0},{x:e,y:0},{x:e,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:e+8,y:0},{x:e+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Ft=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),v(t,n),t.intersect=function(e){return m.circle(t,7,e)},r},at=(a,t,r)=>{let n=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),e=70,i=10;r==="LR"&&(e=10,i=70);let s=n.append("rect").attr("x",-1*e/2).attr("y",-1*i/2).attr("width",e).attr("height",i).attr("class","fork-join");return v(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return m.rect(t,l)},n},Jt=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child"),e=r.insert("circle",":first-child");return e.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),v(t,e),t.intersect=function(i){return m.circle(t,7,i)},r},Qt=(a,t)=>{let r=t.padding/2,n=4,e=8,i;t.classes?i="node "+t.classes:i="node default";let s=a.insert("g").attr("class",i).attr("id",t.domId||t.id),l=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line"),h=0,f=n,y=s.insert("g").attr("class","label"),p=0,u=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",g=y.node().appendChild(I(k,t.labelStyle,!0,!0)),d=g.getBBox();if(H(w().flowchart.htmlLabels)){let L=g.children[0],S=E(g);d=L.getBoundingClientRect(),S.attr("width",d.width),S.attr("height",d.height)}t.classData.annotations[0]&&(f+=d.height+n,h+=d.width);let b=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(w().flowchart.htmlLabels?b+="<"+t.classData.type+">":b+="<"+t.classData.type+">");let M=y.node().appendChild(I(b,t.labelStyle,!0,!0));E(M).attr("class","classTitle");let C=M.getBBox();if(H(w().flowchart.htmlLabels)){let L=M.children[0],S=E(M);C=L.getBoundingClientRect(),S.attr("width",C.width),S.attr("height",C.height)}f+=C.height+n,C.width>h&&(h=C.width);let X=[];t.classData.members.forEach(L=>{let S=L.getDisplayDetails(),Y=S.displayText;w().flowchart.htmlLabels&&(Y=Y.replace(//g,">"));let N=y.node().appendChild(I(Y,S.cssStyle?S.cssStyle:t.labelStyle,!0,!0)),T=N.getBBox();if(H(w().flowchart.htmlLabels)){let J=N.children[0],j=E(N);T=J.getBoundingClientRect(),j.attr("width",T.width),j.attr("height",T.height)}T.width>h&&(h=T.width),f+=T.height+n,X.push(N)}),f+=e;let q=[];if(t.classData.methods.forEach(L=>{let S=L.getDisplayDetails(),Y=S.displayText;w().flowchart.htmlLabels&&(Y=Y.replace(//g,">"));let N=y.node().appendChild(I(Y,S.cssStyle?S.cssStyle:t.labelStyle,!0,!0)),T=N.getBBox();if(H(w().flowchart.htmlLabels)){let J=N.children[0],j=E(N);T=J.getBoundingClientRect(),j.attr("width",T.width),j.attr("height",T.height)}T.width>h&&(h=T.width),f+=T.height+n,q.push(N)}),f+=e,u){let L=(h-d.width)/2;E(g).attr("transform","translate( "+(-1*h/2+L)+", "+-1*f/2+")"),p=d.height+n}let lt=(h-C.width)/2;return E(M).attr("transform","translate( "+(-1*h/2+lt)+", "+(-1*f/2+p)+")"),p+=C.height+n,c.attr("class","divider").attr("x1",-h/2-r).attr("x2",h/2+r).attr("y1",-f/2-r+e+p).attr("y2",-f/2-r+e+p),p+=e,X.forEach(L=>{E(L).attr("transform","translate( "+-h/2+", "+(-1*f/2+p+e/2)+")");let S=L?.getBBox();p+=(S?.height??0)+n}),p+=e,o.attr("class","divider").attr("x1",-h/2-r).attr("x2",h/2+r).attr("y1",-f/2-r+e+p).attr("y2",-f/2-r+e+p),p+=e,q.forEach(L=>{E(L).attr("transform","translate( "+-h/2+", "+(-1*f/2+p)+")");let S=L?.getBBox();p+=(S?.height??0)+n}),l.attr("class","outer title-state").attr("x",-h/2-r).attr("y",-(f/2)-r).attr("width",h+t.padding).attr("height",f+t.padding),v(t,l),t.intersect=function(L){return m.rect(t,L)},s},et={rhombus:rt,question:rt,rect:Wt,labelRect:Dt,rectWithTitle:jt,choice:Tt,circle:Ut,doublecircle:zt,stadium:At,hexagon:Rt,rect_left_inv_arrow:It,lean_right:Ht,lean_left:Nt,trapezoid:$t,inv_trapezoid:Ot,rect_right_inv_arrow:Xt,cylinder:Yt,start:Ft,end:Jt,note:Ct,subroutine:Zt,fork:at,join:at,class_box:Qt},D={},ar=async(a,t,r)=>{let n,e;if(t.link){let i;w().securityLevel==="sandbox"?i="_top":t.linkTarget&&(i=t.linkTarget||"_blank"),n=a.insert("svg:a").attr("xlink:href",t.link).attr("target",i),e=await et[t.shape](n,t,r)}else e=await et[t.shape](a,t,r),n=e;return t.tooltip&&e.attr("title",t.tooltip),t.class&&e.attr("class","node default "+t.class),D[t.id]=n,t.haveCallback&&D[t.id].attr("class",D[t.id].attr("class")+" clickable"),n},er=(a,t)=>{D[t.id]=a},sr=()=>{D={}},ir=a=>{let t=D[a.id];x.trace("Transforming node",a.diff,a,"translate("+(a.x-a.width/2-5)+", "+a.width/2+")");let r=8,n=a.diff||0;return a.clusterNode?t.attr("transform","translate("+(a.x+n-a.width/2)+", "+(a.y-a.height/2-r)+")"):t.attr("transform","translate("+a.x+", "+a.y+")"),n},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(a,t){a=Z(a),t=Z(t);let[r,n]=[a.x,a.y],[e,i]=[t.x,t.y],s=e-r,l=i-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Z=a=>Array.isArray(a)?{x:a[0],y:a[1]}:a,Vt=a=>({x:function(t,r,n){let e=0;if(r===0&&Object.hasOwn(O,a.arrowTypeStart)){let{angle:i,deltaX:s}=U(n[0],n[1]);e=O[a.arrowTypeStart]*Math.cos(i)*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(O,a.arrowTypeEnd)){let{angle:i,deltaX:s}=U(n[n.length-1],n[n.length-2]);e=O[a.arrowTypeEnd]*Math.cos(i)*(s>=0?1:-1)}return Z(t).x+e},y:function(t,r,n){let e=0;if(r===0&&Object.hasOwn(O,a.arrowTypeStart)){let{angle:i,deltaY:s}=U(n[0],n[1]);e=O[a.arrowTypeStart]*Math.abs(Math.sin(i))*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(O,a.arrowTypeEnd)){let{angle:i,deltaY:s}=U(n[n.length-1],n[n.length-2]);e=O[a.arrowTypeEnd]*Math.abs(Math.sin(i))*(s>=0?1:-1)}return Z(t).y+e}}),F={},B={},nr=()=>{F={},B={}},lr=(a,t)=>{let r=H(w().flowchart.htmlLabels),n=t.labelType==="markdown"?Q(a,t.label,{style:t.labelStyle,useHtmlLabels:r,addSvgBackground:!0}):I(t.label,t.labelStyle);x.info("abc82",t,t.labelType);let e=a.insert("g").attr("class","edgeLabel"),i=e.insert("g").attr("class","label");i.node().appendChild(n);let s=n.getBBox();if(r){let c=n.children[0],o=E(n);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),F[t.id]=e,t.width=s.width,t.height=s.height;let l;if(t.startLabelLeft){let c=I(t.startLabelLeft,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),B[t.id]||(B[t.id]={}),B[t.id].startLeft=o,z(l,t.startLabelLeft)}if(t.startLabelRight){let c=I(t.startLabelRight,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=o.node().appendChild(c),h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),B[t.id]||(B[t.id]={}),B[t.id].startRight=o,z(l,t.startLabelRight)}if(t.endLabelLeft){let c=I(t.endLabelLeft,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),B[t.id]||(B[t.id]={}),B[t.id].endLeft=o,z(l,t.endLabelLeft)}if(t.endLabelRight){let c=I(t.endLabelRight,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),B[t.id]||(B[t.id]={}),B[t.id].endRight=o,z(l,t.endLabelRight)}return n};function z(a,t){w().flowchart.htmlLabels&&a&&(a.style.width=t.length*9+"px",a.style.height="12px")}var cr=(a,t)=>{x.info("Moving label abc78 ",a.id,a.label,F[a.id]);let r=t.updatedPath?t.updatedPath:t.originalPath;if(a.label){let n=F[a.id],e=a.x,i=a.y;if(r){let s=W.calcLabelPosition(r);x.info("Moving label "+a.label+" from (",e,",",i,") to (",s.x,",",s.y,") abc78"),t.updatedPath&&(e=s.x,i=s.y)}n.attr("transform","translate("+e+", "+i+")")}if(a.startLabelLeft){let n=B[a.id].startLeft,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeStart?10:0,"start_left",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.startLabelRight){let n=B[a.id].startRight,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeStart?10:0,"start_right",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.endLabelLeft){let n=B[a.id].endLeft,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeEnd?10:0,"end_left",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.endLabelRight){let n=B[a.id].endRight,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeEnd?10:0,"end_right",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}},qt=(a,t)=>{let r=a.x,n=a.y,e=Math.abs(t.x-r),i=Math.abs(t.y-n),s=a.width/2,l=a.height/2;return e>=s||i>=l},Kt=(a,t,r)=>{x.warn(`intersection calc abc89: +import{b as Q}from"./chunk-DALFUHAB.min.js";import{G as K,Ga as x,I as G,Ia as V,Ja as H,Za as W,h as E,jb as w,pb as A}from"./chunk-YICCS3KT.min.js";var ct=(a,t,r,n)=>{t.forEach(e=>{ut[e](a,r,n)})},ht=(a,t,r)=>{x.trace("Making markers for ",r),a.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),a.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},ot=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).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")},ft=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).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")},pt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).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"),a.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).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")},yt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),a.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},xt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},bt=(a,t,r)=>{a.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),a.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},gt=(a,t,r)=>{a.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},ut={extension:ht,composition:ot,aggregation:ft,dependency:pt,lollipop:yt,point:dt,circle:xt,cross:bt,barb:gt},rr=ct;function wt(a,t){t&&a.attr("style",t)}function mt(a){let t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),n=a.label,e=a.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),wt(r,a.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}var kt=(a,t,r,n)=>{let e=a||"";if(typeof e=="object"&&(e=e[0]),H(w().flowchart.htmlLabels)){e=e.replace(/\\n|\n/g,"
"),x.info("vertexText"+e);let i={isNode:n,label:A(e).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:t.replace("fill:","color:")};return mt(i)}else{let i=document.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof e=="string"?s=e.split(/\\n|\n|/gi):Array.isArray(e)?s=e:s=[];for(let l of s){let c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),r?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=l.trim(),i.appendChild(c)}return i}},I=kt,_=async(a,t,r,n)=>{let e,i=t.useHtmlLabels||H(w().flowchart.htmlLabels);r?e=r:e="node default";let s=a.insert("g").attr("class",e).attr("id",t.domId||t.id),l=s.insert("g").attr("class","label").attr("style",t.labelStyle),c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];let o=l.node(),h;t.labelType==="markdown"?h=Q(l,V(A(c),w()),{useHtmlLabels:i,width:t.width||w().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(I(V(A(c),w()),t.labelStyle,!1,n));let f=h.getBBox(),y=t.padding/2;if(H(w().flowchart.htmlLabels)){let p=h.children[0],u=E(h),k=p.getElementsByTagName("img");if(k){let g=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(d=>new Promise(b=>{function M(){if(d.style.display="flex",d.style.flexDirection="column",g){let C=w().fontSize?w().fontSize:window.getComputedStyle(document.body).fontSize,X=5;d.style.width=parseInt(C,10)*X+"px"}else d.style.width="100%";b(d)}setTimeout(()=>{d.complete&&M()}),d.addEventListener("error",M),d.addEventListener("load",M)})))}f=p.getBoundingClientRect(),u.attr("width",f.width),u.attr("height",f.height)}return i?l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):l.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&l.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:s,bbox:f,halfPadding:y,label:l}},v=(a,t)=>{let r=t.node().getBBox();a.width=r.width,a.height=r.height};function $(a,t,r,n){return a.insert("polygon",":first-child").attr("points",n.map(function(e){return e.x+","+e.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}function vt(a,t){return a.intersect(t)}function it(a,t,r,n){var e=a.x,i=a.y,s=e-n.x,l=i-n.y,c=Math.sqrt(t*t*l*l+r*r*s*s),o=Math.abs(t*r*s/c);n.x0}function Et(a,t,r){var n=a.x,e=a.y,i=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(u){s=Math.min(s,u.x),l=Math.min(l,u.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));for(var c=n-a.width/2-s,o=e-a.height/2-l,h=0;h1&&i.sort(function(u,k){var g=u.x-r.x,d=u.y-r.y,b=Math.sqrt(g*g+d*d),M=k.x-r.x,C=k.y-r.y,X=Math.sqrt(M*M+C*C);return b{var r=a.x,n=a.y,e=t.x-r,i=t.y-n,s=a.width/2,l=a.height/2,c,o;return Math.abs(i)*s>Math.abs(e)*l?(i<0&&(l=-l),c=i===0?0:l*e/i,o=l):(e<0&&(s=-s),c=s,o=e===0?0:s*i/e),{x:r+c,y:n+o}},Mt=Bt,m={node:vt,circle:Lt,ellipse:it,polygon:Et,rect:Mt},_t=async(a,t)=>{t.useHtmlLabels||w().flowchart.htmlLabels||(t.centerLabel=!0);let{shapeSvg:n,bbox:e,halfPadding:i}=await _(a,t,"node "+t.classes,!0);x.info("Classes = ",t.classes);let s=n.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2-i).attr("y",-e.height/2-i).attr("width",e.width+t.padding).attr("height",e.height+t.padding),v(t,s),t.intersect=function(l){return m.rect(t,l)},n},Ct=_t,tt=a=>a?" "+a:"",R=(a,t)=>`${t||"node default"}${tt(a.classes)} ${tt(a.class)}`,rt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=e+i,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];x.info("Question main (Circle)");let c=$(r,s,s,l);return c.attr("style",t.style),v(t,c),t.intersect=function(o){return x.warn("Intersect called"),m.polygon(t,l,o)},r},Tt=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=28,e=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",e.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return m.circle(t,14,s)},r},Rt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=4,i=n.height+t.padding,s=i/e,l=n.width+2*s+t.padding,c=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-i/2},{x:l-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}],o=$(r,l,i,c);return o.attr("style",t.style),v(t,o),t.intersect=function(h){return m.polygon(t,c,h)},r},It=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-i/2,y:0},{x:e,y:0},{x:e,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];return $(r,e,i,s).attr("style",t.style),t.width=e+i,t.height=i,t.intersect=function(c){return m.polygon(t,s,c)},r},Ht=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-2*i/6,y:0},{x:e-i/6,y:0},{x:e+2*i/6,y:-i},{x:i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Nt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:2*i/6,y:0},{x:e+i/6,y:0},{x:e-2*i/6,y:-i},{x:-i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},$t=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:-2*i/6,y:0},{x:e+2*i/6,y:0},{x:e-i/6,y:-i},{x:i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Ot=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:i/6,y:0},{x:e-i/6,y:0},{x:e+2*i/6,y:-i},{x:-2*i/6,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Xt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:0,y:0},{x:e+i/2,y:0},{x:e,y:-i/2},{x:e+i/2,y:-i},{x:0,y:-i}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Yt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=e/2,s=i/(2.5+e/50),l=n.height+s+t.padding,c="M 0,"+s+" a "+i+","+s+" 0,0,0 "+e+" 0 a "+i+","+s+" 0,0,0 "+-e+" 0 l 0,"+l+" a "+i+","+s+" 0,0,0 "+e+" 0 l 0,"+-l,o=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-e/2+","+-(l/2+s)+")");return v(t,o),t.intersect=function(h){let f=m.rect(t,h),y=f.x-t.x;if(i!=0&&(Math.abs(y)t.height/2-s)){let p=s*s*(1-y*y/(i*i));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),f.y+=p}return f},r},Wt=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,"node "+t.classes+" "+t.class,!0),i=r.insert("rect",":first-child"),s=n.width+t.padding,l=n.height+t.padding;if(i.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",-n.width/2-e).attr("y",-n.height/2-e).attr("width",s).attr("height",l),t.props){let c=new Set(Object.keys(t.props));t.props.borders&&(nt(i,t.props.borders,s,l),c.delete("borders")),c.forEach(o=>{x.warn(`Unknown node property ${o}`)})}return v(t,i),t.intersect=function(c){return m.rect(t,c)},r},Dt=async(a,t)=>{let{shapeSvg:r}=await _(a,t,"label",!0);x.trace("Classes = ",t.class);let n=r.insert("rect",":first-child"),e=0,i=0;if(n.attr("width",e).attr("height",i),r.attr("class","label edgeLabel"),t.props){let s=new Set(Object.keys(t.props));t.props.borders&&(nt(n,t.props.borders,e,i),s.delete("borders")),s.forEach(l=>{x.warn(`Unknown node property ${l}`)})}return v(t,n),t.intersect=function(s){return m.rect(t,s)},r};function nt(a,t,r,n){let e=[],i=l=>{e.push(l,0)},s=l=>{e.push(0,l)};t.includes("t")?(x.debug("add top border"),i(r)):s(r),t.includes("r")?(x.debug("add right border"),i(n)):s(n),t.includes("b")?(x.debug("add bottom border"),i(r)):s(r),t.includes("l")?(x.debug("add left border"),i(n)):s(n),a.attr("stroke-dasharray",e.join(" "))}var jt=(a,t)=>{let r;t.classes?r="node "+t.classes:r="node default";let n=a.insert("g").attr("class",r).attr("id",t.domId||t.id),e=n.insert("rect",":first-child"),i=n.insert("line"),s=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText,c="";typeof l=="object"?c=l[0]:c=l,x.info("Label text abc79",c,l,typeof l=="object");let o=s.node().appendChild(I(c,t.labelStyle,!0,!0)),h={width:0,height:0};if(H(w().flowchart.htmlLabels)){let k=o.children[0],g=E(o);h=k.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}x.info("Text 2",l);let f=l.slice(1,l.length),y=o.getBBox(),p=s.node().appendChild(I(f.join?f.join("
"):f,t.labelStyle,!0,!0));if(H(w().flowchart.htmlLabels)){let k=p.children[0],g=E(p);h=k.getBoundingClientRect(),g.attr("width",h.width),g.attr("height",h.height)}let u=t.padding/2;return E(p).attr("transform","translate( "+(h.width>y.width?0:(y.width-h.width)/2)+", "+(y.height+u+5)+")"),E(o).attr("transform","translate( "+(h.width{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.height+t.padding,i=n.width+e/4+t.padding,s=r.insert("rect",":first-child").attr("style",t.style).attr("rx",e/2).attr("ry",e/2).attr("x",-i/2).attr("y",-e/2).attr("width",i).attr("height",e);return v(t,s),t.intersect=function(l){return m.rect(t,l)},r},Ut=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,R(t,void 0),!0),i=r.insert("circle",":first-child");return i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("Circle main"),v(t,i),t.intersect=function(s){return x.info("Circle intersect",t,n.width/2+e,s),m.circle(t,n.width/2+e,s)},r},zt=async(a,t)=>{let{shapeSvg:r,bbox:n,halfPadding:e}=await _(a,t,R(t,void 0),!0),i=5,s=r.insert("g",":first-child"),l=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e+i).attr("width",n.width+t.padding+i*2).attr("height",n.height+t.padding+i*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+e).attr("width",n.width+t.padding).attr("height",n.height+t.padding),x.info("DoubleCircle main"),v(t,l),t.intersect=function(o){return x.info("DoubleCircle intersect",t,n.width/2+e+i,o),m.circle(t,n.width/2+e+i,o)},r},Zt=async(a,t)=>{let{shapeSvg:r,bbox:n}=await _(a,t,R(t,void 0),!0),e=n.width+t.padding,i=n.height+t.padding,s=[{x:0,y:0},{x:e,y:0},{x:e,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:e+8,y:0},{x:e+8,y:-i},{x:-8,y:-i},{x:-8,y:0}],l=$(r,e,i,s);return l.attr("style",t.style),v(t,l),t.intersect=function(c){return m.polygon(t,s,c)},r},Ft=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),v(t,n),t.intersect=function(e){return m.circle(t,7,e)},r},at=(a,t,r)=>{let n=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),e=70,i=10;r==="LR"&&(e=10,i=70);let s=n.append("rect").attr("x",-1*e/2).attr("y",-1*i/2).attr("width",e).attr("height",i).attr("class","fork-join");return v(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return m.rect(t,l)},n},Jt=(a,t)=>{let r=a.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child"),e=r.insert("circle",":first-child");return e.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),v(t,e),t.intersect=function(i){return m.circle(t,7,i)},r},Qt=(a,t)=>{let r=t.padding/2,n=4,e=8,i;t.classes?i="node "+t.classes:i="node default";let s=a.insert("g").attr("class",i).attr("id",t.domId||t.id),l=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line"),h=0,f=n,y=s.insert("g").attr("class","label"),p=0,u=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",g=y.node().appendChild(I(k,t.labelStyle,!0,!0)),d=g.getBBox();if(H(w().flowchart.htmlLabels)){let L=g.children[0],S=E(g);d=L.getBoundingClientRect(),S.attr("width",d.width),S.attr("height",d.height)}t.classData.annotations[0]&&(f+=d.height+n,h+=d.width);let b=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(w().flowchart.htmlLabels?b+="<"+t.classData.type+">":b+="<"+t.classData.type+">");let M=y.node().appendChild(I(b,t.labelStyle,!0,!0));E(M).attr("class","classTitle");let C=M.getBBox();if(H(w().flowchart.htmlLabels)){let L=M.children[0],S=E(M);C=L.getBoundingClientRect(),S.attr("width",C.width),S.attr("height",C.height)}f+=C.height+n,C.width>h&&(h=C.width);let X=[];t.classData.members.forEach(L=>{let S=L.getDisplayDetails(),Y=S.displayText;w().flowchart.htmlLabels&&(Y=Y.replace(//g,">"));let N=y.node().appendChild(I(Y,S.cssStyle?S.cssStyle:t.labelStyle,!0,!0)),T=N.getBBox();if(H(w().flowchart.htmlLabels)){let J=N.children[0],j=E(N);T=J.getBoundingClientRect(),j.attr("width",T.width),j.attr("height",T.height)}T.width>h&&(h=T.width),f+=T.height+n,X.push(N)}),f+=e;let q=[];if(t.classData.methods.forEach(L=>{let S=L.getDisplayDetails(),Y=S.displayText;w().flowchart.htmlLabels&&(Y=Y.replace(//g,">"));let N=y.node().appendChild(I(Y,S.cssStyle?S.cssStyle:t.labelStyle,!0,!0)),T=N.getBBox();if(H(w().flowchart.htmlLabels)){let J=N.children[0],j=E(N);T=J.getBoundingClientRect(),j.attr("width",T.width),j.attr("height",T.height)}T.width>h&&(h=T.width),f+=T.height+n,q.push(N)}),f+=e,u){let L=(h-d.width)/2;E(g).attr("transform","translate( "+(-1*h/2+L)+", "+-1*f/2+")"),p=d.height+n}let lt=(h-C.width)/2;return E(M).attr("transform","translate( "+(-1*h/2+lt)+", "+(-1*f/2+p)+")"),p+=C.height+n,c.attr("class","divider").attr("x1",-h/2-r).attr("x2",h/2+r).attr("y1",-f/2-r+e+p).attr("y2",-f/2-r+e+p),p+=e,X.forEach(L=>{E(L).attr("transform","translate( "+-h/2+", "+(-1*f/2+p+e/2)+")");let S=L?.getBBox();p+=(S?.height??0)+n}),p+=e,o.attr("class","divider").attr("x1",-h/2-r).attr("x2",h/2+r).attr("y1",-f/2-r+e+p).attr("y2",-f/2-r+e+p),p+=e,q.forEach(L=>{E(L).attr("transform","translate( "+-h/2+", "+(-1*f/2+p)+")");let S=L?.getBBox();p+=(S?.height??0)+n}),l.attr("class","outer title-state").attr("x",-h/2-r).attr("y",-(f/2)-r).attr("width",h+t.padding).attr("height",f+t.padding),v(t,l),t.intersect=function(L){return m.rect(t,L)},s},et={rhombus:rt,question:rt,rect:Wt,labelRect:Dt,rectWithTitle:jt,choice:Tt,circle:Ut,doublecircle:zt,stadium:At,hexagon:Rt,rect_left_inv_arrow:It,lean_right:Ht,lean_left:Nt,trapezoid:$t,inv_trapezoid:Ot,rect_right_inv_arrow:Xt,cylinder:Yt,start:Ft,end:Jt,note:Ct,subroutine:Zt,fork:at,join:at,class_box:Qt},D={},ar=async(a,t,r)=>{let n,e;if(t.link){let i;w().securityLevel==="sandbox"?i="_top":t.linkTarget&&(i=t.linkTarget||"_blank"),n=a.insert("svg:a").attr("xlink:href",t.link).attr("target",i),e=await et[t.shape](n,t,r)}else e=await et[t.shape](a,t,r),n=e;return t.tooltip&&e.attr("title",t.tooltip),t.class&&e.attr("class","node default "+t.class),D[t.id]=n,t.haveCallback&&D[t.id].attr("class",D[t.id].attr("class")+" clickable"),n},er=(a,t)=>{D[t.id]=a},sr=()=>{D={}},ir=a=>{let t=D[a.id];x.trace("Transforming node",a.diff,a,"translate("+(a.x-a.width/2-5)+", "+a.width/2+")");let r=8,n=a.diff||0;return a.clusterNode?t.attr("transform","translate("+(a.x+n-a.width/2)+", "+(a.y-a.height/2-r)+")"):t.attr("transform","translate("+a.x+", "+a.y+")"),n},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(a,t){a=Z(a),t=Z(t);let[r,n]=[a.x,a.y],[e,i]=[t.x,t.y],s=e-r,l=i-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var Z=a=>Array.isArray(a)?{x:a[0],y:a[1]}:a,Vt=a=>({x:function(t,r,n){let e=0;if(r===0&&Object.hasOwn(O,a.arrowTypeStart)){let{angle:i,deltaX:s}=U(n[0],n[1]);e=O[a.arrowTypeStart]*Math.cos(i)*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(O,a.arrowTypeEnd)){let{angle:i,deltaX:s}=U(n[n.length-1],n[n.length-2]);e=O[a.arrowTypeEnd]*Math.cos(i)*(s>=0?1:-1)}return Z(t).x+e},y:function(t,r,n){let e=0;if(r===0&&Object.hasOwn(O,a.arrowTypeStart)){let{angle:i,deltaY:s}=U(n[0],n[1]);e=O[a.arrowTypeStart]*Math.abs(Math.sin(i))*(s>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(O,a.arrowTypeEnd)){let{angle:i,deltaY:s}=U(n[n.length-1],n[n.length-2]);e=O[a.arrowTypeEnd]*Math.abs(Math.sin(i))*(s>=0?1:-1)}return Z(t).y+e}}),F={},B={},nr=()=>{F={},B={}},lr=(a,t)=>{let r=H(w().flowchart.htmlLabels),n=t.labelType==="markdown"?Q(a,t.label,{style:t.labelStyle,useHtmlLabels:r,addSvgBackground:!0}):I(t.label,t.labelStyle);x.info("abc82",t,t.labelType);let e=a.insert("g").attr("class","edgeLabel"),i=e.insert("g").attr("class","label");i.node().appendChild(n);let s=n.getBBox();if(r){let c=n.children[0],o=E(n);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),F[t.id]=e,t.width=s.width,t.height=s.height;let l;if(t.startLabelLeft){let c=I(t.startLabelLeft,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),B[t.id]||(B[t.id]={}),B[t.id].startLeft=o,z(l,t.startLabelLeft)}if(t.startLabelRight){let c=I(t.startLabelRight,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=o.node().appendChild(c),h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),B[t.id]||(B[t.id]={}),B[t.id].startRight=o,z(l,t.startLabelRight)}if(t.endLabelLeft){let c=I(t.endLabelLeft,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),B[t.id]||(B[t.id]={}),B[t.id].endLeft=o,z(l,t.endLabelLeft)}if(t.endLabelRight){let c=I(t.endLabelRight,t.labelStyle),o=a.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");l=h.node().appendChild(c);let f=c.getBBox();h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),o.node().appendChild(c),B[t.id]||(B[t.id]={}),B[t.id].endRight=o,z(l,t.endLabelRight)}return n};function z(a,t){w().flowchart.htmlLabels&&a&&(a.style.width=t.length*9+"px",a.style.height="12px")}var cr=(a,t)=>{x.info("Moving label abc78 ",a.id,a.label,F[a.id]);let r=t.updatedPath?t.updatedPath:t.originalPath;if(a.label){let n=F[a.id],e=a.x,i=a.y;if(r){let s=W.calcLabelPosition(r);x.info("Moving label "+a.label+" from (",e,",",i,") to (",s.x,",",s.y,") abc78"),t.updatedPath&&(e=s.x,i=s.y)}n.attr("transform","translate("+e+", "+i+")")}if(a.startLabelLeft){let n=B[a.id].startLeft,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeStart?10:0,"start_left",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.startLabelRight){let n=B[a.id].startRight,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeStart?10:0,"start_right",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.endLabelLeft){let n=B[a.id].endLeft,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeEnd?10:0,"end_left",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}if(a.endLabelRight){let n=B[a.id].endRight,e=a.x,i=a.y;if(r){let s=W.calcTerminalLabelPosition(a.arrowTypeEnd?10:0,"end_right",r);e=s.x,i=s.y}n.attr("transform","translate("+e+", "+i+")")}},qt=(a,t)=>{let r=a.x,n=a.y,e=Math.abs(t.x-r),i=Math.abs(t.y-n),s=a.width/2,l=a.height/2;return e>=s||i>=l},Kt=(a,t,r)=>{x.warn(`intersection calc abc89: outsidePoint: ${JSON.stringify(t)} insidePoint : ${JSON.stringify(r)} node : x:${a.x} y:${a.y} w:${a.width} h:${a.height}`);let n=a.x,e=a.y,i=Math.abs(n-r.x),s=a.width/2,l=r.xMath.abs(n-t.x)*c){let f=r.y{x.warn("abc88 cutPathAtIntersect",a,t);let r=[],n=a[0],e=!1;return a.forEach(i=>{if(x.info("abc88 checking point",i,t),!qt(t,i)&&!e){let s=Kt(t,n,i);x.warn("abc88 inside",i,n,s),x.warn("abc88 intersection",s);let l=!1;r.forEach(c=>{l=l||c.x===s.x&&c.y===s.y}),r.some(c=>c.x===s.x&&c.y===s.y)?x.warn("abc88 no intersect",s,r):r.push(s),e=!0}else x.warn("abc88 outside",i,n),n=i,e||r.push(i)}),x.warn("abc88 returning points",r),r},hr=function(a,t,r,n,e,i,s){let l=r.points,c=!1,o=i.node(t.v);var h=i.node(t.w);x.info("abc88 InsertEdge: ",r),h.intersect&&o.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(o.intersect(l[0])),x.info("Last point",l[l.length-1],h,h.intersect(l[l.length-1])),l.push(h.intersect(l[l.length-1]))),r.toCluster&&(x.info("to cluster abc88",n[r.toCluster]),l=st(r.points,n[r.toCluster].node),c=!0),r.fromCluster&&(x.info("from cluster abc88",n[r.fromCluster]),l=st(l.reverse(),n[r.fromCluster].node).reverse(),c=!0);let f=l.filter(C=>!Number.isNaN(C.y)),y=G;r.curve&&(e==="graph"||e==="flowchart")&&(y=r.curve);let{x:p,y:u}=Vt(r),k=K().x(p).y(u).curve(y),g;switch(r.thickness){case"normal":g="edge-thickness-normal";break;case"thick":g="edge-thickness-thick";break;case"invisible":g="edge-thickness-thick";break;default:g=""}switch(r.pattern){case"solid":g+=" edge-pattern-solid";break;case"dotted":g+=" edge-pattern-dotted";break;case"dashed":g+=" edge-pattern-dashed";break}let d=a.append("path").attr("d",k(f)).attr("id",r.id).attr("class"," "+g+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";switch((w().flowchart.arrowMarkerAbsolute||w().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),x.info("arrowTypeStart",r.arrowTypeStart),x.info("arrowTypeEnd",r.arrowTypeEnd),r.arrowTypeStart){case"arrow_cross":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-crossStart)");break;case"arrow_point":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-pointStart)");break;case"arrow_barb":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-barbStart)");break;case"arrow_circle":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-circleStart)");break;case"aggregation":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-aggregationStart)");break;case"extension":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-extensionStart)");break;case"composition":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-compositionStart)");break;case"dependency":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-dependencyStart)");break;case"lollipop":d.attr("marker-start","url("+b+"#"+s+"_"+e+"-lollipopStart)");break}switch(r.arrowTypeEnd){case"arrow_cross":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-crossEnd)");break;case"arrow_point":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-pointEnd)");break;case"arrow_barb":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-barbEnd)");break;case"arrow_circle":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-circleEnd)");break;case"aggregation":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-aggregationEnd)");break;case"extension":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-extensionEnd)");break;case"composition":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-compositionEnd)");break;case"dependency":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-dependencyEnd)");break;case"lollipop":d.attr("marker-end","url("+b+"#"+s+"_"+e+"-lollipopEnd)");break}let M={};return c&&(M.updatedPath=l),M.originalPath=r.points,M};export{rr as a,I as b,_ as c,v as d,Mt as e,ar as f,er as g,sr as h,ir as i,Vt as j,nr as k,lr as l,cr as m,hr as n}; -//# sourceMappingURL=chunk-NV7BXRXJ.min.js.map +//# sourceMappingURL=chunk-3RELVOUY.min.js.map diff --git a/docs/public/chunk-NV7BXRXJ.min.js.map b/docs/public/chunk-3RELVOUY.min.js.map similarity index 100% rename from docs/public/chunk-NV7BXRXJ.min.js.map rename to docs/public/chunk-3RELVOUY.min.js.map diff --git a/docs/public/chunk-I7FFVXYK.min.js b/docs/public/chunk-CK25GZVZ.min.js similarity index 99% rename from docs/public/chunk-I7FFVXYK.min.js rename to docs/public/chunk-CK25GZVZ.min.js index adb17d46..cda3be9b 100644 --- a/docs/public/chunk-I7FFVXYK.min.js +++ b/docs/public/chunk-CK25GZVZ.min.js @@ -1,4 +1,4 @@ -import{Ga as k,La as F,Sa as vt,bb as At,cb as Lt,db as It,eb as Ot,fb as Nt,gb as Rt,hb as wt,jb as R}from"./chunk-JUXSCBYR.min.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],E=[1,15],u=[1,16],b=[1,17],T=[1,18],w=[1,30],j=[1,19],U=[1,20],z=[1,21],M=[1,22],H=[1,23],X=[1,25],K=[1,26],W=[1,27],J=[1,28],q=[1,29],Q=[1,32],Z=[1,33],tt=[1,34],et=[1,35],$=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],st=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",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",30:"NOTE_TEXT",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:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,B){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:let P=e[l-1];P.description=o.trimColon(e[l]),this.$=P;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:let ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var v=e[l],O=e[l-2].trim();if(e[l].match(":")){var it=e[l].split(":");v=it[0],O=[O,it[1]]}this.$={stmt:"state",id:v,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:E,16:u,18:b,21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(st,[2,40],{51:[1,51]}),t(st,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:w,50:$},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,20:[1,64],21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(st,[2,42]),t(st,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,20:[1,69],21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],B=this.table,l="",v=0,O=0,it=2,P=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(A.yy[dt]=this.yy[dt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Wt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Jt(){var D;return D=o.pop()||S.lex()||P,typeof D!="number"&&(D instanceof Array&&(o=D,D=o.pop()),D=n.symbols_[D]||D),D}for(var _,L,m,pt,N={},rt,x,Ct,nt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=Jt()),m=B[L]&&B[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";nt=[];for(rt in B[L])this.terminals_[rt]&&rt>it&&nt.push("'"+this.terminals_[rt]+"'");S.showPosition?St="Parse error on line "+(v+1)+`: +import{Ga as k,La as F,Sa as vt,bb as At,cb as Lt,db as It,eb as Ot,fb as Nt,gb as Rt,hb as wt,jb as R}from"./chunk-YICCS3KT.min.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],E=[1,15],u=[1,16],b=[1,17],T=[1,18],w=[1,30],j=[1,19],U=[1,20],z=[1,21],M=[1,22],H=[1,23],X=[1,25],K=[1,26],W=[1,27],J=[1,28],q=[1,29],Q=[1,32],Z=[1,33],tt=[1,34],et=[1,35],$=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],st=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",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",30:"NOTE_TEXT",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:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,B){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:let P=e[l-1];P.description=o.trimColon(e[l]),this.$=P;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:let ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var v=e[l],O=e[l-2].trim();if(e[l].match(":")){var it=e[l].split(":");v=it[0],O=[O,it[1]]}this.$={stmt:"state",id:v,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:E,16:u,18:b,21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(st,[2,40],{51:[1,51]}),t(st,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:w,50:$},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,20:[1,64],21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(st,[2,42]),t(st,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:E,16:u,18:b,20:[1,69],21:T,23:w,24:j,25:U,26:z,27:M,28:H,31:24,32:X,34:K,36:W,37:J,41:q,44:Q,45:Z,46:tt,47:et,50:$},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],B=this.table,l="",v=0,O=0,it=2,P=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(A.yy[dt]=this.yy[dt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Wt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Jt(){var D;return D=o.pop()||S.lex()||P,typeof D!="number"&&(D instanceof Array&&(o=D,D=o.pop()),D=n.symbols_[D]||D),D}for(var _,L,m,pt,N={},rt,x,Ct,nt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=Jt()),m=B[L]&&B[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";nt=[];for(rt in B[L])this.terminals_[rt]&&rt>it&&nt.push("'"+this.terminals_[rt]+"'");S.showPosition?St="Parse error on line "+(v+1)+`: `+S.showPosition()+` Expecting `+nt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(v+1)+": Unexpected "+(_==P?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:nt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,v=S.yylineno,yt=S.yylloc;break;case 2:if(x=this.productions_[m[1]][1],N.$=p[p.length-x],N._$={first_line:e[e.length-(x||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(x||1)].first_column,last_column:e[e.length-1].last_column},Wt&&(N._$.range=[e[e.length-(x||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,v,A.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;x&&(i=i.slice(0,-1*x*2),p=p.slice(0,-1*x),e=e.slice(0,-1*x)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=B[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Kt=function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||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 n=r.match(/(?:\r\n?|\n).*/g);return n?(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 n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=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),i.length-1&&(this.yylineno-=i.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:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),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(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+` @@ -205,4 +205,4 @@ g.stateGroup line { fill: ${t.textColor}; } `,Ae=be;export{De as a,Ce as b,_t as c,Ft as d,Et as e,te as f,ve as g,Ae as h}; -//# sourceMappingURL=chunk-I7FFVXYK.min.js.map +//# sourceMappingURL=chunk-CK25GZVZ.min.js.map diff --git a/docs/public/chunk-I7FFVXYK.min.js.map b/docs/public/chunk-CK25GZVZ.min.js.map similarity index 100% rename from docs/public/chunk-I7FFVXYK.min.js.map rename to docs/public/chunk-CK25GZVZ.min.js.map diff --git a/docs/public/chunk-NRFNOXYN.min.js b/docs/public/chunk-CXT7N4L6.min.js similarity index 99% rename from docs/public/chunk-NRFNOXYN.min.js rename to docs/public/chunk-CXT7N4L6.min.js index 9a8aea8c..464091fd 100644 --- a/docs/public/chunk-NRFNOXYN.min.js +++ b/docs/public/chunk-CXT7N4L6.min.js @@ -1,4 +1,4 @@ -import{Ga as we,Ia as Pe,Ka as te,La as S,Za as Be,bb as Ve,cb as Ge,db as Me,eb as Ue,fb as ze,gb as Ye,h as P,hb as Ke,jb as F}from"./chunk-JUXSCBYR.min.js";var _e=function(){var e=function(L,u,a,o){for(a=a||{},o=L.length;o--;a[L[o]]=u);return a},n=[1,16],r=[1,17],h=[1,18],l=[1,37],A=[1,38],g=[1,24],D=[1,22],B=[1,23],_=[1,29],re=[1,30],ae=[1,31],le=[1,32],ce=[1,33],oe=[1,34],he=[1,25],Ae=[1,26],pe=[1,27],fe=[1,28],d=[1,42],E=[1,39],C=[1,40],m=[1,41],k=[1,43],de=[1,9],c=[1,8,9],Y=[1,54],K=[1,55],j=[1,56],Q=[1,57],X=[1,58],Ee=[1,59],Ce=[1,60],q=[1,8,9,38],Le=[1,71],G=[1,8,9,12,13,21,36,38,41,58,59,60,61,62,63,64,69,71],W=[1,8,9,12,13,19,21,36,38,41,45,58,59,60,61,62,63,64,69,71,84,86,87,88,89],H=[13,84,86,87,88,89],M=[13,63,64,84,86,87,88,89],xe=[13,58,59,60,61,62,84,86,87,88,89],me=[1,90],be=[1,8,9,36,38,41],J=[1,8,9,21],ge={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,cssClassStatement:27,noteStatement:28,direction:29,acc_title:30,acc_title_value:31,acc_descr:32,acc_descr_value:33,acc_descr_multiline_value:34,namespaceIdentifier:35,STRUCT_START:36,classStatements:37,STRUCT_STOP:38,NAMESPACE:39,classIdentifier:40,STYLE_SEPARATOR:41,members:42,CLASS:43,ANNOTATION_START:44,ANNOTATION_END:45,MEMBER:46,SEPARATOR:47,relation:48,NOTE_FOR:49,noteText:50,NOTE:51,direction_tb:52,direction_bt:53,direction_rl:54,direction_lr:55,relationType:56,lineType:57,AGGREGATION:58,EXTENSION:59,COMPOSITION:60,DEPENDENCY:61,LOLLIPOP:62,LINE:63,DOTTED_LINE:64,CALLBACK:65,LINK:66,LINK_TARGET:67,CLICK:68,CALLBACK_NAME:69,CALLBACK_ARGS:70,HREF:71,CSSCLASS:72,commentToken:73,textToken:74,graphCodeTokens:75,textNoTagsToken:76,TAGSTART:77,TAGEND:78,"==":79,"--":80,PCT:81,DEFAULT:82,SPACE:83,MINUS:84,keywords:85,UNICODE_TEXT:86,NUM:87,ALPHA:88,BQUOTE_STR:89,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",30:"acc_title",31:"acc_title_value",32:"acc_descr",33:"acc_descr_value",34:"acc_descr_multiline_value",36:"STRUCT_START",38:"STRUCT_STOP",39:"NAMESPACE",41:"STYLE_SEPARATOR",43:"CLASS",44:"ANNOTATION_START",45:"ANNOTATION_END",46:"MEMBER",47:"SEPARATOR",49:"NOTE_FOR",51:"NOTE",52:"direction_tb",53:"direction_bt",54:"direction_rl",55:"direction_lr",58:"AGGREGATION",59:"EXTENSION",60:"COMPOSITION",61:"DEPENDENCY",62:"LOLLIPOP",63:"LINE",64:"DOTTED_LINE",65:"CALLBACK",66:"LINK",67:"LINK_TARGET",68:"CLICK",69:"CALLBACK_NAME",70:"CALLBACK_ARGS",71:"HREF",72:"CSSCLASS",75:"graphCodeTokens",77:"TAGSTART",78:"TAGEND",79:"==",80:"--",81:"PCT",82:"DEFAULT",83:"SPACE",84:"MINUS",85:"keywords",86:"UNICODE_TEXT",87:"NUM",88:"ALPHA",89:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[35,2],[37,1],[37,2],[37,3],[23,1],[23,3],[23,4],[23,6],[40,2],[40,3],[25,4],[42,1],[42,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[28,3],[28,2],[29,1],[29,1],[29,1],[29,1],[48,3],[48,2],[48,2],[48,1],[56,1],[56,1],[56,1],[56,1],[56,1],[57,1],[57,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[73,1],[73,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[76,1],[76,1],[76,1],[76,1],[16,1],[16,1],[16,1],[16,1],[18,1],[50,1]],performAction:function(u,a,o,i,p,t,U){var s=t.length-1;switch(p){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:i.addRelation(t[s]);break;case 17:t[s-1].title=i.cleanupLabel(t[s]),i.addRelation(t[s-1]);break;case 26:this.$=t[s].trim(),i.setAccTitle(this.$);break;case 27:case 28:this.$=t[s].trim(),i.setAccDescription(this.$);break;case 29:i.addClassesToNamespace(t[s-3],t[s-1]);break;case 30:i.addClassesToNamespace(t[s-4],t[s-1]);break;case 31:this.$=t[s],i.addNamespace(t[s]);break;case 32:this.$=[t[s]];break;case 33:this.$=[t[s-1]];break;case 34:t[s].unshift(t[s-2]),this.$=t[s];break;case 36:i.setCssClass(t[s-2],t[s]);break;case 37:i.addMembers(t[s-3],t[s-1]);break;case 38:i.setCssClass(t[s-5],t[s-3]),i.addMembers(t[s-5],t[s-1]);break;case 39:this.$=t[s],i.addClass(t[s]);break;case 40:this.$=t[s-1],i.addClass(t[s-1]),i.setClassLabel(t[s-1],t[s]);break;case 41:i.addAnnotation(t[s],t[s-2]);break;case 42:this.$=[t[s]];break;case 43:t[s].push(t[s-1]),this.$=t[s];break;case 44:break;case 45:i.addMember(t[s-1],i.cleanupLabel(t[s]));break;case 46:break;case 47:break;case 48:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 51:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 52:i.addNote(t[s],t[s-1]);break;case 53:i.addNote(t[s]);break;case 54:i.setDirection("TB");break;case 55:i.setDirection("BT");break;case 56:i.setDirection("RL");break;case 57:i.setDirection("LR");break;case 58:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 59:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 61:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 62:this.$=i.relationType.AGGREGATION;break;case 63:this.$=i.relationType.EXTENSION;break;case 64:this.$=i.relationType.COMPOSITION;break;case 65:this.$=i.relationType.DEPENDENCY;break;case 66:this.$=i.relationType.LOLLIPOP;break;case 67:this.$=i.lineType.LINE;break;case 68:this.$=i.lineType.DOTTED_LINE;break;case 69:case 75:this.$=t[s-2],i.setClickEvent(t[s-1],t[s]);break;case 70:case 76:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 71:this.$=t[s-2],i.setLink(t[s-1],t[s]);break;case 72:this.$=t[s-3],i.setLink(t[s-2],t[s-1],t[s]);break;case 73:this.$=t[s-3],i.setLink(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 74:this.$=t[s-4],i.setLink(t[s-3],t[s-2],t[s]),i.setTooltip(t[s-3],t[s-1]);break;case 77:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1],t[s]);break;case 78:this.$=t[s-4],i.setClickEvent(t[s-3],t[s-2],t[s-1]),i.setTooltip(t[s-3],t[s]);break;case 79:this.$=t[s-3],i.setLink(t[s-2],t[s]);break;case 80:this.$=t[s-4],i.setLink(t[s-3],t[s-1],t[s]);break;case 81:this.$=t[s-4],i.setLink(t[s-3],t[s-1]),i.setTooltip(t[s-3],t[s]);break;case 82:this.$=t[s-5],i.setLink(t[s-4],t[s-2],t[s]),i.setTooltip(t[s-4],t[s-1]);break;case 83:i.setCssClass(t[s-1],t[s]);break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:n,32:r,34:h,35:20,39:l,40:21,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(de,[2,5],{8:[1,44]}),{8:[1,45]},e(c,[2,16],{21:[1,46]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),{31:[1,47]},{33:[1,48]},e(c,[2,28]),e(c,[2,44],{48:49,56:52,57:53,13:[1,50],21:[1,51],58:Y,59:K,60:j,61:Q,62:X,63:Ee,64:Ce}),{36:[1,61]},e(q,[2,35],{36:[1,63],41:[1,62]}),e(c,[2,46]),e(c,[2,47]),{16:64,84:d,86:E,87:C,88:m},{16:35,17:65,18:36,84:d,86:E,87:C,88:m,89:k},{16:35,17:66,18:36,84:d,86:E,87:C,88:m,89:k},{16:35,17:67,18:36,84:d,86:E,87:C,88:m,89:k},{13:[1,68]},{16:35,17:69,18:36,84:d,86:E,87:C,88:m,89:k},{13:Le,50:70},e(c,[2,54]),e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(G,[2,11],{16:35,18:36,17:72,19:[1,73],84:d,86:E,87:C,88:m,89:k}),e(G,[2,12],{19:[1,74]}),{15:75,16:76,84:d,86:E,87:C,88:m},{16:35,17:77,18:36,84:d,86:E,87:C,88:m,89:k},e(W,[2,97]),e(W,[2,98]),e(W,[2,99]),e(W,[2,100]),e([1,8,9,12,13,19,21,36,38,41,58,59,60,61,62,63,64,69,71],[2,101]),e(de,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,17:19,35:20,40:21,16:35,18:36,5:78,30:n,32:r,34:h,39:l,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k}),{5:79,10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:n,32:r,34:h,35:20,39:l,40:21,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k},e(c,[2,17]),e(c,[2,26]),e(c,[2,27]),{13:[1,81],16:35,17:80,18:36,84:d,86:E,87:C,88:m,89:k},{48:82,56:52,57:53,58:Y,59:K,60:j,61:Q,62:X,63:Ee,64:Ce},e(c,[2,45]),{57:83,63:Ee,64:Ce},e(H,[2,61],{56:84,58:Y,59:K,60:j,61:Q,62:X}),e(M,[2,62]),e(M,[2,63]),e(M,[2,64]),e(M,[2,65]),e(M,[2,66]),e(xe,[2,67]),e(xe,[2,68]),{8:[1,86],23:87,37:85,40:21,43:A},{16:88,84:d,86:E,87:C,88:m},{42:89,46:me},{45:[1,91]},{13:[1,92]},{13:[1,93]},{69:[1,94],71:[1,95]},{16:96,84:d,86:E,87:C,88:m},{13:Le,50:97},e(c,[2,53]),e(c,[2,102]),e(G,[2,13]),e(G,[2,14]),e(G,[2,15]),{36:[2,31]},{15:98,16:76,36:[2,9],84:d,86:E,87:C,88:m},e(be,[2,39],{11:99,12:[1,100]}),e(de,[2,7]),{9:[1,101]},e(J,[2,48]),{16:35,17:102,18:36,84:d,86:E,87:C,88:m,89:k},{13:[1,104],16:35,17:103,18:36,84:d,86:E,87:C,88:m,89:k},e(H,[2,60],{56:105,58:Y,59:K,60:j,61:Q,62:X}),e(H,[2,59]),{38:[1,106]},{23:87,37:107,40:21,43:A},{8:[1,108],38:[2,32]},e(q,[2,36],{36:[1,109]}),{38:[1,110]},{38:[2,42],42:111,46:me},{16:35,17:112,18:36,84:d,86:E,87:C,88:m,89:k},e(c,[2,69],{13:[1,113]}),e(c,[2,71],{13:[1,115],67:[1,114]}),e(c,[2,75],{13:[1,116],70:[1,117]}),{13:[1,118]},e(c,[2,83]),e(c,[2,52]),{36:[2,10]},e(be,[2,40]),{13:[1,119]},{1:[2,4]},e(J,[2,50]),e(J,[2,49]),{16:35,17:120,18:36,84:d,86:E,87:C,88:m,89:k},e(H,[2,58]),e(c,[2,29]),{38:[1,121]},{23:87,37:122,38:[2,33],40:21,43:A},{42:123,46:me},e(q,[2,37]),{38:[2,43]},e(c,[2,41]),e(c,[2,70]),e(c,[2,72]),e(c,[2,73],{67:[1,124]}),e(c,[2,76]),e(c,[2,77],{13:[1,125]}),e(c,[2,79],{13:[1,127],67:[1,126]}),{14:[1,128]},e(J,[2,51]),e(c,[2,30]),{38:[2,34]},{38:[1,129]},e(c,[2,74]),e(c,[2,78]),e(c,[2,80]),e(c,[2,81],{67:[1,130]}),e(be,[2,8]),e(q,[2,38]),e(c,[2,82])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],75:[2,31],98:[2,10],101:[2,4],111:[2,43],122:[2,34]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var o=new Error(u);throw o.hash=a,o}},parse:function(u){var a=this,o=[0],i=[],p=[null],t=[],U=this.table,s="",Z=0,Ie=0,Ze=2,Oe=1,$e=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var Te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Te)&&(I.yy[Te]=this.yy[Te]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var Fe=b.yylloc;t.push(Fe);var et=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function tt(){var v;return v=i.pop()||b.lex()||Oe,typeof v!="number"&&(v instanceof Array&&(i=v,v=i.pop()),v=a.symbols_[v]||v),v}for(var T,O,y,ye,w={},$,N,Re,ee;;){if(O=o[o.length-1],this.defaultActions[O]?y=this.defaultActions[O]:((T===null||typeof T>"u")&&(T=tt()),y=U[O]&&U[O][T]),typeof y>"u"||!y.length||!y[0]){var De="";ee=[];for($ in U[O])this.terminals_[$]&&$>Ze&&ee.push("'"+this.terminals_[$]+"'");b.showPosition?De="Parse error on line "+(Z+1)+`: +import{Ga as we,Ia as Pe,Ka as te,La as S,Za as Be,bb as Ve,cb as Ge,db as Me,eb as Ue,fb as ze,gb as Ye,h as P,hb as Ke,jb as F}from"./chunk-YICCS3KT.min.js";var _e=function(){var e=function(L,u,a,o){for(a=a||{},o=L.length;o--;a[L[o]]=u);return a},n=[1,16],r=[1,17],h=[1,18],l=[1,37],A=[1,38],g=[1,24],D=[1,22],B=[1,23],_=[1,29],re=[1,30],ae=[1,31],le=[1,32],ce=[1,33],oe=[1,34],he=[1,25],Ae=[1,26],pe=[1,27],fe=[1,28],d=[1,42],E=[1,39],C=[1,40],m=[1,41],k=[1,43],de=[1,9],c=[1,8,9],Y=[1,54],K=[1,55],j=[1,56],Q=[1,57],X=[1,58],Ee=[1,59],Ce=[1,60],q=[1,8,9,38],Le=[1,71],G=[1,8,9,12,13,21,36,38,41,58,59,60,61,62,63,64,69,71],W=[1,8,9,12,13,19,21,36,38,41,45,58,59,60,61,62,63,64,69,71,84,86,87,88,89],H=[13,84,86,87,88,89],M=[13,63,64,84,86,87,88,89],xe=[13,58,59,60,61,62,84,86,87,88,89],me=[1,90],be=[1,8,9,36,38,41],J=[1,8,9,21],ge={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,cssClassStatement:27,noteStatement:28,direction:29,acc_title:30,acc_title_value:31,acc_descr:32,acc_descr_value:33,acc_descr_multiline_value:34,namespaceIdentifier:35,STRUCT_START:36,classStatements:37,STRUCT_STOP:38,NAMESPACE:39,classIdentifier:40,STYLE_SEPARATOR:41,members:42,CLASS:43,ANNOTATION_START:44,ANNOTATION_END:45,MEMBER:46,SEPARATOR:47,relation:48,NOTE_FOR:49,noteText:50,NOTE:51,direction_tb:52,direction_bt:53,direction_rl:54,direction_lr:55,relationType:56,lineType:57,AGGREGATION:58,EXTENSION:59,COMPOSITION:60,DEPENDENCY:61,LOLLIPOP:62,LINE:63,DOTTED_LINE:64,CALLBACK:65,LINK:66,LINK_TARGET:67,CLICK:68,CALLBACK_NAME:69,CALLBACK_ARGS:70,HREF:71,CSSCLASS:72,commentToken:73,textToken:74,graphCodeTokens:75,textNoTagsToken:76,TAGSTART:77,TAGEND:78,"==":79,"--":80,PCT:81,DEFAULT:82,SPACE:83,MINUS:84,keywords:85,UNICODE_TEXT:86,NUM:87,ALPHA:88,BQUOTE_STR:89,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",30:"acc_title",31:"acc_title_value",32:"acc_descr",33:"acc_descr_value",34:"acc_descr_multiline_value",36:"STRUCT_START",38:"STRUCT_STOP",39:"NAMESPACE",41:"STYLE_SEPARATOR",43:"CLASS",44:"ANNOTATION_START",45:"ANNOTATION_END",46:"MEMBER",47:"SEPARATOR",49:"NOTE_FOR",51:"NOTE",52:"direction_tb",53:"direction_bt",54:"direction_rl",55:"direction_lr",58:"AGGREGATION",59:"EXTENSION",60:"COMPOSITION",61:"DEPENDENCY",62:"LOLLIPOP",63:"LINE",64:"DOTTED_LINE",65:"CALLBACK",66:"LINK",67:"LINK_TARGET",68:"CLICK",69:"CALLBACK_NAME",70:"CALLBACK_ARGS",71:"HREF",72:"CSSCLASS",75:"graphCodeTokens",77:"TAGSTART",78:"TAGEND",79:"==",80:"--",81:"PCT",82:"DEFAULT",83:"SPACE",84:"MINUS",85:"keywords",86:"UNICODE_TEXT",87:"NUM",88:"ALPHA",89:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[35,2],[37,1],[37,2],[37,3],[23,1],[23,3],[23,4],[23,6],[40,2],[40,3],[25,4],[42,1],[42,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[28,3],[28,2],[29,1],[29,1],[29,1],[29,1],[48,3],[48,2],[48,2],[48,1],[56,1],[56,1],[56,1],[56,1],[56,1],[57,1],[57,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[73,1],[73,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[74,1],[76,1],[76,1],[76,1],[76,1],[16,1],[16,1],[16,1],[16,1],[18,1],[50,1]],performAction:function(u,a,o,i,p,t,U){var s=t.length-1;switch(p){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:i.addRelation(t[s]);break;case 17:t[s-1].title=i.cleanupLabel(t[s]),i.addRelation(t[s-1]);break;case 26:this.$=t[s].trim(),i.setAccTitle(this.$);break;case 27:case 28:this.$=t[s].trim(),i.setAccDescription(this.$);break;case 29:i.addClassesToNamespace(t[s-3],t[s-1]);break;case 30:i.addClassesToNamespace(t[s-4],t[s-1]);break;case 31:this.$=t[s],i.addNamespace(t[s]);break;case 32:this.$=[t[s]];break;case 33:this.$=[t[s-1]];break;case 34:t[s].unshift(t[s-2]),this.$=t[s];break;case 36:i.setCssClass(t[s-2],t[s]);break;case 37:i.addMembers(t[s-3],t[s-1]);break;case 38:i.setCssClass(t[s-5],t[s-3]),i.addMembers(t[s-5],t[s-1]);break;case 39:this.$=t[s],i.addClass(t[s]);break;case 40:this.$=t[s-1],i.addClass(t[s-1]),i.setClassLabel(t[s-1],t[s]);break;case 41:i.addAnnotation(t[s],t[s-2]);break;case 42:this.$=[t[s]];break;case 43:t[s].push(t[s-1]),this.$=t[s];break;case 44:break;case 45:i.addMember(t[s-1],i.cleanupLabel(t[s]));break;case 46:break;case 47:break;case 48:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 49:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 51:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 52:i.addNote(t[s],t[s-1]);break;case 53:i.addNote(t[s]);break;case 54:i.setDirection("TB");break;case 55:i.setDirection("BT");break;case 56:i.setDirection("RL");break;case 57:i.setDirection("LR");break;case 58:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 59:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 61:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 62:this.$=i.relationType.AGGREGATION;break;case 63:this.$=i.relationType.EXTENSION;break;case 64:this.$=i.relationType.COMPOSITION;break;case 65:this.$=i.relationType.DEPENDENCY;break;case 66:this.$=i.relationType.LOLLIPOP;break;case 67:this.$=i.lineType.LINE;break;case 68:this.$=i.lineType.DOTTED_LINE;break;case 69:case 75:this.$=t[s-2],i.setClickEvent(t[s-1],t[s]);break;case 70:case 76:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 71:this.$=t[s-2],i.setLink(t[s-1],t[s]);break;case 72:this.$=t[s-3],i.setLink(t[s-2],t[s-1],t[s]);break;case 73:this.$=t[s-3],i.setLink(t[s-2],t[s-1]),i.setTooltip(t[s-2],t[s]);break;case 74:this.$=t[s-4],i.setLink(t[s-3],t[s-2],t[s]),i.setTooltip(t[s-3],t[s-1]);break;case 77:this.$=t[s-3],i.setClickEvent(t[s-2],t[s-1],t[s]);break;case 78:this.$=t[s-4],i.setClickEvent(t[s-3],t[s-2],t[s-1]),i.setTooltip(t[s-3],t[s]);break;case 79:this.$=t[s-3],i.setLink(t[s-2],t[s]);break;case 80:this.$=t[s-4],i.setLink(t[s-3],t[s-1],t[s]);break;case 81:this.$=t[s-4],i.setLink(t[s-3],t[s-1]),i.setTooltip(t[s-3],t[s]);break;case 82:this.$=t[s-5],i.setLink(t[s-4],t[s-2],t[s]),i.setTooltip(t[s-4],t[s-1]);break;case 83:i.setCssClass(t[s-1],t[s]);break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:n,32:r,34:h,35:20,39:l,40:21,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(de,[2,5],{8:[1,44]}),{8:[1,45]},e(c,[2,16],{21:[1,46]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),{31:[1,47]},{33:[1,48]},e(c,[2,28]),e(c,[2,44],{48:49,56:52,57:53,13:[1,50],21:[1,51],58:Y,59:K,60:j,61:Q,62:X,63:Ee,64:Ce}),{36:[1,61]},e(q,[2,35],{36:[1,63],41:[1,62]}),e(c,[2,46]),e(c,[2,47]),{16:64,84:d,86:E,87:C,88:m},{16:35,17:65,18:36,84:d,86:E,87:C,88:m,89:k},{16:35,17:66,18:36,84:d,86:E,87:C,88:m,89:k},{16:35,17:67,18:36,84:d,86:E,87:C,88:m,89:k},{13:[1,68]},{16:35,17:69,18:36,84:d,86:E,87:C,88:m,89:k},{13:Le,50:70},e(c,[2,54]),e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(G,[2,11],{16:35,18:36,17:72,19:[1,73],84:d,86:E,87:C,88:m,89:k}),e(G,[2,12],{19:[1,74]}),{15:75,16:76,84:d,86:E,87:C,88:m},{16:35,17:77,18:36,84:d,86:E,87:C,88:m,89:k},e(W,[2,97]),e(W,[2,98]),e(W,[2,99]),e(W,[2,100]),e([1,8,9,12,13,19,21,36,38,41,58,59,60,61,62,63,64,69,71],[2,101]),e(de,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,17:19,35:20,40:21,16:35,18:36,5:78,30:n,32:r,34:h,39:l,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k}),{5:79,10:5,16:35,17:19,18:36,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:n,32:r,34:h,35:20,39:l,40:21,43:A,44:g,46:D,47:B,49:_,51:re,52:ae,53:le,54:ce,55:oe,65:he,66:Ae,68:pe,72:fe,84:d,86:E,87:C,88:m,89:k},e(c,[2,17]),e(c,[2,26]),e(c,[2,27]),{13:[1,81],16:35,17:80,18:36,84:d,86:E,87:C,88:m,89:k},{48:82,56:52,57:53,58:Y,59:K,60:j,61:Q,62:X,63:Ee,64:Ce},e(c,[2,45]),{57:83,63:Ee,64:Ce},e(H,[2,61],{56:84,58:Y,59:K,60:j,61:Q,62:X}),e(M,[2,62]),e(M,[2,63]),e(M,[2,64]),e(M,[2,65]),e(M,[2,66]),e(xe,[2,67]),e(xe,[2,68]),{8:[1,86],23:87,37:85,40:21,43:A},{16:88,84:d,86:E,87:C,88:m},{42:89,46:me},{45:[1,91]},{13:[1,92]},{13:[1,93]},{69:[1,94],71:[1,95]},{16:96,84:d,86:E,87:C,88:m},{13:Le,50:97},e(c,[2,53]),e(c,[2,102]),e(G,[2,13]),e(G,[2,14]),e(G,[2,15]),{36:[2,31]},{15:98,16:76,36:[2,9],84:d,86:E,87:C,88:m},e(be,[2,39],{11:99,12:[1,100]}),e(de,[2,7]),{9:[1,101]},e(J,[2,48]),{16:35,17:102,18:36,84:d,86:E,87:C,88:m,89:k},{13:[1,104],16:35,17:103,18:36,84:d,86:E,87:C,88:m,89:k},e(H,[2,60],{56:105,58:Y,59:K,60:j,61:Q,62:X}),e(H,[2,59]),{38:[1,106]},{23:87,37:107,40:21,43:A},{8:[1,108],38:[2,32]},e(q,[2,36],{36:[1,109]}),{38:[1,110]},{38:[2,42],42:111,46:me},{16:35,17:112,18:36,84:d,86:E,87:C,88:m,89:k},e(c,[2,69],{13:[1,113]}),e(c,[2,71],{13:[1,115],67:[1,114]}),e(c,[2,75],{13:[1,116],70:[1,117]}),{13:[1,118]},e(c,[2,83]),e(c,[2,52]),{36:[2,10]},e(be,[2,40]),{13:[1,119]},{1:[2,4]},e(J,[2,50]),e(J,[2,49]),{16:35,17:120,18:36,84:d,86:E,87:C,88:m,89:k},e(H,[2,58]),e(c,[2,29]),{38:[1,121]},{23:87,37:122,38:[2,33],40:21,43:A},{42:123,46:me},e(q,[2,37]),{38:[2,43]},e(c,[2,41]),e(c,[2,70]),e(c,[2,72]),e(c,[2,73],{67:[1,124]}),e(c,[2,76]),e(c,[2,77],{13:[1,125]}),e(c,[2,79],{13:[1,127],67:[1,126]}),{14:[1,128]},e(J,[2,51]),e(c,[2,30]),{38:[2,34]},{38:[1,129]},e(c,[2,74]),e(c,[2,78]),e(c,[2,80]),e(c,[2,81],{67:[1,130]}),e(be,[2,8]),e(q,[2,38]),e(c,[2,82])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],75:[2,31],98:[2,10],101:[2,4],111:[2,43],122:[2,34]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var o=new Error(u);throw o.hash=a,o}},parse:function(u){var a=this,o=[0],i=[],p=[null],t=[],U=this.table,s="",Z=0,Ie=0,Ze=2,Oe=1,$e=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var Te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Te)&&(I.yy[Te]=this.yy[Te]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var Fe=b.yylloc;t.push(Fe);var et=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function tt(){var v;return v=i.pop()||b.lex()||Oe,typeof v!="number"&&(v instanceof Array&&(i=v,v=i.pop()),v=a.symbols_[v]||v),v}for(var T,O,y,ye,w={},$,N,Re,ee;;){if(O=o[o.length-1],this.defaultActions[O]?y=this.defaultActions[O]:((T===null||typeof T>"u")&&(T=tt()),y=U[O]&&U[O][T]),typeof y>"u"||!y.length||!y[0]){var De="";ee=[];for($ in U[O])this.terminals_[$]&&$>Ze&&ee.push("'"+this.terminals_[$]+"'");b.showPosition?De="Parse error on line "+(Z+1)+`: `+b.showPosition()+` Expecting `+ee.join(", ")+", got '"+(this.terminals_[T]||T)+"'":De="Parse error on line "+(Z+1)+": Unexpected "+(T==Oe?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(De,{text:b.match,token:this.terminals_[T]||T,line:b.yylineno,loc:Fe,expected:ee})}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+T);switch(y[0]){case 1:o.push(T),p.push(b.yytext),t.push(b.yylloc),o.push(y[1]),T=null,Ie=b.yyleng,s=b.yytext,Z=b.yylineno,Fe=b.yylloc;break;case 2:if(N=this.productions_[y[1]][1],w.$=p[p.length-N],w._$={first_line:t[t.length-(N||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(N||1)].first_column,last_column:t[t.length-1].last_column},et&&(w._$.range=[t[t.length-(N||1)].range[0],t[t.length-1].range[1]]),ye=this.performAction.apply(w,[s,Ie,Z,I.yy,y[1],p,t].concat($e)),typeof ye<"u")return ye;N&&(o=o.slice(0,-1*N*2),p=p.slice(0,-1*N),t=t.slice(0,-1*N)),o.push(this.productions_[y[1]][0]),p.push(w.$),t.push(w._$),Re=U[o[o.length-2]][o[o.length-1]],o.push(Re);break;case 3:return!0}}return!0}},Je=function(){var L={EOF:1,parseError:function(a,o){if(this.yy.parser)this.yy.parser.parseError(a,o);else throw new Error(a)},setInput:function(u,a){return this.yy=a||this.yy||{},this._input=u,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 u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var a=u.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),u},unput:function(u){var a=u.length,o=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var i=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),o.length-1&&(this.yylineno-=o.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:o?(o.length===i.length?this.yylloc.first_column:0)+i[i.length-o.length].length-o[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[p[0],p[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(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),a=new Array(u.length+1).join("-");return u+this.upcomingInput()+` @@ -157,4 +157,4 @@ g.classGroup line { fill: ${e.textColor}; } `,xt=_t;export{vt as a,Lt as b,xt as c}; -//# sourceMappingURL=chunk-NRFNOXYN.min.js.map +//# sourceMappingURL=chunk-CXT7N4L6.min.js.map diff --git a/docs/public/chunk-NRFNOXYN.min.js.map b/docs/public/chunk-CXT7N4L6.min.js.map similarity index 100% rename from docs/public/chunk-NRFNOXYN.min.js.map rename to docs/public/chunk-CXT7N4L6.min.js.map diff --git a/docs/public/chunk-ZMRDHQ6H.min.js b/docs/public/chunk-DALFUHAB.min.js similarity index 51% rename from docs/public/chunk-ZMRDHQ6H.min.js rename to docs/public/chunk-DALFUHAB.min.js index 3083634f..776e8663 100644 --- a/docs/public/chunk-ZMRDHQ6H.min.js +++ b/docs/public/chunk-DALFUHAB.min.js @@ -1,8 +1,8 @@ -import{Ga as gt,a as xt,pb as dt}from"./chunk-JUXSCBYR.min.js";import{c as ue}from"./chunk-P42HNYSU.min.js";var ae={};function Un(n,r){let t=r||ae,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return yt(n,e,u)}function yt(n,r,t){if(oe(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return kt(n.children,r,t)}return Array.isArray(n)?kt(n,r,t):""}function kt(n,r,t){let e=[],u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)i=Array.from(e),i.unshift(r,t),[].splice.apply(n,i);else for(t&&[].splice.apply(n,[r,t]);a0?(Z(n,n.length,0,r),n):r}var bt={}.hasOwnProperty;function St(n){let r={},t=-1;for(;++ti))return;let j=r.events.length,H=j,M,Q;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(M){Q=r.events[H][1].end;break}M=!0}for(b(e),d=j;dw;){let _=t[P];r.containerState=_[1],_[0].exit.call(r,n)}t.length=w}function R(){u.write([null]),a=void 0,u=void 0,r.containerState._closeFlow=void 0}}function me(n,r,t){return C(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Zn(n){if(n===null||V(n)||Ct(n))return 1;if(At(n))return 2}function yn(n,r,t){let e=[],u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;let y=Object.assign({},n[e][1].end),h=Object.assign({},n[t][1].start);Lt(y,-p),Lt(h,p),i={type:p>1?"strongSequence":"emphasisSequence",start:y,end:Object.assign({},n[e][1].end)},o={type:p>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:h},a={type:p>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:p>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},n[e][1].end=Object.assign({},i.start),n[t][1].start=Object.assign({},o.end),m=[],n[e][1].end.offset-n[e][1].start.offset&&(m=J(m,[["enter",n[e][1],r],["exit",n[e][1],r]])),m=J(m,[["enter",u,r],["enter",i,r],["exit",i,r],["enter",a,r]]),m=J(m,yn(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),m=J(m,[["exit",a,r],["enter",o,r],["exit",o,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(c=2,m=J(m,[["enter",n[t][1],r],["exit",n[t][1],r]])):c=0,Z(n,e-1,t-e+3,m),t=e+m.length-c-2;break}}for(t=-1;++t=4?i(m):t(m)}function i(m){return m===null?p(m):S(m)?n.attempt(we,i,p)(m):(n.enter("codeFlowValue"),o(m))}function o(m){return m===null||S(m)?(n.exit("codeFlowValue"),i(m)):(n.consume(m),o)}function p(m){return n.exit("codeIndented"),r(m)}}function Ce(n,r,t){let e=this;return u;function u(i){return e.parser.lazy[e.now().line]?t(i):S(i)?(n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),u):C(n,a,"linePrefix",4+1)(i)}function a(i){let o=e.events[e.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?r(i):S(i)?u(i):t(i)}}var Gn={name:"codeText",tokenize:Ie,resolve:Ae,previous:ze};function Ae(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(i):n.interrupt(e.parser.constructs.flow,t,r)(i)}}function Rn(n,r,t,e,u,a,i,o,p){let m=p||Number.POSITIVE_INFINITY,c=0;return y;function y(b){return b===60?(n.enter(e),n.enter(u),n.enter(a),n.consume(b),n.exit(a),h):b===null||b===41||In(b)?t(b):(n.enter(e),n.enter(i),n.enter(o),n.enter("chunkString",{contentType:"string"}),L(b))}function h(b){return b===62?(n.enter(a),n.consume(b),n.exit(a),n.exit(u),n.exit(e),r):(n.enter(o),n.enter("chunkString",{contentType:"string"}),x(b))}function x(b){return b===62?(n.exit("chunkString"),n.exit(o),h(b)):b===null||b===60||S(b)?t(b):(n.consume(b),b===92?g:x)}function g(b){return b===60||b===62||b===92?(n.consume(b),x):x(b)}function L(b){return b===40?++c>m?t(b):(n.consume(b),L):b===41?c--?(n.consume(b),L):(n.exit("chunkString"),n.exit(o),n.exit(i),n.exit(e),r(b)):b===null||V(b)?c?t(b):(n.exit("chunkString"),n.exit(o),n.exit(i),n.exit(e),r(b)):In(b)?t(b):(n.consume(b),b===92?O:L)}function O(b){return b===40||b===41||b===92?(n.consume(b),L):L(b)}}function jn(n,r,t,e,u,a){let i=this,o=0,p;return m;function m(x){return n.enter(e),n.enter(u),n.consume(x),n.exit(u),n.enter(a),c}function c(x){return x===null||x===91||x===93&&!p||x===94&&!o&&"_hiddenFootnoteSupport"in i.parser.constructs||o>999?t(x):x===93?(n.exit(a),n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):S(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),c):(n.enter("chunkString",{contentType:"string"}),y(x))}function y(x){return x===null||x===91||x===93||S(x)||o++>999?(n.exit("chunkString"),c(x)):(n.consume(x),p=p||!I(x),x===92?h:y)}function h(x){return x===91||x===92||x===93?(n.consume(x),o++,y):y(x)}}function qn(n,r,t,e,u,a){let i;return o;function o(h){return n.enter(e),n.enter(u),n.consume(h),n.exit(u),i=h===40?41:h,p}function p(h){return h===i?(n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):(n.enter(a),m(h))}function m(h){return h===i?(n.exit(a),p(i)):h===null?t(h):S(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),C(n,m,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===i||h===null||S(h)?(n.exit("chunkString"),m(h)):(n.consume(h),h===92?y:c)}function y(h){return h===i||h===92?(n.consume(h),c):c(h)}}function fn(n,r){let t;return e;function e(u){return S(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):I(u)?C(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function on(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Kn={name:"definition",tokenize:_e},Pe={tokenize:Me,partial:!0};function _e(n,r,t){let e=this,u;return a;function a(p){return n.enter("definition"),jn.call(e,n,i,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function i(p){return u=on(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),p===58?(n.enter("definitionMarker"),n.consume(p),n.exit("definitionMarker"),fn(n,Rn(n,n.attempt(Pe,C(n,o,"whitespace"),C(n,o,"whitespace")),t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):t(p)}function o(p){return p===null||S(p)?(n.exit("definition"),e.parser.defined.includes(u)||e.parser.defined.push(u),r(p)):t(p)}}function Me(n,r,t){return e;function e(i){return V(i)?fn(n,u)(i):t(i)}function u(i){return i===34||i===39||i===40?qn(n,C(n,a,"whitespace"),t,"definitionTitle","definitionTitleMarker","definitionTitleString")(i):t(i)}function a(i){return i===null||S(i)?r(i):t(i)}}var Xn={name:"hardBreakEscape",tokenize:Re};function Re(n,r,t){return e;function e(a){return n.enter("hardBreakEscape"),n.enter("escapeMarker"),n.consume(a),u}function u(a){return S(a)?(n.exit("escapeMarker"),n.exit("hardBreakEscape"),r(a)):t(a)}}var vn={name:"headingAtx",tokenize:qe,resolve:je};function je(n,r){let t=n.length-2,e=3,u,a;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},a={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},Z(n,e,t-e+1,[["enter",u,r],["enter",a,r],["exit",a,r],["exit",u,r]])),n}function qe(n,r,t){let e=this,u=0;return a;function a(c){return n.enter("atxHeading"),n.enter("atxHeadingSequence"),i(c)}function i(c){return c===35&&u++<6?(n.consume(c),i):c===null||V(c)?(n.exit("atxHeadingSequence"),e.interrupt?r(c):o(c)):t(c)}function o(c){return c===35?(n.enter("atxHeadingSequence"),p(c)):c===null||S(c)?(n.exit("atxHeading"),r(c)):I(c)?C(n,o,"whitespace")(c):(n.enter("atxHeadingText"),m(c))}function p(c){return c===35?(n.consume(c),p):(n.exit("atxHeadingSequence"),o(c))}function m(c){return c===null||c===35||V(c)?(n.exit("atxHeadingText"),o(c)):(n.consume(c),m)}}var Ot=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],nt=["pre","script","style","textarea"];var tt={name:"htmlFlow",tokenize:Ve,resolveTo:Ne,concrete:!0},He={tokenize:We,partial:!0};function Ne(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Ve(n,r,t){let e=this,u,a,i,o,p;return m;function m(l){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(l),c}function c(l){return l===33?(n.consume(l),y):l===47?(n.consume(l),g):l===63?(n.consume(l),u=3,e.interrupt?r:G):v(l)?(n.consume(l),i=String.fromCharCode(l),a=!0,L):t(l)}function y(l){return l===45?(n.consume(l),u=2,h):l===91?(n.consume(l),u=5,i="CDATA[",o=0,x):v(l)?(n.consume(l),u=4,e.interrupt?r:G):t(l)}function h(l){return l===45?(n.consume(l),e.interrupt?r:G):t(l)}function x(l){return l===i.charCodeAt(o++)?(n.consume(l),o===i.length?e.interrupt?r:A:x):t(l)}function g(l){return v(l)?(n.consume(l),i=String.fromCharCode(l),L):t(l)}function L(l){return l===null||l===47||l===62||V(l)?l!==47&&a&&nt.includes(i.toLowerCase())?(u=1,e.interrupt?r(l):A(l)):Ot.includes(i.toLowerCase())?(u=6,l===47?(n.consume(l),O):e.interrupt?r(l):A(l)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(l):a?R(l):b(l)):l===45||K(l)?(n.consume(l),i+=String.fromCharCode(l),L):t(l)}function O(l){return l===62?(n.consume(l),e.interrupt?r:A):t(l)}function b(l){return I(l)?(n.consume(l),b):M(l)}function R(l){return l===47?(n.consume(l),M):l===58||l===95||v(l)?(n.consume(l),w):I(l)?(n.consume(l),R):M(l)}function w(l){return l===45||l===46||l===58||l===95||K(l)?(n.consume(l),w):P(l)}function P(l){return l===61?(n.consume(l),_):I(l)?(n.consume(l),P):R(l)}function _(l){return l===null||l===60||l===61||l===62||l===96?t(l):l===34||l===39?(n.consume(l),p=l,d):I(l)?(n.consume(l),_):(p=null,j(l))}function d(l){return l===null||S(l)?t(l):l===p?(n.consume(l),H):(n.consume(l),d)}function j(l){return l===null||l===34||l===39||l===60||l===61||l===62||l===96||V(l)?P(l):(n.consume(l),j)}function H(l){return l===47||l===62||I(l)?R(l):t(l)}function M(l){return l===62?(n.consume(l),Q):t(l)}function Q(l){return I(l)?(n.consume(l),Q):l===null||S(l)?A(l):t(l)}function A(l){return l===45&&u===2?(n.consume(l),U):l===60&&u===1?(n.consume(l),X):l===62&&u===4?(n.consume(l),N):l===63&&u===3?(n.consume(l),G):l===93&&u===5?(n.consume(l),W):S(l)&&(u===6||u===7)?n.check(He,N,D)(l):l===null||S(l)?D(l):(n.consume(l),A)}function D(l){return n.exit("htmlFlowData"),E(l)}function E(l){return l===null?s(l):S(l)?n.attempt({tokenize:z,partial:!0},E,s)(l):(n.enter("htmlFlowData"),A(l))}function z(l,En,mn){return dn;function dn(en){return l.enter("lineEnding"),l.consume(en),l.exit("lineEnding"),wn}function wn(en){return e.parser.lazy[e.now().line]?mn(en):En(en)}}function U(l){return l===45?(n.consume(l),G):A(l)}function X(l){return l===47?(n.consume(l),i="",nn):A(l)}function nn(l){return l===62&&nt.includes(i.toLowerCase())?(n.consume(l),N):v(l)&&i.length<8?(n.consume(l),i+=String.fromCharCode(l),nn):A(l)}function W(l){return l===93?(n.consume(l),G):A(l)}function G(l){return l===62?(n.consume(l),N):l===45&&u===2?(n.consume(l),G):A(l)}function N(l){return l===null||S(l)?(n.exit("htmlFlowData"),s(l)):(n.consume(l),N)}function s(l){return n.exit("htmlFlow"),r(l)}}function We(n,r,t){return e;function e(u){return n.exit("htmlFlowData"),n.enter("lineEndingBlank"),n.consume(u),n.exit("lineEndingBlank"),n.attempt(cn,r,t)}}var et={name:"htmlText",tokenize:Qe};function Qe(n,r,t){let e=this,u,a,i,o;return p;function p(s){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(s),m}function m(s){return s===33?(n.consume(s),c):s===47?(n.consume(s),j):s===63?(n.consume(s),_):v(s)?(n.consume(s),Q):t(s)}function c(s){return s===45?(n.consume(s),y):s===91?(n.consume(s),a="CDATA[",i=0,O):v(s)?(n.consume(s),P):t(s)}function y(s){return s===45?(n.consume(s),h):t(s)}function h(s){return s===null||s===62?t(s):s===45?(n.consume(s),x):g(s)}function x(s){return s===null||s===62?t(s):g(s)}function g(s){return s===null?t(s):s===45?(n.consume(s),L):S(s)?(o=g,W(s)):(n.consume(s),g)}function L(s){return s===45?(n.consume(s),N):g(s)}function O(s){return s===a.charCodeAt(i++)?(n.consume(s),i===a.length?b:O):t(s)}function b(s){return s===null?t(s):s===93?(n.consume(s),R):S(s)?(o=b,W(s)):(n.consume(s),b)}function R(s){return s===93?(n.consume(s),w):b(s)}function w(s){return s===62?N(s):s===93?(n.consume(s),w):b(s)}function P(s){return s===null||s===62?N(s):S(s)?(o=P,W(s)):(n.consume(s),P)}function _(s){return s===null?t(s):s===63?(n.consume(s),d):S(s)?(o=_,W(s)):(n.consume(s),_)}function d(s){return s===62?N(s):_(s)}function j(s){return v(s)?(n.consume(s),H):t(s)}function H(s){return s===45||K(s)?(n.consume(s),H):M(s)}function M(s){return S(s)?(o=M,W(s)):I(s)?(n.consume(s),M):N(s)}function Q(s){return s===45||K(s)?(n.consume(s),Q):s===47||s===62||V(s)?A(s):t(s)}function A(s){return s===47?(n.consume(s),N):s===58||s===95||v(s)?(n.consume(s),D):S(s)?(o=A,W(s)):I(s)?(n.consume(s),A):N(s)}function D(s){return s===45||s===46||s===58||s===95||K(s)?(n.consume(s),D):E(s)}function E(s){return s===61?(n.consume(s),z):S(s)?(o=E,W(s)):I(s)?(n.consume(s),E):A(s)}function z(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),u=s,U):S(s)?(o=z,W(s)):I(s)?(n.consume(s),z):(n.consume(s),u=void 0,nn)}function U(s){return s===u?(n.consume(s),X):s===null?t(s):S(s)?(o=U,W(s)):(n.consume(s),U)}function X(s){return s===62||s===47||V(s)?A(s):t(s)}function nn(s){return s===null||s===34||s===39||s===60||s===61||s===96?t(s):s===62||V(s)?A(s):(n.consume(s),nn)}function W(s){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),C(n,G,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function G(s){return n.enter("htmlTextData"),o(s)}function N(s){return s===62?(n.consume(s),n.exit("htmlTextData"),n.exit("htmlText"),r):t(s)}}var xn={name:"labelEnd",tokenize:Je,resolveTo:Ge,resolveAll:Ye},Ue={tokenize:Ke},$e={tokenize:Xe},Ze={tokenize:ve};function Ye(n){let r=-1,t;for(;++r-1&&(i[0]=i[0].slice(e)),a>0&&i.push(n[u].slice(0,a))),i}function gr(n,r){let t=-1,e=[],u;for(;++tu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)i=Array.from(e),i.unshift(r,t),[].splice.apply(n,i);else for(t&&[].splice.apply(n,[r,t]);a0?(Z(n,n.length,0,r),n):r}var bt={}.hasOwnProperty;function St(n){let r={},t=-1;for(;++ti))return;let j=r.events.length,H=j,M,Q;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(M){Q=r.events[H][1].end;break}M=!0}for(b(e),d=j;dw;){let _=t[P];r.containerState=_[1],_[0].exit.call(r,n)}t.length=w}function R(){u.write([null]),a=void 0,u=void 0,r.containerState._closeFlow=void 0}}function me(n,r,t){return C(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Zn(n){if(n===null||V(n)||Ct(n))return 1;if(At(n))return 2}function yn(n,r,t){let e=[],u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;let y=Object.assign({},n[e][1].end),h=Object.assign({},n[t][1].start);Lt(y,-p),Lt(h,p),i={type:p>1?"strongSequence":"emphasisSequence",start:y,end:Object.assign({},n[e][1].end)},o={type:p>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:h},a={type:p>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:p>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},o.end)},n[e][1].end=Object.assign({},i.start),n[t][1].start=Object.assign({},o.end),m=[],n[e][1].end.offset-n[e][1].start.offset&&(m=J(m,[["enter",n[e][1],r],["exit",n[e][1],r]])),m=J(m,[["enter",u,r],["enter",i,r],["exit",i,r],["enter",a,r]]),m=J(m,yn(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),m=J(m,[["exit",a,r],["enter",o,r],["exit",o,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(c=2,m=J(m,[["enter",n[t][1],r],["exit",n[t][1],r]])):c=0,Z(n,e-1,t-e+3,m),t=e+m.length-c-2;break}}for(t=-1;++t=4?i(m):t(m)}function i(m){return m===null?p(m):S(m)?n.attempt(we,i,p)(m):(n.enter("codeFlowValue"),o(m))}function o(m){return m===null||S(m)?(n.exit("codeFlowValue"),i(m)):(n.consume(m),o)}function p(m){return n.exit("codeIndented"),r(m)}}function Ce(n,r,t){let e=this;return u;function u(i){return e.parser.lazy[e.now().line]?t(i):S(i)?(n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),u):C(n,a,"linePrefix",5)(i)}function a(i){let o=e.events[e.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?r(i):S(i)?u(i):t(i)}}var Gn={name:"codeText",tokenize:Ie,resolve:Ae,previous:ze};function Ae(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(i):n.interrupt(e.parser.constructs.flow,t,r)(i)}}function Rn(n,r,t,e,u,a,i,o,p){let m=p||Number.POSITIVE_INFINITY,c=0;return y;function y(b){return b===60?(n.enter(e),n.enter(u),n.enter(a),n.consume(b),n.exit(a),h):b===null||b===41||In(b)?t(b):(n.enter(e),n.enter(i),n.enter(o),n.enter("chunkString",{contentType:"string"}),L(b))}function h(b){return b===62?(n.enter(a),n.consume(b),n.exit(a),n.exit(u),n.exit(e),r):(n.enter(o),n.enter("chunkString",{contentType:"string"}),x(b))}function x(b){return b===62?(n.exit("chunkString"),n.exit(o),h(b)):b===null||b===60||S(b)?t(b):(n.consume(b),b===92?g:x)}function g(b){return b===60||b===62||b===92?(n.consume(b),x):x(b)}function L(b){return b===40?++c>m?t(b):(n.consume(b),L):b===41?c--?(n.consume(b),L):(n.exit("chunkString"),n.exit(o),n.exit(i),n.exit(e),r(b)):b===null||V(b)?c?t(b):(n.exit("chunkString"),n.exit(o),n.exit(i),n.exit(e),r(b)):In(b)?t(b):(n.consume(b),b===92?O:L)}function O(b){return b===40||b===41||b===92?(n.consume(b),L):L(b)}}function jn(n,r,t,e,u,a){let i=this,o=0,p;return m;function m(x){return n.enter(e),n.enter(u),n.consume(x),n.exit(u),n.enter(a),c}function c(x){return x===null||x===91||x===93&&!p||x===94&&!o&&"_hiddenFootnoteSupport"in i.parser.constructs||o>999?t(x):x===93?(n.exit(a),n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):S(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),c):(n.enter("chunkString",{contentType:"string"}),y(x))}function y(x){return x===null||x===91||x===93||S(x)||o++>999?(n.exit("chunkString"),c(x)):(n.consume(x),p=p||!I(x),x===92?h:y)}function h(x){return x===91||x===92||x===93?(n.consume(x),o++,y):y(x)}}function qn(n,r,t,e,u,a){let i;return o;function o(h){return n.enter(e),n.enter(u),n.consume(h),n.exit(u),i=h===40?41:h,p}function p(h){return h===i?(n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):(n.enter(a),m(h))}function m(h){return h===i?(n.exit(a),p(i)):h===null?t(h):S(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),C(n,m,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===i||h===null||S(h)?(n.exit("chunkString"),m(h)):(n.consume(h),h===92?y:c)}function y(h){return h===i||h===92?(n.consume(h),c):c(h)}}function fn(n,r){let t;return e;function e(u){return S(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):I(u)?C(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function on(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Kn={name:"definition",tokenize:_e},Pe={tokenize:Me,partial:!0};function _e(n,r,t){let e=this,u;return a;function a(p){return n.enter("definition"),jn.call(e,n,i,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function i(p){return u=on(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),p===58?(n.enter("definitionMarker"),n.consume(p),n.exit("definitionMarker"),fn(n,Rn(n,n.attempt(Pe,C(n,o,"whitespace"),C(n,o,"whitespace")),t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):t(p)}function o(p){return p===null||S(p)?(n.exit("definition"),e.parser.defined.includes(u)||e.parser.defined.push(u),r(p)):t(p)}}function Me(n,r,t){return e;function e(i){return V(i)?fn(n,u)(i):t(i)}function u(i){return i===34||i===39||i===40?qn(n,C(n,a,"whitespace"),t,"definitionTitle","definitionTitleMarker","definitionTitleString")(i):t(i)}function a(i){return i===null||S(i)?r(i):t(i)}}var Xn={name:"hardBreakEscape",tokenize:Re};function Re(n,r,t){return e;function e(a){return n.enter("hardBreakEscape"),n.enter("escapeMarker"),n.consume(a),u}function u(a){return S(a)?(n.exit("escapeMarker"),n.exit("hardBreakEscape"),r(a)):t(a)}}var vn={name:"headingAtx",tokenize:qe,resolve:je};function je(n,r){let t=n.length-2,e=3,u,a;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},a={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},Z(n,e,t-e+1,[["enter",u,r],["enter",a,r],["exit",a,r],["exit",u,r]])),n}function qe(n,r,t){let e=this,u=0;return a;function a(c){return n.enter("atxHeading"),n.enter("atxHeadingSequence"),i(c)}function i(c){return c===35&&u++<6?(n.consume(c),i):c===null||V(c)?(n.exit("atxHeadingSequence"),e.interrupt?r(c):o(c)):t(c)}function o(c){return c===35?(n.enter("atxHeadingSequence"),p(c)):c===null||S(c)?(n.exit("atxHeading"),r(c)):I(c)?C(n,o,"whitespace")(c):(n.enter("atxHeadingText"),m(c))}function p(c){return c===35?(n.consume(c),p):(n.exit("atxHeadingSequence"),o(c))}function m(c){return c===null||c===35||V(c)?(n.exit("atxHeadingText"),o(c)):(n.consume(c),m)}}var Ot=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],nt=["pre","script","style","textarea"];var tt={name:"htmlFlow",tokenize:Ve,resolveTo:Ne,concrete:!0},He={tokenize:We,partial:!0};function Ne(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Ve(n,r,t){let e=this,u,a,i,o,p;return m;function m(l){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(l),c}function c(l){return l===33?(n.consume(l),y):l===47?(n.consume(l),g):l===63?(n.consume(l),u=3,e.interrupt?r:G):v(l)?(n.consume(l),i=String.fromCharCode(l),a=!0,L):t(l)}function y(l){return l===45?(n.consume(l),u=2,h):l===91?(n.consume(l),u=5,i="CDATA[",o=0,x):v(l)?(n.consume(l),u=4,e.interrupt?r:G):t(l)}function h(l){return l===45?(n.consume(l),e.interrupt?r:G):t(l)}function x(l){return l===i.charCodeAt(o++)?(n.consume(l),o===i.length?e.interrupt?r:A:x):t(l)}function g(l){return v(l)?(n.consume(l),i=String.fromCharCode(l),L):t(l)}function L(l){return l===null||l===47||l===62||V(l)?l!==47&&a&&nt.includes(i.toLowerCase())?(u=1,e.interrupt?r(l):A(l)):Ot.includes(i.toLowerCase())?(u=6,l===47?(n.consume(l),O):e.interrupt?r(l):A(l)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(l):a?R(l):b(l)):l===45||K(l)?(n.consume(l),i+=String.fromCharCode(l),L):t(l)}function O(l){return l===62?(n.consume(l),e.interrupt?r:A):t(l)}function b(l){return I(l)?(n.consume(l),b):M(l)}function R(l){return l===47?(n.consume(l),M):l===58||l===95||v(l)?(n.consume(l),w):I(l)?(n.consume(l),R):M(l)}function w(l){return l===45||l===46||l===58||l===95||K(l)?(n.consume(l),w):P(l)}function P(l){return l===61?(n.consume(l),_):I(l)?(n.consume(l),P):R(l)}function _(l){return l===null||l===60||l===61||l===62||l===96?t(l):l===34||l===39?(n.consume(l),p=l,d):I(l)?(n.consume(l),_):(p=null,j(l))}function d(l){return l===null||S(l)?t(l):l===p?(n.consume(l),H):(n.consume(l),d)}function j(l){return l===null||l===34||l===39||l===60||l===61||l===62||l===96||V(l)?P(l):(n.consume(l),j)}function H(l){return l===47||l===62||I(l)?R(l):t(l)}function M(l){return l===62?(n.consume(l),Q):t(l)}function Q(l){return I(l)?(n.consume(l),Q):l===null||S(l)?A(l):t(l)}function A(l){return l===45&&u===2?(n.consume(l),U):l===60&&u===1?(n.consume(l),X):l===62&&u===4?(n.consume(l),N):l===63&&u===3?(n.consume(l),G):l===93&&u===5?(n.consume(l),W):S(l)&&(u===6||u===7)?n.check(He,N,D)(l):l===null||S(l)?D(l):(n.consume(l),A)}function D(l){return n.exit("htmlFlowData"),E(l)}function E(l){return l===null?s(l):S(l)?n.attempt({tokenize:z,partial:!0},E,s)(l):(n.enter("htmlFlowData"),A(l))}function z(l,En,mn){return dn;function dn(en){return l.enter("lineEnding"),l.consume(en),l.exit("lineEnding"),wn}function wn(en){return e.parser.lazy[e.now().line]?mn(en):En(en)}}function U(l){return l===45?(n.consume(l),G):A(l)}function X(l){return l===47?(n.consume(l),i="",nn):A(l)}function nn(l){return l===62&&nt.includes(i.toLowerCase())?(n.consume(l),N):v(l)&&i.length<8?(n.consume(l),i+=String.fromCharCode(l),nn):A(l)}function W(l){return l===93?(n.consume(l),G):A(l)}function G(l){return l===62?(n.consume(l),N):l===45&&u===2?(n.consume(l),G):A(l)}function N(l){return l===null||S(l)?(n.exit("htmlFlowData"),s(l)):(n.consume(l),N)}function s(l){return n.exit("htmlFlow"),r(l)}}function We(n,r,t){return e;function e(u){return n.exit("htmlFlowData"),n.enter("lineEndingBlank"),n.consume(u),n.exit("lineEndingBlank"),n.attempt(cn,r,t)}}var et={name:"htmlText",tokenize:Qe};function Qe(n,r,t){let e=this,u,a,i,o;return p;function p(s){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(s),m}function m(s){return s===33?(n.consume(s),c):s===47?(n.consume(s),j):s===63?(n.consume(s),_):v(s)?(n.consume(s),Q):t(s)}function c(s){return s===45?(n.consume(s),y):s===91?(n.consume(s),a="CDATA[",i=0,O):v(s)?(n.consume(s),P):t(s)}function y(s){return s===45?(n.consume(s),h):t(s)}function h(s){return s===null||s===62?t(s):s===45?(n.consume(s),x):g(s)}function x(s){return s===null||s===62?t(s):g(s)}function g(s){return s===null?t(s):s===45?(n.consume(s),L):S(s)?(o=g,W(s)):(n.consume(s),g)}function L(s){return s===45?(n.consume(s),N):g(s)}function O(s){return s===a.charCodeAt(i++)?(n.consume(s),i===a.length?b:O):t(s)}function b(s){return s===null?t(s):s===93?(n.consume(s),R):S(s)?(o=b,W(s)):(n.consume(s),b)}function R(s){return s===93?(n.consume(s),w):b(s)}function w(s){return s===62?N(s):s===93?(n.consume(s),w):b(s)}function P(s){return s===null||s===62?N(s):S(s)?(o=P,W(s)):(n.consume(s),P)}function _(s){return s===null?t(s):s===63?(n.consume(s),d):S(s)?(o=_,W(s)):(n.consume(s),_)}function d(s){return s===62?N(s):_(s)}function j(s){return v(s)?(n.consume(s),H):t(s)}function H(s){return s===45||K(s)?(n.consume(s),H):M(s)}function M(s){return S(s)?(o=M,W(s)):I(s)?(n.consume(s),M):N(s)}function Q(s){return s===45||K(s)?(n.consume(s),Q):s===47||s===62||V(s)?A(s):t(s)}function A(s){return s===47?(n.consume(s),N):s===58||s===95||v(s)?(n.consume(s),D):S(s)?(o=A,W(s)):I(s)?(n.consume(s),A):N(s)}function D(s){return s===45||s===46||s===58||s===95||K(s)?(n.consume(s),D):E(s)}function E(s){return s===61?(n.consume(s),z):S(s)?(o=E,W(s)):I(s)?(n.consume(s),E):A(s)}function z(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),u=s,U):S(s)?(o=z,W(s)):I(s)?(n.consume(s),z):(n.consume(s),u=void 0,nn)}function U(s){return s===u?(n.consume(s),X):s===null?t(s):S(s)?(o=U,W(s)):(n.consume(s),U)}function X(s){return s===62||s===47||V(s)?A(s):t(s)}function nn(s){return s===null||s===34||s===39||s===60||s===61||s===96?t(s):s===62||V(s)?A(s):(n.consume(s),nn)}function W(s){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),C(n,G,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function G(s){return n.enter("htmlTextData"),o(s)}function N(s){return s===62?(n.consume(s),n.exit("htmlTextData"),n.exit("htmlText"),r):t(s)}}var xn={name:"labelEnd",tokenize:Je,resolveTo:Ge,resolveAll:Ye},Ue={tokenize:Ke},$e={tokenize:Xe},Ze={tokenize:ve};function Ye(n){let r=-1,t;for(;++r-1&&(i[0]=i[0].slice(e)),a>0&&i.push(n[u].slice(0,a))),i}function gr(n,r){let t=-1,e=[],u;for(;++tFr,contentInitial:()=>kr,disable:()=>Cr,document:()=>dr,flow:()=>br,flowInitial:()=>yr,insideSpan:()=>wr,string:()=>Sr,text:()=>Er});var dr={42:Y,43:Y,45:Y,48:Y,49:Y,50:Y,51:Y,52:Y,53:Y,54:Y,55:Y,56:Y,57:Y,62:On},kr={91:Kn},yr={[-2]:Ln,[-1]:Ln,32:Ln},br={35:vn,42:gn,45:[Hn,gn],60:tt,61:Hn,95:gn,96:_n,126:_n},Sr={38:Pn,92:Dn},Er={[-5]:Bn,[-4]:Bn,[-3]:Bn,33:rt,38:Pn,42:Tn,60:[Yn,et],91:it,92:[Xn,Dn],93:xn,95:Tn,96:Gn},wr={null:[Tn,Pt]},Fr={null:[42,95]},Cr={null:[]};function Ht(n={}){let r=St([ut].concat(n.extensions||[])),t={defined:[],lazy:{},constructs:r,content:e(zt),document:e(Tt),flow:e(Dt),string:e(_t),text:e(Mt)};return t;function e(u){return a;function a(i){return qt(t,u,i)}}}var Nt=/[\0\t\n\r]/g;function Vt(){let n=1,r="",t=!0,e;return u;function u(a,i,o){let p=[],m,c,y,h,x;for(a=r+a.toString(i),y=0,r="",t&&(a.charCodeAt(0)===65279&&y++,t=void 0);y13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"\uFFFD":String.fromCharCode(t)}var Ar=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Qt(n){return n.replace(Ar,zr)}function zr(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){let u=t.charCodeAt(1),a=u===120||u===88;return Nn(t.slice(a?2:1),a?16:10)}return bn(t)||n}function Sn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?Ut(n.position):"start"in n||"end"in n?Ut(n):"line"in n||"column"in n?at(n):""}function at(n){return $t(n&&n.line)+":"+$t(n&&n.column)}function Ut(n){return at(n&&n.start)+"-"+at(n&&n.end)}function $t(n){return n&&typeof n=="number"?n:1}var Yt={}.hasOwnProperty,Vn=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Ir(t)(Wt(Ht(t).document().write(Vt()(n,r,!0))))};function Ir(n){let r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(ht),autolinkProtocol:A,autolinkEmail:A,atxHeading:o(ct),blockQuote:o(kn),characterEscape:A,characterReference:A,codeFenced:o(hn),codeFencedFenceInfo:p,codeFencedFenceMeta:p,codeIndented:o(hn,p),codeText:o(Wn,p),codeTextData:A,data:A,codeFlowValue:A,definition:o(Kt),definitionDestinationString:p,definitionLabelString:p,definitionTitleString:p,emphasis:o(Xt),hardBreakEscape:o(pt),hardBreakTrailing:o(pt),htmlFlow:o(mt,p),htmlFlowData:A,htmlText:o(mt,p),htmlTextData:A,image:o(vt),label:p,link:o(ht),listItem:o(ne),listItemValue:g,listOrdered:o(ft,x),listUnordered:o(ft),paragraph:o(te),reference:dn,referenceString:p,resourceDestinationString:p,resourceTitleString:p,setextHeading:o(ct),strong:o(ee),thematicBreak:o(ie)},exit:{atxHeading:c(),atxHeadingSequence:j,autolink:c(),autolinkEmail:rn,autolinkProtocol:Fn,blockQuote:c(),characterEscapeValue:D,characterReferenceMarkerHexadecimal:en,characterReferenceMarkerNumeric:en,characterReferenceValue:$,codeFenced:c(R),codeFencedFence:b,codeFencedFenceInfo:L,codeFencedFenceMeta:O,codeFlowValue:D,codeIndented:c(w),codeText:c(nn),codeTextData:D,data:D,definition:c(),definitionDestinationString:d,definitionLabelString:P,definitionTitleString:_,emphasis:c(),hardBreakEscape:c(z),hardBreakTrailing:c(z),htmlFlow:c(U),htmlFlowData:D,htmlText:c(X),htmlTextData:D,image:c(G),label:s,labelText:N,lineEnding:E,link:c(W),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:wn,resourceDestinationString:l,resourceTitleString:En,resource:mn,setextHeading:c(Q),setextHeadingLineSequence:M,setextHeadingText:H,strong:c(),thematicBreak:c()}};Gt(r,(n||{}).mdastExtensions||[]);let t={};return e;function e(f){let k={type:"root",children:[]},F={stack:[k],tokenStack:[],config:r,enter:m,exit:y,buffer:p,resume:h,setData:a,getData:i},T=[],B=-1;for(;++B0){let tn=F.tokenStack[F.tokenStack.length-1];(tn[1]||Zt).call(F,void 0,tn[0])}for(k.position={start:pn(f.length>0?f[0][1].start:{line:1,column:1,offset:0}),end:pn(f.length>0?f[f.length-2][1].end:{line:1,column:1,offset:0})},B=-1;++B{c!==0&&(u++,e.push([])),m.split(" ").forEach(y=>{y&&e[u].push({content:y,type:o})})}):(i.type==="strong"||i.type==="emphasis")&&i.children.forEach(p=>{a(p,i.type)})}return t.forEach(i=>{i.type==="paragraph"&&i.children.forEach(o=>{a(o)})}),e}function Or(n){let{children:r}=Vn(n);function t(e){return e.type==="text"?e.value.replace(/\n/g,"
"):e.type==="strong"?`${e.children.map(t).join("")}`:e.type==="emphasis"?`${e.children.map(t).join("")}`:e.type==="paragraph"?`

${e.children.map(t).join("")}

`:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function Dr(n){return Intl.Segmenter?[...new Intl.Segmenter().segment(n)].map(r=>r.segment):[...n]}function Pr(n,r){let t=Dr(r.content);return Jt(n,[],t,r.type)}function Jt(n,r,t,e){if(t.length===0)return[{content:r.join(""),type:e},{content:"",type:e}];let[u,...a]=t,i=[...r,u];return n([{content:i.join(""),type:e}])?Jt(n,i,a,e):(r.length===0&&u&&(r.push(u),t.shift()),[{content:r.join(""),type:e},{content:t.join(""),type:e}])}function _r(n,r){if(n.some(({content:t})=>t.includes(` `)))throw new Error("splitLineToFitWidth does not support newlines in the line");return ot(n,r)}function ot(n,r,t=[],e=[]){if(n.length===0)return e.length>0&&t.push(e),t.length>0?t:[];let u="";n[0].content===" "&&(u=" ",n.shift());let a=n.shift()??{content:" ",type:"normal"},i=[...e];if(u!==""&&i.push({content:u,type:"normal"}),i.push(a),r(i))return ot(n,r,t,i);if(e.length>0)t.push(e),n.unshift(a);else if(a.content){let[o,p]=Pr(r,a);t.push([o]),p.content&&n.unshift(p)}return ot(n,r,t)}function Mr(n,r){r&&n.attr("style",r)}function Rr(n,r,t,e,u=!1){let a=n.append("foreignObject"),i=a.append("xhtml:div"),o=r.label,p=r.isNode?"nodeLabel":"edgeLabel";i.html(` "+o+""),Mr(i,r.labelStyle),i.style("display","table-cell"),i.style("white-space","nowrap"),i.style("max-width",t+"px"),i.attr("xmlns","http://www.w3.org/1999/xhtml"),u&&i.attr("class","labelBkg");let m=i.node().getBoundingClientRect();return m.width===t&&(i.style("display","table"),i.style("white-space","break-spaces"),i.style("width",t+"px"),m=i.node().getBoundingClientRect()),a.style("width",m.width),a.style("height",m.height),a.node()}function lt(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function jr(n,r,t){let e=n.append("text"),u=lt(e,1,r);st(u,t);let a=u.node().getComputedTextLength();return e.remove(),a}function to(n,r,t){var e;let u=n.append("text"),a=lt(u,1,r);st(a,[{content:t,type:"normal"}]);let i=(e=a.node())==null?void 0:e.getBoundingClientRect();return i&&u.remove(),i}function qr(n,r,t,e=!1){let a=r.append("g"),i=a.insert("rect").attr("class","background"),o=a.append("text").attr("y","-10.1"),p=0;for(let m of t){let c=h=>jr(a,1.1,h)<=n,y=c(m)?[m]:_r(m,c);for(let h of y){let x=lt(o,p,1.1);st(x,h),p++}}if(e){let m=o.node().getBBox(),c=2;return i.attr("x",-c).attr("y",-c).attr("width",m.width+2*c).attr("height",m.height+2*c),a.node()}else return o.node()}function st(n,r){n.text(""),r.forEach((t,e)=>{let u=n.append("tspan").attr("font-style",t.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?u.text(t.content):u.text(" "+t.content)})}var eo=(n,r="",{style:t="",isTitle:e=!1,classes:u="",useHtmlLabels:a=!0,isNode:i=!0,width:o=200,addSvgBackground:p=!1}={})=>{if(gt.info("createText",r,t,e,u,a,i,p),a){let m=Or(r),c={isNode:i,label:dt(m).replace(/fa[blrs]?:fa-[\w-]+/g,h=>``),labelStyle:t.replace("fill:","color:")};return Rr(n,c,o,u,p)}else{let m=Br(r);return qr(o,n,m,p)}};export{to as a,eo as b}; -//# sourceMappingURL=chunk-ZMRDHQ6H.min.js.map +//# sourceMappingURL=chunk-DALFUHAB.min.js.map diff --git a/docs/public/chunk-ZMRDHQ6H.min.js.map b/docs/public/chunk-DALFUHAB.min.js.map similarity index 79% rename from docs/public/chunk-ZMRDHQ6H.min.js.map rename to docs/public/chunk-DALFUHAB.min.js.map index 8dd99769..2cc904ef 100644 --- a/docs/public/chunk-ZMRDHQ6H.min.js.map +++ b/docs/public/chunk-DALFUHAB.min.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../../node_modules/mdast-util-to-string/lib/index.js", "../../node_modules/micromark-util-chunked/index.js", "../../node_modules/micromark-util-combine-extensions/index.js", "../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js", "../../node_modules/micromark-util-character/index.js", "../../node_modules/micromark-factory-space/index.js", "../../node_modules/micromark/lib/initialize/content.js", "../../node_modules/micromark/lib/initialize/document.js", "../../node_modules/micromark-util-classify-character/index.js", "../../node_modules/micromark-util-resolve-all/index.js", "../../node_modules/micromark-core-commonmark/lib/attention.js", "../../node_modules/micromark-core-commonmark/lib/autolink.js", "../../node_modules/micromark-core-commonmark/lib/blank-line.js", "../../node_modules/micromark-core-commonmark/lib/block-quote.js", "../../node_modules/micromark-core-commonmark/lib/character-escape.js", "../../node_modules/decode-named-character-reference/index.dom.js", "../../node_modules/micromark-core-commonmark/lib/character-reference.js", "../../node_modules/micromark-core-commonmark/lib/code-fenced.js", "../../node_modules/micromark-core-commonmark/lib/code-indented.js", "../../node_modules/micromark-core-commonmark/lib/code-text.js", "../../node_modules/micromark-util-subtokenize/index.js", "../../node_modules/micromark-core-commonmark/lib/content.js", "../../node_modules/micromark-factory-destination/index.js", "../../node_modules/micromark-factory-label/index.js", "../../node_modules/micromark-factory-title/index.js", "../../node_modules/micromark-factory-whitespace/index.js", "../../node_modules/micromark-util-normalize-identifier/index.js", "../../node_modules/micromark-core-commonmark/lib/definition.js", "../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js", "../../node_modules/micromark-core-commonmark/lib/heading-atx.js", "../../node_modules/micromark-util-html-tag-name/index.js", "../../node_modules/micromark-core-commonmark/lib/html-flow.js", "../../node_modules/micromark-core-commonmark/lib/html-text.js", "../../node_modules/micromark-core-commonmark/lib/label-end.js", "../../node_modules/micromark-core-commonmark/lib/label-start-image.js", "../../node_modules/micromark-core-commonmark/lib/label-start-link.js", "../../node_modules/micromark-core-commonmark/lib/line-ending.js", "../../node_modules/micromark-core-commonmark/lib/thematic-break.js", "../../node_modules/micromark-core-commonmark/lib/list.js", "../../node_modules/micromark-core-commonmark/lib/setext-underline.js", "../../node_modules/micromark/lib/initialize/flow.js", "../../node_modules/micromark/lib/initialize/text.js", "../../node_modules/micromark/lib/create-tokenizer.js", "../../node_modules/micromark/lib/constructs.js", "../../node_modules/micromark/lib/parse.js", "../../node_modules/micromark/lib/preprocess.js", "../../node_modules/micromark/lib/postprocess.js", "../../node_modules/micromark-util-decode-numeric-character-reference/index.js", "../../node_modules/micromark-util-decode-string/index.js", "../../node_modules/unist-util-stringify-position/lib/index.js", "../../node_modules/mdast-util-from-markdown/lib/index.js", "../../node_modules/mermaid/dist/createText-aebacdfe.js"], "sourcesContent": ["/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node\u2019s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n", "/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there\u2019s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it\u2019s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it\u2019s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n", "/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n", "// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it\u2019s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they\u2019re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there\u2019s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can\u2019t have containers \u201Cpierce\u201D into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we\u2019d be interrupting it w/ a new container if there\u2019s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can\u2019t \u201Cunmake\u201D it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which \u201Cunmakes\u201D the first line\n // and turns the whole into one content block.\n //\n // We\u2019ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending\u2026\n childFlow.events[index][1].start.offset < lineStartOffset && // \u2026and either is not ended yet\u2026\n (!childFlow.events[index][1].end || // \u2026or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there\u2019s still something open, which means it\u2019s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they\u2019re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it\u2019s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don\u2019t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It\u2019s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n", "/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `\u00ACit;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can\u2019t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don\u2019t work, and virtual spaces don\u2019t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there\u2019s one more token (which is the cases for lines that end in an\n // EOF), that\u2019s perfect: the last point we found starts it.\n // If there isn\u2019t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren\u2019t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it\u2019s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we\u2019ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn\u2019t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can\u2019t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n", "/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered \u201Cuppercase\u201D, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can\u2019t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n", "/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn\u2019t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * .\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we\u2019re in an instruction instead of a declaration, we\u2019re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can\u2019t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we\u2019ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can\u2019t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It\u2019s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we\u2019ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn\u2019t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we\u2019ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn\u2019t need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can\u2019t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we\u2019re closing flow, we\u2019re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It\u2019ll always exist: we don\u2019t tokenize if it isn\u2019t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we\u2019ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we\u2019ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don\u2019t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can\u2019t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn\u2019t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n\n const columnStart = {}\n /** @type {Array} */\n\n const resolveAllConstructs = []\n /** @type {Array} */\n\n let chunks = []\n /** @type {Array} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we\u2019re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we\u2019re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Array|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn\u2019t work because `inspect` in document does a check\n // w/o a bogus, which doesn\u2019t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a \u201Clive binding\u201D, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it\u2019s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n", "/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array} events\n * @returns {Array}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n", "/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n", "import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The \u201Cstring\u201D content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n", "/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn\u2019t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don\u2019t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n // @ts-expect-error: micromark types need to accept `null`.\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n // @ts-expect-error Patched.\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it\u2019s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we\u2019ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we\u2019re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n", "import { l as log, J as decodeEntities } from \"./mermaid-934d9bea.js\";\nimport { fromMarkdown } from \"mdast-util-from-markdown\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown) {\n const withoutMultipleNewlines = markdown.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n return withoutExtraSpaces;\n}\nfunction markdownToLines(markdown) {\n const preprocessedMarkdown = preprocessMarkdown(markdown);\n const { children } = fromMarkdown(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.value.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"emphasis\") {\n node.children.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n }\n }\n children.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.children.forEach((contentNode) => {\n processNode(contentNode);\n });\n }\n });\n return lines;\n}\nfunction markdownToHTML(markdown) {\n const { children } = fromMarkdown(markdown);\n function output(node) {\n if (node.type === \"text\") {\n return node.value.replace(/\\n/g, \"
\");\n } else if (node.type === \"strong\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"emphasis\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

${node.children.map(output).join(\"\")}

`;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n return children.map(output).join(\"\");\n}\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n `\n \" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"max-width\", width + \"px\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n fo.style(\"width\", bbox.width);\n fo.style(\"height\", bbox.height);\n return fo.node();\n}\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n var _a;\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width;\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", -padding).attr(\"y\", -padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"emphasis\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\nconst createText = (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}) => {\n log.info(\"createText\", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text);\n const node = {\n isNode,\n label: decodeEntities(htmlText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const structuredText = markdownToLines(text);\n const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);\n return svgLabel;\n }\n};\nexport {\n createText as a,\n computeDimensionOfText as c\n};\n"], - "mappings": "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", + "mappings": "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", "names": ["emptyOptions", "toString", "value", "options", "settings", "includeImageAlt", "includeHtml", "one", "node", "all", "values", "result", "index", "splice", "list", "start", "remove", "items", "end", "chunkStart", "parameters", "push", "hasOwnProperty", "combineExtensions", "extensions", "all", "index", "syntaxExtension", "extension", "hook", "left", "right", "code", "value", "constructs", "existing", "list", "before", "splice", "unicodePunctuationRegex", "asciiAlpha", "regexCheck", "asciiDigit", "asciiHexDigit", "asciiAlphanumeric", "asciiPunctuation", "asciiAtext", "asciiControl", "code", "markdownLineEndingOrSpace", "markdownLineEnding", "markdownSpace", "unicodeWhitespace", "unicodePunctuation", "unicodePunctuationRegex", "regex", "check", "factorySpace", "effects", "ok", "type", "max", "limit", "size", "start", "code", "markdownSpace", "prefix", "content", "initializeContent", "effects", "contentStart", "afterContentStartConstruct", "paragraphInitial", "previous", "code", "factorySpace", "lineStart", "token", "data", "markdownLineEnding", "document", "initializeDocument", "containerConstruct", "tokenizeContainer", "effects", "self", "stack", "continued", "childFlow", "childToken", "lineStartOffset", "start", "code", "item", "documentContinue", "checkNewContainers", "closeFlow", "indexBeforeExits", "indexBeforeFlow", "point", "exitContainers", "index", "splice", "documentContinued", "flowStart", "thereIsANewContainer", "thereIsNoNewContainer", "containerContinue", "flowContinue", "writeToChild", "markdownLineEnding", "token", "eof", "stream", "seen", "size", "entry", "ok", "nok", "factorySpace", "classifyCharacter", "code", "markdownLineEndingOrSpace", "unicodeWhitespace", "unicodePunctuation", "resolveAll", "constructs", "events", "context", "called", "index", "resolve", "attention", "tokenizeAttention", "resolveAllAttention", "events", "context", "index", "open", "group", "text", "openingSequence", "closingSequence", "use", "nextEvents", "offset", "start", "end", "movePoint", "push", "resolveAll", "splice", "effects", "ok", "attentionMarkers", "previous", "before", "classifyCharacter", "marker", "code", "sequence", "token", "after", "close", "point", "autolink", "tokenizeAutolink", "effects", "ok", "nok", "size", "start", "code", "open", "asciiAlpha", "schemeOrEmailAtext", "asciiAtext", "emailAtext", "asciiAlphanumeric", "schemeInsideOrEmailAtext", "urlInside", "end", "asciiControl", "emailAtSignOrDot", "emailLabel", "emailValue", "blankLine", "tokenizeBlankLine", "effects", "ok", "nok", "factorySpace", "afterWhitespace", "code", "markdownLineEnding", "blockQuote", "tokenizeBlockQuoteStart", "tokenizeBlockQuoteContinuation", "exit", "effects", "ok", "nok", "self", "start", "code", "state", "after", "markdownSpace", "factorySpace", "characterEscape", "tokenizeCharacterEscape", "effects", "ok", "nok", "start", "code", "open", "asciiPunctuation", "element", "decodeNamedCharacterReference", "value", "characterReference", "char", "characterReference", "tokenizeCharacterReference", "effects", "ok", "nok", "self", "size", "max", "test", "start", "code", "open", "numeric", "asciiAlphanumeric", "value", "asciiHexDigit", "asciiDigit", "token", "decodeNamedCharacterReference", "codeFenced", "tokenizeCodeFenced", "effects", "ok", "nok", "self", "closingFenceConstruct", "tokenizeClosingFence", "nonLazyLine", "tokenizeNonLazyLine", "tail", "initialPrefix", "sizeOpen", "marker", "start", "code", "sequenceOpen", "factorySpace", "infoOpen", "markdownLineEnding", "openAfter", "info", "markdownLineEndingOrSpace", "infoAfter", "meta", "contentStart", "after", "contentContinue", "lineStart", "size", "closingSequenceStart", "closingSequence", "closingSequenceEnd", "codeIndented", "tokenizeCodeIndented", "indentedContent", "tokenizeIndentedContent", "effects", "ok", "nok", "self", "start", "code", "factorySpace", "afterStartPrefix", "tail", "afterPrefix", "after", "markdownLineEnding", "content", "codeText", "tokenizeCodeText", "resolveCodeText", "previous", "events", "tailExitIndex", "headEnterIndex", "index", "enter", "code", "effects", "ok", "nok", "self", "sizeOpen", "size", "token", "start", "openingSequence", "gap", "closingSequence", "markdownLineEnding", "data", "subtokenize", "events", "jumps", "index", "event", "lineIndex", "otherIndex", "otherEvent", "parameters", "subevents", "more", "subcontent", "splice", "eventIndex", "token", "context", "startPosition", "startPositions", "tokenizer", "childEvents", "gaps", "stream", "previous", "current", "adjust", "start", "breaks", "slice", "content", "tokenizeContent", "resolveContent", "continuationConstruct", "tokenizeContinuation", "events", "subtokenize", "effects", "ok", "previous", "start", "code", "data", "contentEnd", "markdownLineEnding", "contentContinue", "nok", "self", "startLookahead", "factorySpace", "prefixed", "tail", "factoryDestination", "effects", "ok", "nok", "type", "literalType", "literalMarkerType", "rawType", "stringType", "max", "limit", "balance", "start", "code", "destinationEnclosedBefore", "asciiControl", "destinationRaw", "destinationEnclosed", "markdownLineEnding", "destinationEnclosedEscape", "markdownLineEndingOrSpace", "destinationRawEscape", "factoryLabel", "effects", "ok", "nok", "type", "markerType", "stringType", "self", "size", "data", "start", "code", "atBreak", "markdownLineEnding", "label", "markdownSpace", "labelEscape", "factoryTitle", "effects", "ok", "nok", "type", "markerType", "stringType", "marker", "start", "code", "atFirstTitleBreak", "atTitleBreak", "markdownLineEnding", "factorySpace", "title", "titleEscape", "factoryWhitespace", "effects", "ok", "seen", "start", "code", "markdownLineEnding", "markdownSpace", "factorySpace", "normalizeIdentifier", "value", "definition", "tokenizeDefinition", "titleConstruct", "tokenizeTitle", "effects", "ok", "nok", "self", "identifier", "start", "code", "factoryLabel", "labelAfter", "normalizeIdentifier", "factoryWhitespace", "factoryDestination", "factorySpace", "after", "markdownLineEnding", "markdownLineEndingOrSpace", "before", "factoryTitle", "hardBreakEscape", "tokenizeHardBreakEscape", "effects", "ok", "nok", "start", "code", "open", "markdownLineEnding", "headingAtx", "tokenizeHeadingAtx", "resolveHeadingAtx", "events", "context", "contentEnd", "contentStart", "content", "text", "splice", "effects", "ok", "nok", "self", "size", "start", "code", "fenceOpenInside", "markdownLineEndingOrSpace", "headingBreak", "sequence", "markdownLineEnding", "markdownSpace", "factorySpace", "data", "htmlBlockNames", "htmlRawNames", "htmlFlow", "tokenizeHtmlFlow", "resolveToHtmlFlow", "nextBlankConstruct", "tokenizeNextBlank", "events", "index", "effects", "ok", "nok", "self", "kind", "startTag", "buffer", "marker", "start", "code", "open", "declarationStart", "tagCloseStart", "continuationDeclarationInside", "asciiAlpha", "tagName", "commentOpenInside", "cdataOpenInside", "continuation", "markdownLineEndingOrSpace", "htmlRawNames", "htmlBlockNames", "basicSelfClosing", "completeAttributeNameBefore", "completeClosingTagAfter", "asciiAlphanumeric", "markdownSpace", "completeEnd", "completeAttributeName", "completeAttributeNameAfter", "completeAttributeValueBefore", "completeAttributeValueQuoted", "completeAttributeValueUnquoted", "markdownLineEnding", "completeAttributeValueQuotedAfter", "completeAfter", "continuationCommentInside", "continuationRawTagOpen", "continuationClose", "continuationCharacterDataInside", "continuationAtLineEnding", "htmlContinueStart", "done", "htmlLineEnd", "lineStart", "continuationRawEndTag", "blankLine", "htmlText", "tokenizeHtmlText", "effects", "ok", "nok", "self", "marker", "buffer", "index", "returnState", "start", "code", "open", "declarationOpen", "tagCloseStart", "instruction", "asciiAlpha", "tagOpen", "commentOpen", "cdataOpen", "declaration", "commentStart", "commentStartDash", "comment", "commentClose", "markdownLineEnding", "atLineEnding", "end", "cdata", "cdataClose", "cdataEnd", "instructionClose", "tagClose", "asciiAlphanumeric", "tagCloseBetween", "markdownSpace", "markdownLineEndingOrSpace", "tagOpenBetween", "tagOpenAttributeName", "tagOpenAttributeNameAfter", "tagOpenAttributeValueBefore", "tagOpenAttributeValueQuoted", "tagOpenAttributeValueUnquoted", "tagOpenAttributeValueQuotedAfter", "factorySpace", "afterPrefix", "labelEnd", "tokenizeLabelEnd", "resolveToLabelEnd", "resolveAllLabelEnd", "resourceConstruct", "tokenizeResource", "fullReferenceConstruct", "tokenizeFullReference", "collapsedReferenceConstruct", "tokenizeCollapsedReference", "events", "index", "token", "context", "offset", "open", "close", "media", "group", "label", "text", "push", "resolveAll", "splice", "effects", "ok", "nok", "self", "labelStart", "defined", "start", "code", "balanced", "normalizeIdentifier", "afterLabelEnd", "factoryWhitespace", "end", "factoryDestination", "destinationAfter", "markdownLineEndingOrSpace", "between", "factoryTitle", "factoryLabel", "afterLabel", "labelStartImage", "tokenizeLabelStartImage", "labelEnd", "effects", "ok", "nok", "self", "start", "code", "open", "after", "labelStartLink", "tokenizeLabelStartLink", "labelEnd", "effects", "ok", "nok", "self", "start", "code", "after", "lineEnding", "tokenizeLineEnding", "effects", "ok", "start", "code", "factorySpace", "thematicBreak", "tokenizeThematicBreak", "effects", "ok", "nok", "size", "marker", "start", "code", "atBreak", "sequence", "markdownSpace", "factorySpace", "markdownLineEnding", "list", "tokenizeListStart", "tokenizeListContinuation", "tokenizeListEnd", "listItemPrefixWhitespaceConstruct", "tokenizeListItemPrefixWhitespace", "indentConstruct", "tokenizeIndent", "effects", "ok", "nok", "self", "tail", "initialSize", "size", "start", "code", "kind", "asciiDigit", "thematicBreak", "atMarker", "inside", "blankLine", "onBlank", "endOfPrefix", "otherPrefix", "markdownSpace", "notBlank", "factorySpace", "notInCurrentItem", "afterPrefix", "setextUnderline", "tokenizeSetextUnderline", "resolveToSetextUnderline", "events", "context", "index", "content", "text", "definition", "heading", "effects", "ok", "nok", "self", "marker", "paragraph", "start", "code", "closingSequence", "factorySpace", "closingSequenceEnd", "markdownLineEnding", "flow", "initializeFlow", "effects", "self", "initial", "blankLine", "atBlankEnding", "afterConstruct", "factorySpace", "content", "code", "resolver", "createResolver", "string", "initializeFactory", "text", "field", "initializeText", "resolveAllLineSuffixes", "effects", "self", "constructs", "start", "notText", "code", "atBreak", "data", "list", "index", "item", "extraResolver", "resolveAllText", "events", "context", "enter", "eventIndex", "chunks", "bufferIndex", "size", "tabs", "chunk", "token", "createTokenizer", "parser", "initialize", "from", "point", "columnStart", "resolveAllConstructs", "chunks", "stack", "consumed", "effects", "consume", "enter", "exit", "constructFactory", "onsuccessfulconstruct", "onsuccessfulcheck", "context", "sliceStream", "sliceSerialize", "now", "defineSkip", "write", "state", "expectedCode", "slice", "push", "main", "addResult", "resolveAll", "token", "expandTabs", "serializeChunks", "sliceChunks", "value", "accountForPotentialSkip", "chunkIndex", "chunk", "go", "code", "markdownLineEnding", "type", "fields", "construct", "info", "_", "onreturn", "hook", "constructs", "returnState", "bogusState", "listOfConstructs", "constructIndex", "currentConstruct", "handleListOfConstructs", "handleMapOfConstructs", "map", "start", "def", "all", "list", "handleConstruct", "store", "nok", "ok", "splice", "startPoint", "startPrevious", "startCurrentConstruct", "startEventsIndex", "startStack", "restore", "startIndex", "startBufferIndex", "endIndex", "endBufferIndex", "view", "index", "result", "atTab", "constructs_exports", "__export", "attentionMarkers", "contentInitial", "disable", "document", "flow", "flowInitial", "insideSpan", "string", "text", "document", "list", "blockQuote", "contentInitial", "definition", "flowInitial", "codeIndented", "flow", "headingAtx", "thematicBreak", "setextUnderline", "htmlFlow", "codeFenced", "string", "characterReference", "characterEscape", "text", "lineEnding", "labelStartImage", "attention", "autolink", "htmlText", "labelStartLink", "hardBreakEscape", "labelEnd", "codeText", "insideSpan", "resolver", "attentionMarkers", "disable", "parse", "options", "constructs", "combineExtensions", "constructs_exports", "parser", "create", "content", "document", "flow", "string", "text", "initial", "creator", "from", "createTokenizer", "search", "preprocess", "column", "buffer", "start", "atCarriageReturn", "preprocessor", "value", "encoding", "end", "chunks", "match", "next", "startPosition", "endPosition", "code", "postprocess", "events", "subtokenize", "decodeNumericCharacterReference", "value", "base", "code", "characterEscapeOrReference", "decodeString", "value", "decode", "$0", "$1", "$2", "head", "hex", "decodeNumericCharacterReference", "decodeNamedCharacterReference", "stringifyPosition", "value", "position", "point", "index", "pos", "own", "fromMarkdown", "value", "encoding", "options", "compiler", "postprocess", "parse", "preprocess", "config", "opener", "link", "onenterdata", "heading", "blockQuote", "codeFlow", "buffer", "codeText", "definition", "emphasis", "hardBreak", "html", "image", "listItem", "onenterlistitemvalue", "list", "onenterlistordered", "paragraph", "onenterreference", "strong", "thematicBreak", "closer", "onexitatxheadingsequence", "onexitautolinkemail", "onexitautolinkprotocol", "onexitdata", "onexitcharacterreferencemarker", "onexitcharacterreferencevalue", "onexitcodefenced", "onexitcodefencedfence", "onexitcodefencedfenceinfo", "onexitcodefencedfencemeta", "onexitcodeindented", "onexitcodetext", "onexitdefinitiondestinationstring", "onexitdefinitionlabelstring", "onexitdefinitiontitlestring", "onexithardbreak", "onexithtmlflow", "onexithtmltext", "onexitimage", "onexitlabel", "onexitlabeltext", "onexitlineending", "onexitlink", "onexitreferencestring", "onexitresourcedestinationstring", "onexitresourcetitlestring", "onexitresource", "onexitsetextheading", "onexitsetextheadinglinesequence", "onexitsetextheadingtext", "configure", "data", "compile", "events", "tree", "context", "enter", "exit", "resume", "setData", "getData", "listStack", "index", "tail", "prepareList", "handler", "defaultOnError", "point", "start", "length", "containerBalance", "listSpread", "lineIndex", "firstBlankLineIndex", "atMarker", "event", "tailIndex", "tailEvent", "key", "create", "and", "open", "token", "node", "errorHandler", "close", "onExitError", "stringifyPosition", "toString", "ancestor", "label", "normalizeIdentifier", "depth", "text", "referenceType", "string", "decodeString", "fragment", "children", "type", "decodeNumericCharacterReference", "decodeNamedCharacterReference", "d", "combined", "extensions", "extension", "right", "left", "preprocessMarkdown", "markdown", "withoutMultipleNewlines", "dedent", "markdownToLines", "preprocessedMarkdown", "children", "fromMarkdown", "lines", "currentLine", "processNode", "node", "parentType", "textLine", "index", "word", "contentNode", "treeNode", "markdownToHTML", "output", "splitTextToChars", "text", "s", "splitWordToFitWidth", "checkFit", "characters", "splitWordToFitWidthRecursion", "usedChars", "remainingChars", "type", "nextChar", "rest", "newWord", "splitLineToFitWidth", "line", "content", "splitLineToFitWidthRecursion", "words", "newLine", "joiner", "nextWord", "lineWithNextWord", "applyStyle", "dom", "styleFn", "addHtmlSpan", "element", "width", "classes", "addBackground", "fo", "div", "label", "labelClass", "bbox", "createTspan", "textElement", "lineIndex", "lineHeight", "computeWidthOfText", "parentNode", "testElement", "testSpan", "updateTextContentAndStyles", "textLength", "computeDimensionOfText", "_a", "textDimension", "createFormattedText", "g", "structuredText", "labelGroup", "bkg", "checkWidth", "line2", "linesUnderWidth", "preparedLine", "tspan", "padding", "wrappedLine", "innerTspan", "createText", "el", "style", "isTitle", "useHtmlLabels", "isNode", "addSvgBackground", "log$1", "htmlText", "decodeEntities"] } diff --git a/docs/public/chunk-NAH225X5.min.js b/docs/public/chunk-EKFGDCJ4.min.js similarity index 99% rename from docs/public/chunk-NAH225X5.min.js rename to docs/public/chunk-EKFGDCJ4.min.js index 8bb7e9d0..7753586d 100644 --- a/docs/public/chunk-NAH225X5.min.js +++ b/docs/public/chunk-EKFGDCJ4.min.js @@ -1,4 +1,4 @@ -import{$ as _e,Aa as nr,Ba as hr,Ca as Ur,Da as jr,Ea as B,Fa as Wr,P as ze,Q as k,R as Pr,S as D,T as Rr,U as Mr,V as Ke,W as Ve,X as H,Y as He,Z as Fr,_ as Xe,aa as Br,ba as Ze,ca as $e,da as Je,ea as Qe,fa as F,ga as Dr,ha as _,ia as rt,ja as G,ka as et,la as Tr,na as mr,oa as pr,pa as tt,qa as lr,ra as X,sa as Gr,ta as ot,ua as U,va as j,wa as nt,xa as P,ya as at,za as cr}from"./chunk-JUXSCBYR.min.js";var Vn="[object Symbol]";function Hn(r){return typeof r=="symbol"||F(r)&&Pr(r)==Vn}var N=Hn;function Xn(r,e){for(var t=-1,o=r==null?0:r.length,n=Array(o);++t-1}var bt=ha;function xa(r){return G(r)?ot(r):Ur(r)}var E=xa;var _a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,va=/^\w*$/;function ga(r,e){if(_(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||N(r)?!0:va.test(r)||!_a.test(r)||e!=null&&r in Object(e)}var _r=ga;var ba=500;function ya(r){var e=Ve(r,function(o){return t.size===ba&&t.clear(),o}),t=e.cache;return e}var yt=ya;var wa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ea=/\\(\\)?/g,Ia=yt(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(wa,function(t,o,n,a){e.push(n?a.replace(Ea,"$1"):o||t)}),e}),wt=Ia;function Aa(r){return r==null?"":ut(r)}var zr=Aa;function Ta(r,e){return _(r)?r:_r(r,e)?[r]:wt(zr(r))}var Z=Ta;var Oa=1/0;function Sa(r){if(typeof r=="string"||N(r))return r;var e=r+"";return e=="0"&&1/r==-Oa?"-0":e}var q=Sa;function La(r,e){e=Z(e,r);for(var t=0,o=e.length;r!=null&&t0&&t(f)?e>1?Tt(f,e-1,t,o,n):vr(n,f):o||(n[n.length]=f)}return n}var gr=Tt;function Pa(r){var e=r==null?0:r.length;return e?gr(r,1):[]}var R=Pa;function Ra(r){return at(nt(r,void 0,R),r+"")}var Ot=Ra;var Ma="\\ud800-\\udfff",Fa="\\u0300-\\u036f",Ba="\\ufe20-\\ufe2f",Da="\\u20d0-\\u20ff",Ga=Fa+Ba+Da,Ua="\\ufe0e\\ufe0f",ja="\\u200d",Wa=RegExp("["+ja+Ma+Ga+Ua+"]");function qa(r){return Wa.test(r)}var St=qa;function Ya(r,e,t,o){var n=-1,a=r==null?0:r.length;for(o&&a&&(t=r[++n]);++nf))return!1;var u=a.get(r),m=a.get(e);if(u&&m)return u==e&&m==r;var p=-1,l=!0,x=t&Ef?new Qr:void 0;for(a.set(r,e),a.set(e,r);++p2?e[2]:void 0;for(n&&nr(e[0],e[1],n)&&(o=1);++t-1?n[a?e[i]:i]:void 0}}var wo=Es;var Is=Math.max;function As(r,e,t){var o=r==null?0:r.length;if(!o)return-1;var n=t==null?0:ht(t);return n<0&&(n=Is(o+n,0)),Yr(r,O(e,3),n)}var Eo=As;var Ts=wo(Eo),Ir=Ts;function Os(r,e){var t=-1,o=G(r)?Array(r.length):[];return J(r,function(n,a,i){o[++t]=e(n,a,i)}),o}var de=Os;function Ss(r,e){var t=_(r)?W:de;return t(r,O(e,3))}var g=Ss;function Ls(r,e){return r==null?r:Fr(r,Er(e),U)}var ye=Ls;function Ns(r,e){return r&&wr(r,Er(e))}var we=Ns;function Cs(r,e){return r>e}var Io=Cs;var ks=Object.prototype,Ps=ks.hasOwnProperty;function Rs(r,e){return r!=null&&Ps.call(r,e)}var Ao=Rs;function Ms(r,e){return r!=null&&ie(r,e,Ao)}var c=Ms;var Fs="[object String]";function Bs(r){return typeof r=="string"||!_(r)&&F(r)&&Pr(r)==Fs}var To=Bs;function Ds(r,e){return W(e,function(t){return r[t]})}var Oo=Ds;function Gs(r){return r==null?[]:Oo(r,E(r))}var C=Gs;function Us(r){return r===void 0}var I=Us;function js(r,e){return re||a&&i&&s&&!f&&!u||o&&i&&s||!t&&s||!n)return 1;if(!o&&!a&&!u&&r=f)return s;var u=t[o];return s*(u=="desc"?-1:1)}}return r.index-e.index}var ko=$s;function Js(r,e,t){e.length?e=W(e,function(a){return _(a)?function(i){return $(i,a.length===1?a[0]:a)}:a}):e=[j];var o=-1;e=W(e,mr(O));var n=de(r,function(a,i,f){var s=W(e,function(u){return u(a)});return{criteria:s,index:++o,value:a}});return No(n,function(a,i){return ko(a,i,t)})}var Po=Js;var Qs=se("length"),Ro=Qs;var Fo="\\ud800-\\udfff",ru="\\u0300-\\u036f",eu="\\ufe20-\\ufe2f",tu="\\u20d0-\\u20ff",ou=ru+eu+tu,nu="\\ufe0e\\ufe0f",au="["+Fo+"]",Ee="["+ou+"]",Ie="\\ud83c[\\udffb-\\udfff]",iu="(?:"+Ee+"|"+Ie+")",Bo="[^"+Fo+"]",Do="(?:\\ud83c[\\udde6-\\uddff]){2}",Go="[\\ud800-\\udbff][\\udc00-\\udfff]",fu="\\u200d",Uo=iu+"?",jo="["+nu+"]?",su="(?:"+fu+"(?:"+[Bo,Do,Go].join("|")+")"+jo+Uo+")*",uu=jo+Uo+su,du="(?:"+[Bo+Ee+"?",Ee,Do,Go,au].join("|")+")",Mo=RegExp(Ie+"(?="+Ie+")|"+du+uu,"g");function mu(r){for(var e=Mo.lastIndex=0;Mo.test(r);)++e;return e}var Wo=mu;function pu(r){return St(r)?Wo(r):Ro(r)}var qo=pu;function lu(r,e){return Lo(r,e,function(t,o){return fe(r,o)})}var Yo=lu;var cu=Ot(function(r,e){return r==null?{}:Yo(r,e)}),fr=cu;var hu=Math.ceil,xu=Math.max;function _u(r,e,t,o){for(var n=-1,a=xu(hu((e-r)/(t||1)),0),i=Array(a);a--;)i[o?a:++n]=r,r+=t;return i}var zo=_u;function vu(r){return function(e,t,o){return o&&typeof o!="number"&&nr(e,t,o)&&(t=o=void 0),e=xr(e),t===void 0?(t=e,e=0):t=xr(t),o=o===void 0?e1&&nr(r,e[0],e[1])?e=[]:t>2&&nr(e[0],e[1],e[2])&&(e=[e[0]]),Po(r,gr(e,1),[])}),z=Au;var Tu=1/0,Ou=jr&&1/yr(new jr([,-0]))[1]==Tu?function(r){return new jr(r)}:xt,Ho=Ou;var Su=200;function Lu(r,e,t){var o=-1,n=bt,a=r.length,i=!0,f=[],s=f;if(t)i=!1,n=bo;else if(a>=Su){var u=e?null:Ho(r);if(u)return yr(u);i=!1,n=re,s=new Qr}else s=e?[]:f;r:for(;++o1?n.setNode(a,t):n.setNode(a)}),this}setNode(e,t){return c(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=ur,this._children[e]={},this._children[ur][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return c(this._nodes,e)}removeNode(e){var t=this;if(c(this._nodes,e)){var o=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),d(E(this._in[e]),o),delete this._in[e],delete this._preds[e],d(E(this._out[e]),o),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(I(t))t=ur;else{t+="";for(var o=t;!I(o);o=this.parent(o))if(o===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==ur)return t}}children(e){if(I(e)&&(e=ur),this._isCompound){var t=this._children[e];if(t)return E(t)}else{if(e===ur)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return E(t)}successors(e){var t=this._sucs[e];if(t)return E(t)}neighbors(e){var t=this.predecessors(e);if(t)return Te(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var o=this;d(this._nodes,function(i,f){e(f)&&t.setNode(f,i)}),d(this._edgeObjs,function(i){t.hasNode(i.v)&&t.hasNode(i.w)&&t.setEdge(i,o.edge(i))});var n={};function a(i){var f=o.parent(i);return f===void 0||t.hasNode(f)?(n[i]=f,f):f in n?n[f]:a(f)}return this._isCompound&&d(t.nodes(),function(i){t.setParent(i,a(i))}),t}setDefaultEdgeLabel(e){return Rr(e)||(e=P(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return C(this._edgeObjs)}setPath(e,t){var o=this,n=arguments;return Y(e,function(a,i){return n.length>1?o.setEdge(a,i,t):o.setEdge(a,i),i}),this}setEdge(){var e,t,o,n,a=!1,i=arguments[0];typeof i=="object"&&i!==null&&"v"in i?(e=i.v,t=i.w,o=i.name,arguments.length===2&&(n=arguments[1],a=!0)):(e=i,t=arguments[1],o=arguments[3],arguments.length>2&&(n=arguments[2],a=!0)),e=""+e,t=""+t,I(o)||(o=""+o);var f=Sr(this._isDirected,e,t,o);if(c(this._edgeLabels,f))return a&&(this._edgeLabels[f]=n),this;if(!I(o)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[f]=a?n:this._defaultEdgeLabelFn(e,t,o);var s=Fu(this._isDirected,e,t,o);return e=s.v,t=s.w,Object.freeze(s),this._edgeObjs[f]=s,Jo(this._preds[t],e),Jo(this._sucs[e],t),this._in[t][f]=s,this._out[e][f]=s,this._edgeCount++,this}edge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o);return this._edgeLabels[n]}hasEdge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o);return c(this._edgeLabels,n)}removeEdge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o),a=this._edgeObjs[n];return a&&(e=a.v,t=a.w,delete this._edgeLabels[n],delete this._edgeObjs[n],Qo(this._preds[t],e),Qo(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this}inEdges(e,t){var o=this._in[e];if(o){var n=C(o);return t?S(n,function(a){return a.v===t}):n}}outEdges(e,t){var o=this._out[e];if(o){var n=C(o);return t?S(n,function(a){return a.w===t}):n}}nodeEdges(e,t){var o=this.inEdges(e,t);if(o)return o.concat(this.outEdges(e,t))}};A.prototype._nodeCount=0;A.prototype._edgeCount=0;function Jo(r,e){r[e]?r[e]++:r[e]=1}function Qo(r,e){--r[e]||delete r[e]}function Sr(r,e,t,o){var n=""+e,a=""+t;if(!r&&n>a){var i=n;n=a,a=i}return n+$o+a+$o+(I(o)?Mu:o)}function Fu(r,e,t,o){var n=""+e,a=""+t;if(!r&&n>a){var i=n;n=a,a=i}var f={v:n,w:a};return o&&(f.name=o),f}function Oe(r,e){return Sr(r,e.v,e.w,e.name)}function K(r,e,t,o){var n;do n=sr(o);while(r.hasNode(n));return t.dummy=e,r.setNode(n,t),n}function rn(r){var e=new A().setGraph(r.graph());return d(r.nodes(),function(t){e.setNode(t,r.node(t))}),d(r.edges(),function(t){var o=e.edge(t.v,t.w)||{weight:0,minlen:1},n=r.edge(t);e.setEdge(t.v,t.w,{weight:o.weight+n.weight,minlen:Math.max(o.minlen,n.minlen)})}),e}function le(r){var e=new A({multigraph:r.isMultigraph()}).setGraph(r.graph());return d(r.nodes(),function(t){r.children(t).length||e.setNode(t,r.node(t))}),d(r.edges(),function(t){e.setEdge(t,r.edge(t))}),e}function Se(r,e){var t=r.x,o=r.y,n=e.x-t,a=e.y-o,i=r.width/2,f=r.height/2;if(!n&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var s,u;return Math.abs(a)*i>Math.abs(n)*f?(a<0&&(f=-f),s=f*n/a,u=f):(n<0&&(i=-i),s=i,u=i*a/n),{x:t+s,y:o+u}}function rr(r){var e=g(M(Ne(r)+1),function(){return[]});return d(r.nodes(),function(t){var o=r.node(t),n=o.rank;I(n)||(e[n][o.order]=t)}),e}function en(r){var e=V(g(r.nodes(),function(t){return r.node(t).rank}));d(r.nodes(),function(t){var o=r.node(t);c(o,"rank")&&(o.rank-=e)})}function tn(r){var e=V(g(r.nodes(),function(a){return r.node(a).rank})),t=[];d(r.nodes(),function(a){var i=r.node(a).rank-e;t[i]||(t[i]=[]),t[i].push(a)});var o=0,n=r.graph().nodeRankFactor;d(t,function(a,i){I(a)&&i%n!==0?--o:o&&d(a,function(f){r.node(f).rank+=o})})}function Le(r,e,t,o){var n={width:0,height:0};return arguments.length>=4&&(n.rank=t,n.order=o),K(r,"border",n,e)}function Ne(r){return L(g(r.nodes(),function(e){var t=r.node(e).rank;if(!I(t))return t}))}function on(r,e){var t={lhs:[],rhs:[]};return d(r,function(o){e(o)?t.lhs.push(o):t.rhs.push(o)}),t}function nn(r,e){var t=ue();try{return e()}finally{console.log(r+" time: "+(ue()-t)+"ms")}}function an(r,e){return e()}function sn(r){function e(t){var o=r.children(t),n=r.node(t);if(o.length&&d(o,e),c(n,"minRank")){n.borderLeft=[],n.borderRight=[];for(var a=n.minRank,i=n.maxRank+1;a0;--f)if(i=e[f].dequeue(),i){o=o.concat(Pe(r,e,t,i,!0));break}}}return o}function Pe(r,e,t,o,n){var a=n?[]:void 0;return d(r.inEdges(o.v),function(i){var f=r.edge(i),s=r.node(i.v);n&&a.push({v:i.v,w:i.w}),s.out-=f,Re(e,t,s)}),d(r.outEdges(o.v),function(i){var f=r.edge(i),s=i.w,u=r.node(s);u.in-=f,Re(e,t,u)}),r.removeNode(o.v),a}function qu(r,e){var t=new A,o=0,n=0;d(r.nodes(),function(f){t.setNode(f,{v:f,in:0,out:0})}),d(r.edges(),function(f){var s=t.edge(f.v,f.w)||0,u=e(f),m=s+u;t.setEdge(f.v,f.w,m),n=Math.max(n,t.node(f.v).out+=u),o=Math.max(o,t.node(f.w).in+=u)});var a=M(n+o+3).map(function(){return new ce}),i=o+1;return d(t.nodes(),function(f){Re(a,i,t.node(f))}),{graph:t,buckets:a,zeroIdx:i}}function Re(r,e,t){t.out?t.in?r[t.out-t.in+e].enqueue(t):r[r.length-1].enqueue(t):r[0].enqueue(t)}function hn(r){var e=r.graph().acyclicer==="greedy"?cn(r,t(r)):Yu(r);d(e,function(o){var n=r.edge(o);r.removeEdge(o),n.forwardName=o.name,n.reversed=!0,r.setEdge(o.w,o.v,n,sr("rev"))});function t(o){return function(n){return o.edge(n).weight}}}function Yu(r){var e=[],t={},o={};function n(a){c(o,a)||(o[a]=!0,t[a]=!0,d(r.outEdges(a),function(i){c(t,i.w)?e.push(i):n(i.w)}),delete t[a])}return d(r.nodes(),n),e}function xn(r){d(r.edges(),function(e){var t=r.edge(e);if(t.reversed){r.removeEdge(e);var o=t.forwardName;delete t.reversed,delete t.forwardName,r.setEdge(e.w,e.v,t,o)}})}function vn(r){r.graph().dummyChains=[],d(r.edges(),function(e){zu(r,e)})}function zu(r,e){var t=e.v,o=r.node(t).rank,n=e.w,a=r.node(n).rank,i=e.name,f=r.edge(e),s=f.labelRank;if(a!==o+1){r.removeEdge(e);var u,m,p;for(p=0,++o;oi.lim&&(f=i,s=!0);var u=S(e.edges(),function(m){return s===wn(r,r.node(m.v),f)&&s!==wn(r,r.node(m.w),f)});return ir(u,function(m){return dr(e,m)})}function On(r,e,t,o){var n=t.v,a=t.w;r.removeEdge(n,a),r.setEdge(o.v,o.w,{}),Ge(r),De(r,e),rd(r,e)}function rd(r,e){var t=Ir(r.nodes(),function(n){return!e.node(n).parent}),o=Be(r,t);o=o.slice(1),d(o,function(n){var a=r.node(n).parent,i=e.edge(n,a),f=!1;i||(i=e.edge(a,n),f=!0),e.node(n).rank=e.node(a).rank+(f?i.minlen:-i.minlen)})}function ed(r,e,t){return r.hasEdge(e,t)}function wn(r,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Ue(r){switch(r.graph().ranker){case"network-simplex":Sn(r);break;case"tight-tree":od(r);break;case"longest-path":td(r);break;default:Sn(r)}}var td=Lr;function od(r){Lr(r),he(r)}function Sn(r){tr(r)}function Ln(r){var e=K(r,"root",{},"_root"),t=nd(r),o=L(C(t))-1,n=2*o+1;r.graph().nestingRoot=e,d(r.edges(),function(i){r.edge(i).minlen*=n});var a=ad(r)+1;d(r.children(),function(i){Nn(r,e,n,a,o,t,i)}),r.graph().nodeRankFactor=n}function Nn(r,e,t,o,n,a,i){var f=r.children(i);if(!f.length){i!==e&&r.setEdge(e,i,{weight:0,minlen:t});return}var s=Le(r,"_bt"),u=Le(r,"_bb"),m=r.node(i);r.setParent(s,i),m.borderTop=s,r.setParent(u,i),m.borderBottom=u,d(f,function(p){Nn(r,e,t,o,n,a,p);var l=r.node(p),x=l.borderTop?l.borderTop:p,h=l.borderBottom?l.borderBottom:p,v=l.borderTop?o:2*o,w=x!==h?1:n-a[i]+1;r.setEdge(s,x,{weight:v,minlen:w,nestingEdge:!0}),r.setEdge(h,u,{weight:v,minlen:w,nestingEdge:!0})}),r.parent(i)||r.setEdge(e,s,{weight:0,minlen:n+a[i]})}function nd(r){var e={};function t(o,n){var a=r.children(o);a&&a.length&&d(a,function(i){t(i,n+1)}),e[o]=n}return d(r.children(),function(o){t(o,1)}),e}function ad(r){return Y(r.edges(),function(e,t){return e+r.edge(t).weight},0)}function Cn(r){var e=r.graph();r.removeNode(e.nestingRoot),delete e.nestingRoot,d(r.edges(),function(t){var o=r.edge(t);o.nestingEdge&&r.removeEdge(t)})}function kn(r,e,t){var o={},n;d(t,function(a){for(var i=r.parent(a),f,s;i;){if(f=r.parent(i),f?(s=o[f],o[f]=i):(s=n,n=i),s&&s!==i){e.setEdge(s,i);return}i=f}})}function Pn(r,e,t){var o=fd(r),n=new A({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(a){return r.node(a)});return d(r.nodes(),function(a){var i=r.node(a),f=r.parent(a);(i.rank===e||i.minRank<=e&&e<=i.maxRank)&&(n.setNode(a),n.setParent(a,f||o),d(r[t](a),function(s){var u=s.v===a?s.w:s.v,m=n.edge(u,a),p=I(m)?0:m.weight;n.setEdge(u,a,{weight:r.edge(s).weight+p})}),c(i,"minRank")&&n.setNode(a,{borderLeft:i.borderLeft[e],borderRight:i.borderRight[e]}))}),n}function fd(r){for(var e;r.hasNode(e=sr("_root")););return e}function Rn(r,e){for(var t=0,o=1;o0;)m%2&&(p+=f[m+1]),m=m-1>>1,f[m]+=u.weight;s+=u.weight*p})),s}function Mn(r){var e={},t=S(r.nodes(),function(f){return!r.children(f).length}),o=L(g(t,function(f){return r.node(f).rank})),n=g(M(o+1),function(){return[]});function a(f){if(!c(e,f)){e[f]=!0;var s=r.node(f);n[s.rank].push(f),d(r.successors(f),a)}}var i=z(t,function(f){return r.node(f).rank});return d(i,a),n}function Fn(r,e){return g(e,function(t){var o=r.inEdges(t);if(o.length){var n=Y(o,function(a,i){var f=r.edge(i),s=r.node(i.v);return{sum:a.sum+f.weight*s.order,weight:a.weight+f.weight}},{sum:0,weight:0});return{v:t,barycenter:n.sum/n.weight,weight:n.weight}}else return{v:t}})}function Bn(r,e){var t={};d(r,function(n,a){var i=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:a};I(n.barycenter)||(i.barycenter=n.barycenter,i.weight=n.weight)}),d(e.edges(),function(n){var a=t[n.v],i=t[n.w];!I(a)&&!I(i)&&(i.indegree++,a.out.push(t[n.w]))});var o=S(t,function(n){return!n.indegree});return ud(o)}function ud(r){var e=[];function t(a){return function(i){i.merged||(I(i.barycenter)||I(a.barycenter)||i.barycenter>=a.barycenter)&&dd(a,i)}}function o(a){return function(i){i.in.push(a),--i.indegree===0&&r.push(i)}}for(;r.length;){var n=r.pop();e.push(n),d(n.in.reverse(),t(n)),d(n.out,o(n))}return g(S(e,function(a){return!a.merged}),function(a){return fr(a,["vs","i","barycenter","weight"])})}function dd(r,e){var t=0,o=0;r.weight&&(t+=r.barycenter*r.weight,o+=r.weight),e.weight&&(t+=e.barycenter*e.weight,o+=e.weight),r.vs=e.vs.concat(r.vs),r.barycenter=t/o,r.weight=o,r.i=Math.min(e.i,r.i),e.merged=!0}function Gn(r,e){var t=on(r,function(m){return c(m,"barycenter")}),o=t.lhs,n=z(t.rhs,function(m){return-m.i}),a=[],i=0,f=0,s=0;o.sort(md(!!e)),s=Dn(a,n,s),d(o,function(m){s+=m.vs.length,a.push(m.vs),i+=m.barycenter*m.weight,f+=m.weight,s=Dn(a,n,s)});var u={vs:R(a)};return f&&(u.barycenter=i/f,u.weight=f),u}function Dn(r,e,t){for(var o;e.length&&(o=Q(e)).i<=t;)e.pop(),r.push(o.vs),t++;return t}function md(r){return function(e,t){return e.barycentert.barycenter?1:r?t.i-e.i:e.i-t.i}}function je(r,e,t,o){var n=r.children(e),a=r.node(e),i=a?a.borderLeft:void 0,f=a?a.borderRight:void 0,s={};i&&(n=S(n,function(h){return h!==i&&h!==f}));var u=Fn(r,n);d(u,function(h){if(r.children(h.v).length){var v=je(r,h.v,t,o);s[h.v]=v,c(v,"barycenter")&&ld(h,v)}});var m=Bn(u,t);pd(m,s);var p=Gn(m,o);if(i&&(p.vs=R([i,p.vs,f]),r.predecessors(i).length)){var l=r.node(r.predecessors(i)[0]),x=r.node(r.predecessors(f)[0]);c(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+l.order+x.order)/(p.weight+2),p.weight+=2}return p}function pd(r,e){d(r,function(t){t.vs=R(t.vs.map(function(o){return e[o]?e[o].vs:o}))})}function ld(r,e){I(r.barycenter)?(r.barycenter=e.barycenter,r.weight=e.weight):(r.barycenter=(r.barycenter*r.weight+e.barycenter*e.weight)/(r.weight+e.weight),r.weight+=e.weight)}function Wn(r){var e=Ne(r),t=Un(r,M(1,e+1),"inEdges"),o=Un(r,M(e-1,-1,-1),"outEdges"),n=Mn(r);jn(r,n);for(var a=Number.POSITIVE_INFINITY,i,f=0,s=0;s<4;++f,++s){cd(f%2?t:o,f%4>=2),n=rr(r);var u=Rn(r,n);ui||f>e[s].lim));for(u=s,s=o;(s=r.parent(s))!==u;)a.push(s);return{path:n.concat(a.reverse()),lca:u}}function xd(r){var e={},t=0;function o(n){var a=t;d(r.children(n),o),e[n]={low:a,lim:t++}}return d(r.children(),o),e}function _d(r,e){var t={};function o(n,a){var i=0,f=0,s=n.length,u=Q(a);return d(a,function(m,p){var l=gd(r,m),x=l?r.node(l).order:s;(l||m===u)&&(d(a.slice(f,p+1),function(h){d(r.predecessors(h),function(v){var w=r.node(v),T=w.order;(Tu)&&Yn(t,l,m)})})}function n(a,i){var f=-1,s,u=0;return d(i,function(m,p){if(r.node(m).dummy==="border"){var l=r.predecessors(m);l.length&&(s=r.node(l[0]).order,o(i,u,p,f,s),u=p,f=s)}o(i,u,i.length,s,a.length)}),i}return Y(e,n),t}function gd(r,e){if(r.node(e).dummy)return Ir(r.predecessors(e),function(t){return r.node(t).dummy})}function Yn(r,e,t){if(e>t){var o=e;e=t,t=o}var n=r[e];n||(r[e]=n={}),n[t]=!0}function bd(r,e,t){if(e>t){var o=e;e=t,t=o}return c(r[e],t)}function yd(r,e,t,o){var n={},a={},i={};return d(e,function(f){d(f,function(s,u){n[s]=s,a[s]=s,i[s]=u})}),d(e,function(f){var s=-1;d(f,function(u){var m=o(u);if(m.length){m=z(m,function(v){return i[v]});for(var p=(m.length-1)/2,l=Math.floor(p),x=Math.ceil(p);l<=x;++l){var h=m[l];a[u]===u&&s-1}var bt=ha;function xa(r){return G(r)?ot(r):Ur(r)}var E=xa;var _a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,va=/^\w*$/;function ga(r,e){if(_(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||N(r)?!0:va.test(r)||!_a.test(r)||e!=null&&r in Object(e)}var _r=ga;var ba=500;function ya(r){var e=Ve(r,function(o){return t.size===ba&&t.clear(),o}),t=e.cache;return e}var yt=ya;var wa=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ea=/\\(\\)?/g,Ia=yt(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(wa,function(t,o,n,a){e.push(n?a.replace(Ea,"$1"):o||t)}),e}),wt=Ia;function Aa(r){return r==null?"":ut(r)}var zr=Aa;function Ta(r,e){return _(r)?r:_r(r,e)?[r]:wt(zr(r))}var Z=Ta;var Oa=1/0;function Sa(r){if(typeof r=="string"||N(r))return r;var e=r+"";return e=="0"&&1/r==-Oa?"-0":e}var q=Sa;function La(r,e){e=Z(e,r);for(var t=0,o=e.length;r!=null&&t0&&t(f)?e>1?Tt(f,e-1,t,o,n):vr(n,f):o||(n[n.length]=f)}return n}var gr=Tt;function Pa(r){var e=r==null?0:r.length;return e?gr(r,1):[]}var R=Pa;function Ra(r){return at(nt(r,void 0,R),r+"")}var Ot=Ra;var Ma="\\ud800-\\udfff",Fa="\\u0300-\\u036f",Ba="\\ufe20-\\ufe2f",Da="\\u20d0-\\u20ff",Ga=Fa+Ba+Da,Ua="\\ufe0e\\ufe0f",ja="\\u200d",Wa=RegExp("["+ja+Ma+Ga+Ua+"]");function qa(r){return Wa.test(r)}var St=qa;function Ya(r,e,t,o){var n=-1,a=r==null?0:r.length;for(o&&a&&(t=r[++n]);++nf))return!1;var u=a.get(r),m=a.get(e);if(u&&m)return u==e&&m==r;var p=-1,l=!0,x=t&Ef?new Qr:void 0;for(a.set(r,e),a.set(e,r);++p2?e[2]:void 0;for(n&&nr(e[0],e[1],n)&&(o=1);++t-1?n[a?e[i]:i]:void 0}}var wo=Es;var Is=Math.max;function As(r,e,t){var o=r==null?0:r.length;if(!o)return-1;var n=t==null?0:ht(t);return n<0&&(n=Is(o+n,0)),Yr(r,O(e,3),n)}var Eo=As;var Ts=wo(Eo),Ir=Ts;function Os(r,e){var t=-1,o=G(r)?Array(r.length):[];return J(r,function(n,a,i){o[++t]=e(n,a,i)}),o}var de=Os;function Ss(r,e){var t=_(r)?W:de;return t(r,O(e,3))}var g=Ss;function Ls(r,e){return r==null?r:Fr(r,Er(e),U)}var ye=Ls;function Ns(r,e){return r&&wr(r,Er(e))}var we=Ns;function Cs(r,e){return r>e}var Io=Cs;var ks=Object.prototype,Ps=ks.hasOwnProperty;function Rs(r,e){return r!=null&&Ps.call(r,e)}var Ao=Rs;function Ms(r,e){return r!=null&&ie(r,e,Ao)}var c=Ms;var Fs="[object String]";function Bs(r){return typeof r=="string"||!_(r)&&F(r)&&Pr(r)==Fs}var To=Bs;function Ds(r,e){return W(e,function(t){return r[t]})}var Oo=Ds;function Gs(r){return r==null?[]:Oo(r,E(r))}var C=Gs;function Us(r){return r===void 0}var I=Us;function js(r,e){return re||a&&i&&s&&!f&&!u||o&&i&&s||!t&&s||!n)return 1;if(!o&&!a&&!u&&r=f)return s;var u=t[o];return s*(u=="desc"?-1:1)}}return r.index-e.index}var ko=$s;function Js(r,e,t){e.length?e=W(e,function(a){return _(a)?function(i){return $(i,a.length===1?a[0]:a)}:a}):e=[j];var o=-1;e=W(e,mr(O));var n=de(r,function(a,i,f){var s=W(e,function(u){return u(a)});return{criteria:s,index:++o,value:a}});return No(n,function(a,i){return ko(a,i,t)})}var Po=Js;var Qs=se("length"),Ro=Qs;var Fo="\\ud800-\\udfff",ru="\\u0300-\\u036f",eu="\\ufe20-\\ufe2f",tu="\\u20d0-\\u20ff",ou=ru+eu+tu,nu="\\ufe0e\\ufe0f",au="["+Fo+"]",Ee="["+ou+"]",Ie="\\ud83c[\\udffb-\\udfff]",iu="(?:"+Ee+"|"+Ie+")",Bo="[^"+Fo+"]",Do="(?:\\ud83c[\\udde6-\\uddff]){2}",Go="[\\ud800-\\udbff][\\udc00-\\udfff]",fu="\\u200d",Uo=iu+"?",jo="["+nu+"]?",su="(?:"+fu+"(?:"+[Bo,Do,Go].join("|")+")"+jo+Uo+")*",uu=jo+Uo+su,du="(?:"+[Bo+Ee+"?",Ee,Do,Go,au].join("|")+")",Mo=RegExp(Ie+"(?="+Ie+")|"+du+uu,"g");function mu(r){for(var e=Mo.lastIndex=0;Mo.test(r);)++e;return e}var Wo=mu;function pu(r){return St(r)?Wo(r):Ro(r)}var qo=pu;function lu(r,e){return Lo(r,e,function(t,o){return fe(r,o)})}var Yo=lu;var cu=Ot(function(r,e){return r==null?{}:Yo(r,e)}),fr=cu;var hu=Math.ceil,xu=Math.max;function _u(r,e,t,o){for(var n=-1,a=xu(hu((e-r)/(t||1)),0),i=Array(a);a--;)i[o?a:++n]=r,r+=t;return i}var zo=_u;function vu(r){return function(e,t,o){return o&&typeof o!="number"&&nr(e,t,o)&&(t=o=void 0),e=xr(e),t===void 0?(t=e,e=0):t=xr(t),o=o===void 0?e1&&nr(r,e[0],e[1])?e=[]:t>2&&nr(e[0],e[1],e[2])&&(e=[e[0]]),Po(r,gr(e,1),[])}),z=Au;var Tu=1/0,Ou=jr&&1/yr(new jr([,-0]))[1]==Tu?function(r){return new jr(r)}:xt,Ho=Ou;var Su=200;function Lu(r,e,t){var o=-1,n=bt,a=r.length,i=!0,f=[],s=f;if(t)i=!1,n=bo;else if(a>=Su){var u=e?null:Ho(r);if(u)return yr(u);i=!1,n=re,s=new Qr}else s=e?[]:f;r:for(;++o1?n.setNode(a,t):n.setNode(a)}),this}setNode(e,t){return c(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=ur,this._children[e]={},this._children[ur][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return c(this._nodes,e)}removeNode(e){var t=this;if(c(this._nodes,e)){var o=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],d(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),d(E(this._in[e]),o),delete this._in[e],delete this._preds[e],d(E(this._out[e]),o),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(I(t))t=ur;else{t+="";for(var o=t;!I(o);o=this.parent(o))if(o===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==ur)return t}}children(e){if(I(e)&&(e=ur),this._isCompound){var t=this._children[e];if(t)return E(t)}else{if(e===ur)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var t=this._preds[e];if(t)return E(t)}successors(e){var t=this._sucs[e];if(t)return E(t)}neighbors(e){var t=this.predecessors(e);if(t)return Te(t,this.successors(e))}isLeaf(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var o=this;d(this._nodes,function(i,f){e(f)&&t.setNode(f,i)}),d(this._edgeObjs,function(i){t.hasNode(i.v)&&t.hasNode(i.w)&&t.setEdge(i,o.edge(i))});var n={};function a(i){var f=o.parent(i);return f===void 0||t.hasNode(f)?(n[i]=f,f):f in n?n[f]:a(f)}return this._isCompound&&d(t.nodes(),function(i){t.setParent(i,a(i))}),t}setDefaultEdgeLabel(e){return Rr(e)||(e=P(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return C(this._edgeObjs)}setPath(e,t){var o=this,n=arguments;return Y(e,function(a,i){return n.length>1?o.setEdge(a,i,t):o.setEdge(a,i),i}),this}setEdge(){var e,t,o,n,a=!1,i=arguments[0];typeof i=="object"&&i!==null&&"v"in i?(e=i.v,t=i.w,o=i.name,arguments.length===2&&(n=arguments[1],a=!0)):(e=i,t=arguments[1],o=arguments[3],arguments.length>2&&(n=arguments[2],a=!0)),e=""+e,t=""+t,I(o)||(o=""+o);var f=Sr(this._isDirected,e,t,o);if(c(this._edgeLabels,f))return a&&(this._edgeLabels[f]=n),this;if(!I(o)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[f]=a?n:this._defaultEdgeLabelFn(e,t,o);var s=Fu(this._isDirected,e,t,o);return e=s.v,t=s.w,Object.freeze(s),this._edgeObjs[f]=s,Jo(this._preds[t],e),Jo(this._sucs[e],t),this._in[t][f]=s,this._out[e][f]=s,this._edgeCount++,this}edge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o);return this._edgeLabels[n]}hasEdge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o);return c(this._edgeLabels,n)}removeEdge(e,t,o){var n=arguments.length===1?Oe(this._isDirected,arguments[0]):Sr(this._isDirected,e,t,o),a=this._edgeObjs[n];return a&&(e=a.v,t=a.w,delete this._edgeLabels[n],delete this._edgeObjs[n],Qo(this._preds[t],e),Qo(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this}inEdges(e,t){var o=this._in[e];if(o){var n=C(o);return t?S(n,function(a){return a.v===t}):n}}outEdges(e,t){var o=this._out[e];if(o){var n=C(o);return t?S(n,function(a){return a.w===t}):n}}nodeEdges(e,t){var o=this.inEdges(e,t);if(o)return o.concat(this.outEdges(e,t))}};A.prototype._nodeCount=0;A.prototype._edgeCount=0;function Jo(r,e){r[e]?r[e]++:r[e]=1}function Qo(r,e){--r[e]||delete r[e]}function Sr(r,e,t,o){var n=""+e,a=""+t;if(!r&&n>a){var i=n;n=a,a=i}return n+$o+a+$o+(I(o)?Mu:o)}function Fu(r,e,t,o){var n=""+e,a=""+t;if(!r&&n>a){var i=n;n=a,a=i}var f={v:n,w:a};return o&&(f.name=o),f}function Oe(r,e){return Sr(r,e.v,e.w,e.name)}function K(r,e,t,o){var n;do n=sr(o);while(r.hasNode(n));return t.dummy=e,r.setNode(n,t),n}function rn(r){var e=new A().setGraph(r.graph());return d(r.nodes(),function(t){e.setNode(t,r.node(t))}),d(r.edges(),function(t){var o=e.edge(t.v,t.w)||{weight:0,minlen:1},n=r.edge(t);e.setEdge(t.v,t.w,{weight:o.weight+n.weight,minlen:Math.max(o.minlen,n.minlen)})}),e}function le(r){var e=new A({multigraph:r.isMultigraph()}).setGraph(r.graph());return d(r.nodes(),function(t){r.children(t).length||e.setNode(t,r.node(t))}),d(r.edges(),function(t){e.setEdge(t,r.edge(t))}),e}function Se(r,e){var t=r.x,o=r.y,n=e.x-t,a=e.y-o,i=r.width/2,f=r.height/2;if(!n&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var s,u;return Math.abs(a)*i>Math.abs(n)*f?(a<0&&(f=-f),s=f*n/a,u=f):(n<0&&(i=-i),s=i,u=i*a/n),{x:t+s,y:o+u}}function rr(r){var e=g(M(Ne(r)+1),function(){return[]});return d(r.nodes(),function(t){var o=r.node(t),n=o.rank;I(n)||(e[n][o.order]=t)}),e}function en(r){var e=V(g(r.nodes(),function(t){return r.node(t).rank}));d(r.nodes(),function(t){var o=r.node(t);c(o,"rank")&&(o.rank-=e)})}function tn(r){var e=V(g(r.nodes(),function(a){return r.node(a).rank})),t=[];d(r.nodes(),function(a){var i=r.node(a).rank-e;t[i]||(t[i]=[]),t[i].push(a)});var o=0,n=r.graph().nodeRankFactor;d(t,function(a,i){I(a)&&i%n!==0?--o:o&&d(a,function(f){r.node(f).rank+=o})})}function Le(r,e,t,o){var n={width:0,height:0};return arguments.length>=4&&(n.rank=t,n.order=o),K(r,"border",n,e)}function Ne(r){return L(g(r.nodes(),function(e){var t=r.node(e).rank;if(!I(t))return t}))}function on(r,e){var t={lhs:[],rhs:[]};return d(r,function(o){e(o)?t.lhs.push(o):t.rhs.push(o)}),t}function nn(r,e){var t=ue();try{return e()}finally{console.log(r+" time: "+(ue()-t)+"ms")}}function an(r,e){return e()}function sn(r){function e(t){var o=r.children(t),n=r.node(t);if(o.length&&d(o,e),c(n,"minRank")){n.borderLeft=[],n.borderRight=[];for(var a=n.minRank,i=n.maxRank+1;a0;--f)if(i=e[f].dequeue(),i){o=o.concat(Pe(r,e,t,i,!0));break}}}return o}function Pe(r,e,t,o,n){var a=n?[]:void 0;return d(r.inEdges(o.v),function(i){var f=r.edge(i),s=r.node(i.v);n&&a.push({v:i.v,w:i.w}),s.out-=f,Re(e,t,s)}),d(r.outEdges(o.v),function(i){var f=r.edge(i),s=i.w,u=r.node(s);u.in-=f,Re(e,t,u)}),r.removeNode(o.v),a}function qu(r,e){var t=new A,o=0,n=0;d(r.nodes(),function(f){t.setNode(f,{v:f,in:0,out:0})}),d(r.edges(),function(f){var s=t.edge(f.v,f.w)||0,u=e(f),m=s+u;t.setEdge(f.v,f.w,m),n=Math.max(n,t.node(f.v).out+=u),o=Math.max(o,t.node(f.w).in+=u)});var a=M(n+o+3).map(function(){return new ce}),i=o+1;return d(t.nodes(),function(f){Re(a,i,t.node(f))}),{graph:t,buckets:a,zeroIdx:i}}function Re(r,e,t){t.out?t.in?r[t.out-t.in+e].enqueue(t):r[r.length-1].enqueue(t):r[0].enqueue(t)}function hn(r){var e=r.graph().acyclicer==="greedy"?cn(r,t(r)):Yu(r);d(e,function(o){var n=r.edge(o);r.removeEdge(o),n.forwardName=o.name,n.reversed=!0,r.setEdge(o.w,o.v,n,sr("rev"))});function t(o){return function(n){return o.edge(n).weight}}}function Yu(r){var e=[],t={},o={};function n(a){c(o,a)||(o[a]=!0,t[a]=!0,d(r.outEdges(a),function(i){c(t,i.w)?e.push(i):n(i.w)}),delete t[a])}return d(r.nodes(),n),e}function xn(r){d(r.edges(),function(e){var t=r.edge(e);if(t.reversed){r.removeEdge(e);var o=t.forwardName;delete t.reversed,delete t.forwardName,r.setEdge(e.w,e.v,t,o)}})}function vn(r){r.graph().dummyChains=[],d(r.edges(),function(e){zu(r,e)})}function zu(r,e){var t=e.v,o=r.node(t).rank,n=e.w,a=r.node(n).rank,i=e.name,f=r.edge(e),s=f.labelRank;if(a!==o+1){r.removeEdge(e);var u,m,p;for(p=0,++o;oi.lim&&(f=i,s=!0);var u=S(e.edges(),function(m){return s===wn(r,r.node(m.v),f)&&s!==wn(r,r.node(m.w),f)});return ir(u,function(m){return dr(e,m)})}function On(r,e,t,o){var n=t.v,a=t.w;r.removeEdge(n,a),r.setEdge(o.v,o.w,{}),Ge(r),De(r,e),rd(r,e)}function rd(r,e){var t=Ir(r.nodes(),function(n){return!e.node(n).parent}),o=Be(r,t);o=o.slice(1),d(o,function(n){var a=r.node(n).parent,i=e.edge(n,a),f=!1;i||(i=e.edge(a,n),f=!0),e.node(n).rank=e.node(a).rank+(f?i.minlen:-i.minlen)})}function ed(r,e,t){return r.hasEdge(e,t)}function wn(r,e,t){return t.low<=e.lim&&e.lim<=t.lim}function Ue(r){switch(r.graph().ranker){case"network-simplex":Sn(r);break;case"tight-tree":od(r);break;case"longest-path":td(r);break;default:Sn(r)}}var td=Lr;function od(r){Lr(r),he(r)}function Sn(r){tr(r)}function Ln(r){var e=K(r,"root",{},"_root"),t=nd(r),o=L(C(t))-1,n=2*o+1;r.graph().nestingRoot=e,d(r.edges(),function(i){r.edge(i).minlen*=n});var a=ad(r)+1;d(r.children(),function(i){Nn(r,e,n,a,o,t,i)}),r.graph().nodeRankFactor=n}function Nn(r,e,t,o,n,a,i){var f=r.children(i);if(!f.length){i!==e&&r.setEdge(e,i,{weight:0,minlen:t});return}var s=Le(r,"_bt"),u=Le(r,"_bb"),m=r.node(i);r.setParent(s,i),m.borderTop=s,r.setParent(u,i),m.borderBottom=u,d(f,function(p){Nn(r,e,t,o,n,a,p);var l=r.node(p),x=l.borderTop?l.borderTop:p,h=l.borderBottom?l.borderBottom:p,v=l.borderTop?o:2*o,w=x!==h?1:n-a[i]+1;r.setEdge(s,x,{weight:v,minlen:w,nestingEdge:!0}),r.setEdge(h,u,{weight:v,minlen:w,nestingEdge:!0})}),r.parent(i)||r.setEdge(e,s,{weight:0,minlen:n+a[i]})}function nd(r){var e={};function t(o,n){var a=r.children(o);a&&a.length&&d(a,function(i){t(i,n+1)}),e[o]=n}return d(r.children(),function(o){t(o,1)}),e}function ad(r){return Y(r.edges(),function(e,t){return e+r.edge(t).weight},0)}function Cn(r){var e=r.graph();r.removeNode(e.nestingRoot),delete e.nestingRoot,d(r.edges(),function(t){var o=r.edge(t);o.nestingEdge&&r.removeEdge(t)})}function kn(r,e,t){var o={},n;d(t,function(a){for(var i=r.parent(a),f,s;i;){if(f=r.parent(i),f?(s=o[f],o[f]=i):(s=n,n=i),s&&s!==i){e.setEdge(s,i);return}i=f}})}function Pn(r,e,t){var o=fd(r),n=new A({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(a){return r.node(a)});return d(r.nodes(),function(a){var i=r.node(a),f=r.parent(a);(i.rank===e||i.minRank<=e&&e<=i.maxRank)&&(n.setNode(a),n.setParent(a,f||o),d(r[t](a),function(s){var u=s.v===a?s.w:s.v,m=n.edge(u,a),p=I(m)?0:m.weight;n.setEdge(u,a,{weight:r.edge(s).weight+p})}),c(i,"minRank")&&n.setNode(a,{borderLeft:i.borderLeft[e],borderRight:i.borderRight[e]}))}),n}function fd(r){for(var e;r.hasNode(e=sr("_root")););return e}function Rn(r,e){for(var t=0,o=1;o0;)m%2&&(p+=f[m+1]),m=m-1>>1,f[m]+=u.weight;s+=u.weight*p})),s}function Mn(r){var e={},t=S(r.nodes(),function(f){return!r.children(f).length}),o=L(g(t,function(f){return r.node(f).rank})),n=g(M(o+1),function(){return[]});function a(f){if(!c(e,f)){e[f]=!0;var s=r.node(f);n[s.rank].push(f),d(r.successors(f),a)}}var i=z(t,function(f){return r.node(f).rank});return d(i,a),n}function Fn(r,e){return g(e,function(t){var o=r.inEdges(t);if(o.length){var n=Y(o,function(a,i){var f=r.edge(i),s=r.node(i.v);return{sum:a.sum+f.weight*s.order,weight:a.weight+f.weight}},{sum:0,weight:0});return{v:t,barycenter:n.sum/n.weight,weight:n.weight}}else return{v:t}})}function Bn(r,e){var t={};d(r,function(n,a){var i=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:a};I(n.barycenter)||(i.barycenter=n.barycenter,i.weight=n.weight)}),d(e.edges(),function(n){var a=t[n.v],i=t[n.w];!I(a)&&!I(i)&&(i.indegree++,a.out.push(t[n.w]))});var o=S(t,function(n){return!n.indegree});return ud(o)}function ud(r){var e=[];function t(a){return function(i){i.merged||(I(i.barycenter)||I(a.barycenter)||i.barycenter>=a.barycenter)&&dd(a,i)}}function o(a){return function(i){i.in.push(a),--i.indegree===0&&r.push(i)}}for(;r.length;){var n=r.pop();e.push(n),d(n.in.reverse(),t(n)),d(n.out,o(n))}return g(S(e,function(a){return!a.merged}),function(a){return fr(a,["vs","i","barycenter","weight"])})}function dd(r,e){var t=0,o=0;r.weight&&(t+=r.barycenter*r.weight,o+=r.weight),e.weight&&(t+=e.barycenter*e.weight,o+=e.weight),r.vs=e.vs.concat(r.vs),r.barycenter=t/o,r.weight=o,r.i=Math.min(e.i,r.i),e.merged=!0}function Gn(r,e){var t=on(r,function(m){return c(m,"barycenter")}),o=t.lhs,n=z(t.rhs,function(m){return-m.i}),a=[],i=0,f=0,s=0;o.sort(md(!!e)),s=Dn(a,n,s),d(o,function(m){s+=m.vs.length,a.push(m.vs),i+=m.barycenter*m.weight,f+=m.weight,s=Dn(a,n,s)});var u={vs:R(a)};return f&&(u.barycenter=i/f,u.weight=f),u}function Dn(r,e,t){for(var o;e.length&&(o=Q(e)).i<=t;)e.pop(),r.push(o.vs),t++;return t}function md(r){return function(e,t){return e.barycentert.barycenter?1:r?t.i-e.i:e.i-t.i}}function je(r,e,t,o){var n=r.children(e),a=r.node(e),i=a?a.borderLeft:void 0,f=a?a.borderRight:void 0,s={};i&&(n=S(n,function(h){return h!==i&&h!==f}));var u=Fn(r,n);d(u,function(h){if(r.children(h.v).length){var v=je(r,h.v,t,o);s[h.v]=v,c(v,"barycenter")&&ld(h,v)}});var m=Bn(u,t);pd(m,s);var p=Gn(m,o);if(i&&(p.vs=R([i,p.vs,f]),r.predecessors(i).length)){var l=r.node(r.predecessors(i)[0]),x=r.node(r.predecessors(f)[0]);c(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+l.order+x.order)/(p.weight+2),p.weight+=2}return p}function pd(r,e){d(r,function(t){t.vs=R(t.vs.map(function(o){return e[o]?e[o].vs:o}))})}function ld(r,e){I(r.barycenter)?(r.barycenter=e.barycenter,r.weight=e.weight):(r.barycenter=(r.barycenter*r.weight+e.barycenter*e.weight)/(r.weight+e.weight),r.weight+=e.weight)}function Wn(r){var e=Ne(r),t=Un(r,M(1,e+1),"inEdges"),o=Un(r,M(e-1,-1,-1),"outEdges"),n=Mn(r);jn(r,n);for(var a=Number.POSITIVE_INFINITY,i,f=0,s=0;s<4;++f,++s){cd(f%2?t:o,f%4>=2),n=rr(r);var u=Rn(r,n);ui||f>e[s].lim));for(u=s,s=o;(s=r.parent(s))!==u;)a.push(s);return{path:n.concat(a.reverse()),lca:u}}function xd(r){var e={},t=0;function o(n){var a=t;d(r.children(n),o),e[n]={low:a,lim:t++}}return d(r.children(),o),e}function _d(r,e){var t={};function o(n,a){var i=0,f=0,s=n.length,u=Q(a);return d(a,function(m,p){var l=gd(r,m),x=l?r.node(l).order:s;(l||m===u)&&(d(a.slice(f,p+1),function(h){d(r.predecessors(h),function(v){var w=r.node(v),T=w.order;(Tu)&&Yn(t,l,m)})})}function n(a,i){var f=-1,s,u=0;return d(i,function(m,p){if(r.node(m).dummy==="border"){var l=r.predecessors(m);l.length&&(s=r.node(l[0]).order,o(i,u,p,f,s),u=p,f=s)}o(i,u,i.length,s,a.length)}),i}return Y(e,n),t}function gd(r,e){if(r.node(e).dummy)return Ir(r.predecessors(e),function(t){return r.node(t).dummy})}function Yn(r,e,t){if(e>t){var o=e;e=t,t=o}var n=r[e];n||(r[e]=n={}),n[t]=!0}function bd(r,e,t){if(e>t){var o=e;e=t,t=o}return c(r[e],t)}function yd(r,e,t,o){var n={},a={},i={};return d(e,function(f){d(f,function(s,u){n[s]=s,a[s]=s,i[s]=u})}),d(e,function(f){var s=-1;d(f,function(u){var m=o(u);if(m.length){m=z(m,function(v){return i[v]});for(var p=(m.length-1)/2,l=Math.floor(p),x=Math.ceil(p);l<=x;++l){var h=m[l];a[u]===u&&s true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n", "import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n", "import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n", "import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n", "import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n", "import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n", "/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n", "/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n", "/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n", "/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n", "/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n", "import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n", "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n", "import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n", "import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n", "import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n", "import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n", "import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n", "import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n", "import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n", "import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n", "import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n", "import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n", "import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n", "import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n", "/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n", "import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n", "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n", "import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n", "import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n", "import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n", "import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n", "import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n", "/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n", "import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n", "import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n", "import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n", "import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n", "import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n", "import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n", "import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n", "import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n", "import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n", "import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n", "import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n", "import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n", "import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n", "import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n", "import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n", "import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n", "import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n", "import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n", "import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n", "import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n", "import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n", "import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n", "import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n", "import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n", "import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n", "/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n", "/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n", "import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n", "import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n", "import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n", "import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n", "import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n", "import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n", "import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n", "import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n", "import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n", "/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n", "import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n", "import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n", "import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n", "import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n", "/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n", "/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n", "import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n", "import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n", "/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n", "import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n", "import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n", "import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n", "import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n", "import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n", "import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n", "import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n", "import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n", "/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n", "import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n", "import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n", "import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n", "import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n", "import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n", "import baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport baseUniq from './_baseUniq.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nexport default union;\n", "import toString from './toString.js';\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nexport default uniqueId;\n", "/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n}\n\nexport default baseZipObject;\n", "import assignValue from './_assignValue.js';\nimport baseZipObject from './_baseZipObject.js';\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n}\n\nexport default zipObject;\n", "import * as _ from 'lodash-es';\n\nvar DEFAULT_EDGE_NAME = '\\x00';\nvar GRAPH_NODE = '\\x00';\nvar EDGE_KEY_DELIM = '\\x01';\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\nexport class Graph {\n constructor(opts = {}) {\n this._isDirected = _.has(opts, 'directed') ? opts.directed : true;\n this._isMultigraph = _.has(opts, 'multigraph') ? opts.multigraph : false;\n this._isCompound = _.has(opts, 'compound') ? opts.compound : false;\n\n // Label for the graph itself\n this._label = undefined;\n\n // Defaults to be set when creating a new node\n this._defaultNodeLabelFn = _.constant(undefined);\n\n // Defaults to be set when creating a new edge\n this._defaultEdgeLabelFn = _.constant(undefined);\n\n // v -> label\n this._nodes = {};\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n\n // v -> edgeObj\n this._in = {};\n\n // u -> v -> Number\n this._preds = {};\n\n // v -> edgeObj\n this._out = {};\n\n // v -> w -> Number\n this._sucs = {};\n\n // e -> edgeObj\n this._edgeObjs = {};\n\n // e -> label\n this._edgeLabels = {};\n }\n /* === Graph functions ========= */\n isDirected() {\n return this._isDirected;\n }\n isMultigraph() {\n return this._isMultigraph;\n }\n isCompound() {\n return this._isCompound;\n }\n setGraph(label) {\n this._label = label;\n return this;\n }\n graph() {\n return this._label;\n }\n /* === Node functions ========== */\n setDefaultNodeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultNodeLabelFn = newDefault;\n return this;\n }\n nodeCount() {\n return this._nodeCount;\n }\n nodes() {\n return _.keys(this._nodes);\n }\n sources() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._in[v]);\n });\n }\n sinks() {\n var self = this;\n return _.filter(this.nodes(), function (v) {\n return _.isEmpty(self._out[v]);\n });\n }\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n _.each(vs, function (v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n setNode(v, value) {\n if (_.has(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n // @ts-expect-error\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n node(v) {\n return this._nodes[v];\n }\n hasNode(v) {\n return _.has(this._nodes, v);\n }\n removeNode(v) {\n var self = this;\n if (_.has(this._nodes, v)) {\n var removeEdge = function (e) {\n self.removeEdge(self._edgeObjs[e]);\n };\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n _.each(this.children(v), function (child) {\n self.setParent(child);\n });\n delete this._children[v];\n }\n _.each(_.keys(this._in[v]), removeEdge);\n delete this._in[v];\n delete this._preds[v];\n _.each(_.keys(this._out[v]), removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error('Cannot set parent in a non-compound graph');\n }\n\n if (_.isUndefined(parent)) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += '';\n for (var ancestor = parent; !_.isUndefined(ancestor); ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error('Setting ' + parent + ' as parent of ' + v + ' would create a cycle');\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n children(v) {\n if (_.isUndefined(v)) {\n v = GRAPH_NODE;\n }\n\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return _.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return _.keys(predsV);\n }\n }\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return _.keys(sucsV);\n }\n }\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n return _.union(preds, this.successors(v));\n }\n }\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n filterNodes(filter) {\n // @ts-expect-error\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound,\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n _.each(this._nodes, function (value, v) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n _.each(this._edgeObjs, function (e) {\n // @ts-expect-error\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n _.each(copy.nodes(), function (v) {\n copy.setParent(v, findParent(v));\n });\n }\n\n return copy;\n }\n /* === Edge functions ========== */\n setDefaultEdgeLabel(newDefault) {\n if (!_.isFunction(newDefault)) {\n newDefault = _.constant(newDefault);\n }\n this._defaultEdgeLabelFn = newDefault;\n return this;\n }\n edgeCount() {\n return this._edgeCount;\n }\n edges() {\n return _.values(this._edgeObjs);\n }\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n _.reduce(vs, function (v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n /*\n * setEdge(v, w, [value, [name]])\n * setEdge({ v, w, [name] }, [value])\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === 'object' && arg0 !== null && 'v' in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = '' + v;\n w = '' + w;\n if (!_.isUndefined(name)) {\n name = '' + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (_.has(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (!_.isUndefined(name) && !this._isMultigraph) {\n throw new Error('Cannot set a named edge when isMultigraph = false');\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n // @ts-expect-error\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n edge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return this._edgeLabels[e];\n }\n hasEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n return _.has(this._edgeLabels, e);\n }\n removeEdge(v, w, name) {\n var e =\n arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name);\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = _.values(inV);\n if (!u) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.v === u;\n });\n }\n }\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = _.values(outV);\n if (!w) {\n return edges;\n }\n return _.filter(edges, function (edge) {\n return edge.w === w;\n });\n }\n }\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\n/* Number of nodes in the graph. Should only be changed by the implementation. */\nGraph.prototype._nodeCount = 0;\n\n/* Number of edges in the graph. Should only be changed by the implementation. */\nGraph.prototype._edgeCount = 0;\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) {\n delete map[k];\n }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = '' + v_;\n var w = '' + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\n\nexport {\n addDummyNode,\n simplify,\n asNonCompoundGraph,\n successorWeights,\n predecessorWeights,\n intersectRect,\n buildLayerMatrix,\n normalizeRanks,\n removeEmptyRanks,\n addBorderNode,\n maxRank,\n partition,\n time,\n notime,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v;\n do {\n v = _.uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n var simplified = new Graph().setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n simplified.setNode(v, g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n var label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen),\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n _.forEach(g.nodes(), function (v) {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n _.forEach(g.edges(), function (e) {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var sucs = {};\n _.forEach(g.outEdges(v), function (e) {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n var weightMap = _.map(g.nodes(), function (v) {\n var preds = {};\n _.forEach(g.inEdges(v), function (e) {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return _.zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n var x = rect.x;\n var y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = rect.width / 2;\n var h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error('Not possible to find intersection inside of the rectangle');\n }\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n var layering = _.map(_.range(maxRank(g) + 1), function () {\n return [];\n });\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n var rank = node.rank;\n if (!_.isUndefined(rank)) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n var min = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n })\n );\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (_.has(node, 'rank')) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n var offset = _.min(\n _.map(g.nodes(), function (v) {\n return g.node(v).rank;\n })\n );\n\n var layers = [];\n _.forEach(g.nodes(), function (v) {\n var rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n var delta = 0;\n var nodeRankFactor = g.graph().nodeRankFactor;\n _.forEach(layers, function (vs, i) {\n if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {\n --delta;\n } else if (delta) {\n _.forEach(vs, function (v) {\n g.node(v).rank += delta;\n });\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n var node = {\n width: 0,\n height: 0,\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, 'border', node, prefix);\n}\n\nfunction maxRank(g) {\n return _.max(\n _.map(g.nodes(), function (v) {\n var rank = g.node(v).rank;\n if (!_.isUndefined(rank)) {\n return rank;\n }\n })\n );\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n var result = { lhs: [], rhs: [] };\n _.forEach(collection, function (value) {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n var start = _.now();\n try {\n return fn();\n } finally {\n console.log(name + ' time: ' + (_.now() - start) + 'ms');\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n", "import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { addBorderSegments };\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n var children = g.children(v);\n var node = g.node(v);\n if (children.length) {\n _.forEach(children, dfs);\n }\n\n if (_.has(node, 'minRank')) {\n node.borderLeft = [];\n node.borderRight = [];\n for (var rank = node.minRank, maxRank = node.maxRank + 1; rank < maxRank; ++rank) {\n addBorderNode(g, 'borderLeft', '_bl', v, node, rank);\n addBorderNode(g, 'borderRight', '_br', v, node, rank);\n }\n }\n }\n\n _.forEach(g.children(), dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n var label = { width: 0, height: 0, rank: rank, borderType: prop };\n var prev = sgNode[prop][rank - 1];\n var curr = util.addDummyNode(g, 'border', label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n", "import * as _ from 'lodash-es';\n\nexport { adjust, undo };\n\nfunction adjust(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n var rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === 'bt' || rankDir === 'rl') {\n reverseY(g);\n }\n\n if (rankDir === 'lr' || rankDir === 'rl') {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n _.forEach(g.nodes(), function (v) {\n swapWidthHeightOne(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n swapWidthHeightOne(g.edge(e));\n });\n}\n\nfunction swapWidthHeightOne(attrs) {\n var w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n _.forEach(g.nodes(), function (v) {\n reverseYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, reverseYOne);\n if (_.has(edge, 'y')) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n _.forEach(g.nodes(), function (v) {\n swapXYOne(g.node(v));\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, swapXYOne);\n if (_.has(edge, 'x')) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n var x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n", "/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nexport { List };\n\nclass List {\n constructor() {\n var sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n dequeue() {\n var sentinel = this._sentinel;\n var entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n enqueue(entry) {\n var sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n toString() {\n var strs = [];\n var sentinel = this._sentinel;\n var curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return '[' + strs.join(', ') + ']';\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== '_next' && k !== '_prev') {\n return v;\n }\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { List } from './data/list.js';\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nexport { greedyFAS };\n\nvar DEFAULT_WEIGHT_FN = _.constant(1);\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return _.flatten(\n _.map(results, function (e) {\n return g.outEdges(e.v, e.w);\n })\n );\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n var results = [];\n var sources = buckets[buckets.length - 1];\n var sinks = buckets[0];\n\n var entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n while ((entry = sources.dequeue())) {\n removeNode(g, buckets, zeroIdx, entry);\n }\n if (g.nodeCount()) {\n for (var i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n var results = collectPredecessors ? [] : undefined;\n\n _.forEach(g.inEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n _.forEach(g.outEdges(entry.v), function (edge) {\n var weight = g.edge(edge);\n var w = edge.w;\n var wEntry = g.node(w);\n wEntry['in'] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n var fasGraph = new Graph();\n var maxIn = 0;\n var maxOut = 0;\n\n _.forEach(g.nodes(), function (v) {\n fasGraph.setNode(v, { v: v, in: 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n _.forEach(g.edges(), function (e) {\n var prevWeight = fasGraph.edge(e.v, e.w) || 0;\n var weight = weightFn(e);\n var edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, (fasGraph.node(e.v).out += weight));\n maxIn = Math.max(maxIn, (fasGraph.node(e.w)['in'] += weight));\n });\n\n var buckets = _.range(maxOut + maxIn + 3).map(function () {\n return new List();\n });\n var zeroIdx = maxIn + 1;\n\n _.forEach(fasGraph.nodes(), function (v) {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry['in']) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry['in'] + zeroIdx].enqueue(entry);\n }\n}\n", "import * as _ from 'lodash-es';\nimport { greedyFAS } from './greedy-fas.js';\n\nexport { run, undo };\n\nfunction run(g) {\n var fas = g.graph().acyclicer === 'greedy' ? greedyFAS(g, weightFn(g)) : dfsFAS(g);\n _.forEach(fas, function (e) {\n var label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, _.uniqueId('rev'));\n });\n\n function weightFn(g) {\n return function (e) {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n var fas = [];\n var stack = {};\n var visited = {};\n\n function dfs(v) {\n if (_.has(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n _.forEach(g.outEdges(v), function (e) {\n if (_.has(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n _.forEach(g.nodes(), dfs);\n return fas;\n}\n\nfunction undo(g) {\n _.forEach(g.edges(), function (e) {\n var label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n var forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n", "import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, undo };\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n _.forEach(g.edges(), function (edge) {\n normalizeEdge(g, edge);\n });\n}\n\nfunction normalizeEdge(g, e) {\n var v = e.v;\n var vRank = g.node(v).rank;\n var w = e.w;\n var wRank = g.node(w).rank;\n var name = e.name;\n var edgeLabel = g.edge(e);\n var labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n var dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0,\n height: 0,\n edgeLabel: edgeLabel,\n edgeObj: e,\n rank: vRank,\n };\n dummy = util.addDummyNode(g, 'edge', attrs, '_d');\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n // @ts-expect-error\n attrs.dummy = 'edge-label';\n // @ts-expect-error\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var origLabel = node.edgeLabel;\n var w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === 'edge-label') {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { longestPath, slack };\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (_.has(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n var rank = _.min(\n _.map(g.outEdges(v), function (e) {\n return dfs(e.w) - g.edge(e).minlen;\n })\n );\n\n if (\n rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3\n rank === undefined || // return value of _.map([]) for Lodash 4\n rank === null\n ) {\n // return value of _.map([null])\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n _.forEach(g.sources(), dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport { slack } from './util.js';\n\nexport { feasibleTree };\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n _.forEach(g.nodeEdges(v), function (e) {\n var edgeV = e.v,\n w = v === edgeV ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n _.forEach(t.nodes(), dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n return _.minBy(g.edges(), function (e) {\n if (t.hasNode(e.v) !== t.hasNode(e.w)) {\n return slack(g, e);\n }\n });\n}\n\nfunction shiftRanks(t, g, delta) {\n _.forEach(t.nodes(), function (v) {\n g.node(v).rank += delta;\n });\n}\n", "import * as _ from 'lodash-es';\nimport { PriorityQueue } from '../data/priority-queue.js';\n\nexport { dijkstra };\n\nvar DEFAULT_WEIGHT_FUNC = _.constant(1);\n\nfunction dijkstra(g, source, weightFn, edgeFn) {\n return runDijkstra(\n g,\n String(source),\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn ||\n function (v) {\n return g.outEdges(v);\n }\n );\n}\n\nfunction runDijkstra(g, source, weightFn, edgeFn) {\n var results = {};\n var pq = new PriorityQueue();\n var v, vEntry;\n\n var updateNeighbors = function (edge) {\n var w = edge.v !== v ? edge.v : edge.w;\n var wEntry = results[w];\n var weight = weightFn(edge);\n var distance = vEntry.distance + weight;\n\n if (weight < 0) {\n throw new Error(\n 'dijkstra does not allow negative edge weights. ' +\n 'Bad edge: ' +\n edge +\n ' Weight: ' +\n weight\n );\n }\n\n if (distance < wEntry.distance) {\n wEntry.distance = distance;\n wEntry.predecessor = v;\n pq.decrease(w, distance);\n }\n };\n\n g.nodes().forEach(function (v) {\n var distance = v === source ? 0 : Number.POSITIVE_INFINITY;\n results[v] = { distance: distance };\n pq.add(v, distance);\n });\n\n while (pq.size() > 0) {\n v = pq.removeMin();\n vEntry = results[v];\n if (vEntry.distance === Number.POSITIVE_INFINITY) {\n break;\n }\n\n edgeFn(v).forEach(updateNeighbors);\n }\n\n return results;\n}\n", "import * as _ from 'lodash-es';\n\nexport { floydWarshall };\n\nvar DEFAULT_WEIGHT_FUNC = _.constant(1);\n\nfunction floydWarshall(g, weightFn, edgeFn) {\n return runFloydWarshall(\n g,\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn ||\n function (v) {\n return g.outEdges(v);\n }\n );\n}\n\nfunction runFloydWarshall(g, weightFn, edgeFn) {\n var results = {};\n var nodes = g.nodes();\n\n nodes.forEach(function (v) {\n results[v] = {};\n results[v][v] = { distance: 0 };\n nodes.forEach(function (w) {\n if (v !== w) {\n results[v][w] = { distance: Number.POSITIVE_INFINITY };\n }\n });\n edgeFn(v).forEach(function (edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var d = weightFn(edge);\n results[v][w] = { distance: d, predecessor: v };\n });\n });\n\n nodes.forEach(function (k) {\n var rowK = results[k];\n nodes.forEach(function (i) {\n var rowI = results[i];\n nodes.forEach(function (j) {\n var ik = rowI[k];\n var kj = rowK[j];\n var ij = rowI[j];\n var altDistance = ik.distance + kj.distance;\n if (altDistance < ij.distance) {\n ij.distance = altDistance;\n ij.predecessor = kj.predecessor;\n }\n });\n });\n });\n\n return results;\n}\n", "import * as _ from 'lodash-es';\n\nexport { topsort, CycleException };\n\ntopsort.CycleException = CycleException;\n\nfunction topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (_.has(stack, node)) {\n throw new CycleException();\n }\n\n if (!_.has(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n _.each(g.predecessors(node), visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n _.each(g.sinks(), visit);\n\n if (_.size(visited) !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nfunction CycleException() {}\nCycleException.prototype = new Error(); // must be an instance of Error to pass testing\n", "import * as _ from 'lodash-es';\n\nexport { dfs };\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * Order must be one of \"pre\" or \"post\".\n */\nfunction dfs(g, vs, order) {\n if (!_.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);\n\n var acc = [];\n var visited = {};\n _.each(vs, function (v) {\n if (!g.hasNode(v)) {\n throw new Error('Graph does not have node: ' + v);\n }\n\n doDfs(g, v, order === 'post', visited, navigation, acc);\n });\n return acc;\n}\n\nfunction doDfs(g, v, postorder, visited, navigation, acc) {\n if (!_.has(visited, v)) {\n visited[v] = true;\n\n if (!postorder) {\n acc.push(v);\n }\n _.each(navigation(v), function (w) {\n doDfs(g, w, postorder, visited, navigation, acc);\n });\n if (postorder) {\n acc.push(v);\n }\n }\n}\n", "import { dfs } from './dfs.js';\n\nexport { postorder };\n\nfunction postorder(g, vs) {\n return dfs(g, vs, 'post');\n}\n", "import { dfs } from './dfs.js';\n\nexport { preorder };\n\nfunction preorder(g, vs) {\n return dfs(g, vs, 'pre');\n}\n", "import * as _ from 'lodash-es';\nimport * as alg from '../../graphlib/alg/index.js';\nimport { simplify } from '../util.js';\nimport { feasibleTree } from './feasible-tree.js';\nimport { longestPath, slack } from './util.js';\n\nexport { networkSimplex };\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n longestPath(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = alg.postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n _.forEach(vs, function (v) {\n assignCutValue(t, g, v);\n });\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n _.forEach(g.nodeEdges(child), function (e) {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n _.forEach(tree.neighbors(v), function (w) {\n if (!_.has(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return _.find(tree.edges(), function (e) {\n return tree.edge(e).cutvalue < 0;\n });\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = _.filter(g.edges(), function (edge) {\n return (\n flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel)\n );\n });\n\n return _.minBy(candidates, function (edge) {\n return slack(g, edge);\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = _.find(t.nodes(), function (v) {\n return !g.node(v).parent;\n });\n var vs = alg.preorder(t, root);\n vs = vs.slice(1);\n _.forEach(vs, function (v) {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n", "import { feasibleTree } from './feasible-tree.js';\nimport { networkSimplex } from './network-simplex.js';\nimport { longestPath } from './util.js';\n\nexport { rank };\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch (g.graph().ranker) {\n case 'network-simplex':\n networkSimplexRanker(g);\n break;\n case 'tight-tree':\n tightTreeRanker(g);\n break;\n case 'longest-path':\n longestPathRanker(g);\n break;\n default:\n networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n", "import * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { run, cleanup };\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n var root = util.addDummyNode(g, 'root', {}, '_root');\n var depths = treeDepths(g);\n var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array\n var nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n _.forEach(g.edges(), function (e) {\n g.edge(e).minlen *= nodeSep;\n });\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n var weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n _.forEach(g.children(), function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n });\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n var children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n var top = util.addBorderNode(g, '_bt');\n var bottom = util.addBorderNode(g, '_bb');\n var label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n _.forEach(children, function (child) {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n var childNode = g.node(child);\n var childTop = childNode.borderTop ? childNode.borderTop : child;\n var childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n var thisWeight = childNode.borderTop ? weight : 2 * weight;\n var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true,\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n _.forEach(children, function (child) {\n dfs(child, depth + 1);\n });\n }\n depths[v] = depth;\n }\n _.forEach(g.children(), function (v) {\n dfs(v, 1);\n });\n return depths;\n}\n\nfunction sumWeights(g) {\n return _.reduce(\n g.edges(),\n function (acc, e) {\n return acc + g.edge(e).weight;\n },\n 0\n );\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { addSubgraphConstraints };\n\nfunction addSubgraphConstraints(g, cg, vs) {\n var prev = {},\n rootPrev;\n\n _.forEach(vs, function (v) {\n var child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n _.each(children, function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.reduce(_.sortBy(subgraphs, \"order\"), function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\n\nexport { buildLayerGraph };\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n var root = createRootNode(g),\n result = new Graph({ compound: true })\n .setGraph({ root: root })\n .setDefaultNodeLabel(function (v) {\n return g.node(v);\n });\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || (node.minRank <= rank && rank <= node.maxRank)) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n _.forEach(g[relationship](v), function (e) {\n var u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = !_.isUndefined(edge) ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (_.has(node, 'minRank')) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank],\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = _.uniqueId('_root'))));\n return v;\n}\n", "import * as _ from 'lodash-es';\n\nexport { crossCount };\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n var cc = 0;\n for (var i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n var southPos = _.zipObject(\n southLayer,\n _.map(southLayer, function (v, i) {\n return i;\n })\n );\n var southEntries = _.flatten(\n _.map(northLayer, function (v) {\n return _.sortBy(\n _.map(g.outEdges(v), function (e) {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }),\n 'pos'\n );\n })\n );\n\n // Build the accumulator tree\n var firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = _.map(new Array(treeSize), function () {\n return 0;\n });\n\n // Calculate the weighted crossings\n var cc = 0;\n _.forEach(\n // @ts-expect-error\n southEntries.forEach(function (entry) {\n var index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n var weightSum = 0;\n // @ts-expect-error\n while (index > 0) {\n // @ts-expect-error\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n // @ts-expect-error\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n })\n );\n\n return cc;\n}\n", "import * as _ from 'lodash-es';\n\nexport { initOrder };\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n var visited = {};\n var simpleNodes = _.filter(g.nodes(), function (v) {\n return !g.children(v).length;\n });\n var maxRank = _.max(\n _.map(simpleNodes, function (v) {\n return g.node(v).rank;\n })\n );\n var layers = _.map(_.range(maxRank + 1), function () {\n return [];\n });\n\n function dfs(v) {\n if (_.has(visited, v)) return;\n visited[v] = true;\n var node = g.node(v);\n layers[node.rank].push(v);\n _.forEach(g.successors(v), dfs);\n }\n\n var orderedVs = _.sortBy(simpleNodes, function (v) {\n return g.node(v).rank;\n });\n _.forEach(orderedVs, dfs);\n\n return layers;\n}\n", "import * as _ from 'lodash-es';\n\nexport { barycenter };\n\nfunction barycenter(g, movable) {\n return _.map(movable, function (v) {\n var inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n var result = _.reduce(\n inV,\n function (acc, e) {\n var edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + edge.weight * nodeU.order,\n weight: acc.weight + edge.weight,\n };\n },\n { sum: 0, weight: 0 }\n );\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight,\n };\n }\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { resolveConflicts };\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n var mappedEntries = {};\n _.forEach(entries, function (entry, i) {\n var tmp = (mappedEntries[entry.v] = {\n indegree: 0,\n in: [],\n out: [],\n vs: [entry.v],\n i: i,\n });\n if (!_.isUndefined(entry.barycenter)) {\n // @ts-expect-error\n tmp.barycenter = entry.barycenter;\n // @ts-expect-error\n tmp.weight = entry.weight;\n }\n });\n\n _.forEach(cg.edges(), function (e) {\n var entryV = mappedEntries[e.v];\n var entryW = mappedEntries[e.w];\n if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n var sourceSet = _.filter(mappedEntries, function (entry) {\n // @ts-expect-error\n return !entry.indegree;\n });\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n var entries = [];\n\n function handleIn(vEntry) {\n return function (uEntry) {\n if (uEntry.merged) {\n return;\n }\n if (\n _.isUndefined(uEntry.barycenter) ||\n _.isUndefined(vEntry.barycenter) ||\n uEntry.barycenter >= vEntry.barycenter\n ) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return function (wEntry) {\n wEntry['in'].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n var entry = sourceSet.pop();\n entries.push(entry);\n _.forEach(entry['in'].reverse(), handleIn(entry));\n _.forEach(entry.out, handleOut(entry));\n }\n\n return _.map(\n _.filter(entries, function (entry) {\n return !entry.merged;\n }),\n function (entry) {\n return _.pick(entry, ['vs', 'i', 'barycenter', 'weight']);\n }\n );\n}\n\nfunction mergeEntries(target, source) {\n var sum = 0;\n var weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n", "import * as _ from 'lodash-es';\nimport * as util from '../util.js';\n\nexport { sort };\n\nfunction sort(entries, biasRight) {\n var parts = util.partition(entries, function (entry) {\n return _.has(entry, 'barycenter');\n });\n var sortable = parts.lhs,\n unsortable = _.sortBy(parts.rhs, function (entry) {\n return -entry.i;\n }),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n _.forEach(sortable, function (entry) {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n var result = { vs: _.flatten(vs) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n var last;\n while (unsortable.length && (last = _.last(unsortable)).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return function (entryV, entryW) {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n", "import * as _ from 'lodash-es';\nimport { barycenter } from './barycenter.js';\nimport { resolveConflicts } from './resolve-conflicts.js';\nimport { sort } from './sort.js';\n\nexport { sortSubgraph };\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n var movable = g.children(v);\n var node = g.node(v);\n var bl = node ? node.borderLeft : undefined;\n var br = node ? node.borderRight : undefined;\n var subgraphs = {};\n\n if (bl) {\n movable = _.filter(movable, function (w) {\n return w !== bl && w !== br;\n });\n }\n\n var barycenters = barycenter(g, movable);\n _.forEach(barycenters, function (entry) {\n if (g.children(entry.v).length) {\n var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (_.has(subgraphResult, 'barycenter')) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n var entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n var result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = _.flatten([bl, result.vs, br]);\n if (g.predecessors(bl).length) {\n var blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!_.has(result, 'barycenter')) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter =\n (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n _.forEach(entries, function (entry) {\n entry.vs = _.flatten(\n entry.vs.map(function (v) {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n })\n );\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (!_.isUndefined(target.barycenter)) {\n target.barycenter =\n (target.barycenter * target.weight + other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\nimport { addSubgraphConstraints } from './add-subgraph-constraints.js';\nimport { buildLayerGraph } from './build-layer-graph.js';\nimport { crossCount } from './cross-count.js';\nimport { initOrder } from './init-order.js';\nimport { sortSubgraph } from './sort-subgraph.js';\n\nexport { order };\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g) {\n var maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), 'inEdges'),\n upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), 'outEdges');\n\n var layering = initOrder(g);\n assignOrder(g, layering);\n\n var bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n var cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = _.cloneDeep(layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return _.map(ranks, function (rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n var cg = new Graph();\n _.forEach(layerGraphs, function (lg) {\n var root = lg.graph().root;\n var sorted = sortSubgraph(lg, root, cg, biasRight);\n _.forEach(sorted.vs, function (v, i) {\n lg.node(v).order = i;\n });\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, i) {\n g.node(v).order = i;\n });\n });\n}\n", "import * as _ from 'lodash-es';\n\nexport { parentDummyChains };\n\nfunction parentDummyChains(g) {\n var postorderNums = postorder(g);\n\n _.forEach(g.graph().dummyChains, function (v) {\n var node = g.node(v);\n var edgeObj = node.edgeObj;\n var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n var path = pathData.path;\n var lca = pathData.lca;\n var pathIdx = 0;\n var pathV = path[pathIdx];\n var ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (\n pathIdx < path.length - 1 &&\n g.node((pathV = path[pathIdx + 1])).minRank <= node.rank\n ) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n var vPath = [];\n var wPath = [];\n var low = Math.min(postorderNums[v].low, postorderNums[w].low);\n var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n var parent;\n var lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n var result = {};\n var lim = 0;\n\n function dfs(v) {\n var low = lim;\n _.forEach(g.children(v), dfs);\n result[v] = { low: low, lim: lim++ };\n }\n _.forEach(g.children(), dfs);\n\n return result;\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../../graphlib/index.js';\nimport * as util from '../util.js';\n\n/*\n * This module provides coordinate assignment based on Brandes and K\u00F6pf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nexport {\n positionX,\n findType1Conflicts,\n findType2Conflicts,\n addConflict,\n hasConflict,\n verticalAlignment,\n horizontalCompaction,\n alignCoordinates,\n findSmallestWidthAlignment,\n balance,\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n var conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n var // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = _.last(layer);\n\n _.forEach(layer, function (v, i) {\n var w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n _.forEach(layer.slice(scanPos, i + 1), function (scanNode) {\n _.forEach(g.predecessors(scanNode), function (u) {\n var uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n // @ts-expect-error\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n var conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n var v;\n _.forEach(_.range(southPos, southEnd), function (i) {\n v = south[i];\n if (g.node(v).dummy) {\n _.forEach(g.predecessors(v), function (u) {\n var uNode = g.node(u);\n if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n function visitLayer(north, south) {\n var prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n _.forEach(south, function (v, southLookahead) {\n if (g.node(v).dummy === 'border') {\n var predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n // @ts-expect-error\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n _.reduce(layering, visitLayer);\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return _.find(g.predecessors(v), function (u) {\n return g.node(u).dummy;\n });\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n\n var conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return _.has(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n var root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n _.forEach(layering, function (layer) {\n _.forEach(layer, function (v, order) {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n _.forEach(layering, function (layer) {\n var prevIdx = -1;\n _.forEach(layer, function (v) {\n var ws = neighborFn(v);\n if (ws.length) {\n ws = _.sortBy(ws, function (w) {\n return pos[w];\n });\n var mp = (ws.length - 1) / 2;\n for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n var w = ws[i];\n if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n var xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? 'borderLeft' : 'borderRight';\n\n function iterate(setXsFunc, nextNodesFunc) {\n var stack = blockG.nodes();\n var elem = stack.pop();\n var visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce(function (acc, e) {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n var min = blockG.outEdges(elem).reduce(function (acc, e) {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n var node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n _.forEach(align, function (v) {\n xs[v] = xs[root[v]];\n });\n\n return xs;\n}\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n var blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n _.forEach(layering, function (layer) {\n var u;\n _.forEach(layer, function (v) {\n var vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return _.minBy(_.values(xss), function (xs) {\n var max = Number.NEGATIVE_INFINITY;\n var min = Number.POSITIVE_INFINITY;\n\n _.forIn(xs, function (x, v) {\n var halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n return max - min;\n });\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n var alignToVals = _.values(alignTo),\n alignToMin = _.min(alignToVals),\n alignToMax = _.max(alignToVals);\n\n _.forEach(['u', 'd'], function (vert) {\n _.forEach(['l', 'r'], function (horiz) {\n var alignment = vert + horiz,\n xs = xss[alignment],\n delta;\n if (xs === alignTo) return;\n\n var xsVals = _.values(xs);\n delta = horiz === 'l' ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);\n\n if (delta) {\n xss[alignment] = _.mapValues(xs, function (x) {\n return x + delta;\n });\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return _.mapValues(xss.ul, function (ignore, v) {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n var xs = _.sortBy(_.map(xss, v));\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n var layering = util.buildLayerMatrix(g);\n var conflicts = _.merge(findType1Conflicts(g, layering), findType2Conflicts(g, layering));\n\n var xss = {};\n var adjustedLayering;\n _.forEach(['u', 'd'], function (vert) {\n adjustedLayering = vert === 'u' ? layering : _.values(layering).reverse();\n _.forEach(['l', 'r'], function (horiz) {\n if (horiz === 'r') {\n adjustedLayering = _.map(adjustedLayering, function (inner) {\n return _.values(inner).reverse();\n });\n }\n\n var neighborFn = (vert === 'u' ? g.predecessors : g.successors).bind(g);\n var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === 'r');\n if (horiz === 'r') {\n xs = _.mapValues(xs, function (x) {\n return -x;\n });\n }\n xss[vert + horiz] = xs;\n });\n });\n\n var smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return function (g, v, w) {\n var vLabel = g.node(v);\n var wLabel = g.node(w);\n var sum = 0;\n var delta;\n\n sum += vLabel.width / 2;\n if (_.has(vLabel, 'labelpos')) {\n switch (vLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = -vLabel.width / 2;\n break;\n case 'r':\n delta = vLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (_.has(wLabel, 'labelpos')) {\n switch (wLabel.labelpos.toLowerCase()) {\n case 'l':\n delta = wLabel.width / 2;\n break;\n case 'r':\n delta = -wLabel.width / 2;\n break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n", "import * as _ from 'lodash-es';\nimport * as util from '../util.js';\nimport { positionX } from './bk.js';\n\nexport { position };\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n _.forOwn(positionX(g), function (x, v) {\n g.node(v).x = x;\n });\n}\n\nfunction positionY(g) {\n var layering = util.buildLayerMatrix(g);\n var rankSep = g.graph().ranksep;\n var prevY = 0;\n _.forEach(layering, function (layer) {\n var maxHeight = _.max(\n _.map(layer, function (v) {\n return g.node(v).height;\n })\n );\n _.forEach(layer, function (v) {\n g.node(v).y = prevY + maxHeight / 2;\n });\n prevY += maxHeight + rankSep;\n });\n}\n", "import * as _ from 'lodash-es';\nimport { Graph } from '../graphlib/index.js';\nimport { addBorderSegments } from './add-border-segments.js';\nimport * as coordinateSystem from './coordinate-system.js';\nimport * as acyclic from './acyclic.js';\nimport * as normalize from './normalize.js';\nimport { rank } from './rank/index.js';\nimport * as nestingGraph from './nesting-graph.js';\nimport { order } from './order/index.js';\nimport { parentDummyChains } from './parent-dummy-chains.js';\nimport { position } from './position/index.js';\nimport * as util from './util.js';\n\nexport { layout };\n\nfunction layout(g, opts) {\n var time = opts && opts.debugTiming ? util.time : util.notime;\n time('layout', function () {\n var layoutGraph = time(' buildLayoutGraph', function () {\n return buildLayoutGraph(g);\n });\n time(' runLayout', function () {\n runLayout(layoutGraph, time);\n });\n time(' updateInputGraph', function () {\n updateInputGraph(g, layoutGraph);\n });\n });\n}\n\nfunction runLayout(g, time) {\n time(' makeSpaceForEdgeLabels', function () {\n makeSpaceForEdgeLabels(g);\n });\n time(' removeSelfEdges', function () {\n removeSelfEdges(g);\n });\n time(' acyclic', function () {\n acyclic.run(g);\n });\n time(' nestingGraph.run', function () {\n nestingGraph.run(g);\n });\n time(' rank', function () {\n rank(util.asNonCompoundGraph(g));\n });\n time(' injectEdgeLabelProxies', function () {\n injectEdgeLabelProxies(g);\n });\n time(' removeEmptyRanks', function () {\n util.removeEmptyRanks(g);\n });\n time(' nestingGraph.cleanup', function () {\n nestingGraph.cleanup(g);\n });\n time(' normalizeRanks', function () {\n util.normalizeRanks(g);\n });\n time(' assignRankMinMax', function () {\n assignRankMinMax(g);\n });\n time(' removeEdgeLabelProxies', function () {\n removeEdgeLabelProxies(g);\n });\n time(' normalize.run', function () {\n normalize.run(g);\n });\n time(' parentDummyChains', function () {\n parentDummyChains(g);\n });\n time(' addBorderSegments', function () {\n addBorderSegments(g);\n });\n time(' order', function () {\n order(g);\n });\n time(' insertSelfEdges', function () {\n insertSelfEdges(g);\n });\n time(' adjustCoordinateSystem', function () {\n coordinateSystem.adjust(g);\n });\n time(' position', function () {\n position(g);\n });\n time(' positionSelfEdges', function () {\n positionSelfEdges(g);\n });\n time(' removeBorderNodes', function () {\n removeBorderNodes(g);\n });\n time(' normalize.undo', function () {\n normalize.undo(g);\n });\n time(' fixupEdgeLabelCoords', function () {\n fixupEdgeLabelCoords(g);\n });\n time(' undoCoordinateSystem', function () {\n coordinateSystem.undo(g);\n });\n time(' translateGraph', function () {\n translateGraph(g);\n });\n time(' assignNodeIntersects', function () {\n assignNodeIntersects(g);\n });\n time(' reversePoints', function () {\n reversePointsForReversedEdges(g);\n });\n time(' acyclic.undo', function () {\n acyclic.undo(g);\n });\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n _.forEach(inputGraph.nodes(), function (v) {\n var inputLabel = inputGraph.node(v);\n var layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var inputLabel = inputGraph.edge(e);\n var layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (_.has(layoutLabel, 'x')) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nvar graphNumAttrs = ['nodesep', 'edgesep', 'ranksep', 'marginx', 'marginy'];\nvar graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: 'tb' };\nvar graphAttrs = ['acyclicer', 'ranker', 'rankdir', 'align'];\nvar nodeNumAttrs = ['width', 'height'];\nvar nodeDefaults = { width: 0, height: 0 };\nvar edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];\nvar edgeDefaults = {\n minlen: 1,\n weight: 1,\n width: 0,\n height: 0,\n labeloffset: 10,\n labelpos: 'r',\n};\nvar edgeAttrs = ['labelpos'];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n var g = new Graph({ multigraph: true, compound: true });\n var graph = canonicalize(inputGraph.graph());\n\n g.setGraph(\n _.merge({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), _.pick(graph, graphAttrs))\n );\n\n _.forEach(inputGraph.nodes(), function (v) {\n var node = canonicalize(inputGraph.node(v));\n g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));\n g.setParent(v, inputGraph.parent(v));\n });\n\n _.forEach(inputGraph.edges(), function (e) {\n var edge = canonicalize(inputGraph.edge(e));\n g.setEdge(\n e,\n _.merge({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), _.pick(edge, edgeAttrs))\n );\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n var graph = g.graph();\n graph.ranksep /= 2;\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== 'c') {\n if (graph.rankdir === 'TB' || graph.rankdir === 'BT') {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.width && edge.height) {\n var v = g.node(e.v);\n var w = g.node(e.w);\n var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, 'edge-proxy', label, '_ep');\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n var maxRank = 0;\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n // @ts-expect-error\n maxRank = _.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'edge-proxy') {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n var minX = Number.POSITIVE_INFINITY;\n var maxX = 0;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = 0;\n var graphLabel = g.graph();\n var marginX = graphLabel.marginx || 0;\n var marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n var x = attrs.x;\n var y = attrs.y;\n var w = attrs.width;\n var h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n _.forEach(g.nodes(), function (v) {\n getExtremes(g.node(v));\n });\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (_.has(edge, 'x')) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n _.forEach(edge.points, function (p) {\n p.x -= minX;\n p.y -= minY;\n });\n if (_.has(edge, 'x')) {\n edge.x -= minX;\n }\n if (_.has(edge, 'y')) {\n edge.y -= minY;\n }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n var nodeV = g.node(e.v);\n var nodeW = g.node(e.w);\n var p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (_.has(edge, 'x')) {\n if (edge.labelpos === 'l' || edge.labelpos === 'r') {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case 'l':\n edge.x -= edge.width / 2 + edge.labeloffset;\n break;\n case 'r':\n edge.x += edge.width / 2 + edge.labeloffset;\n break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n _.forEach(g.edges(), function (e) {\n var edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n _.forEach(g.nodes(), function (v) {\n if (g.children(v).length) {\n var node = g.node(v);\n var t = g.node(node.borderTop);\n var b = g.node(node.borderBottom);\n var l = g.node(_.last(node.borderLeft));\n var r = g.node(_.last(node.borderRight));\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n _.forEach(g.nodes(), function (v) {\n if (g.node(v).dummy === 'border') {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n _.forEach(g.edges(), function (e) {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n _.forEach(layers, function (layer) {\n var orderShift = 0;\n _.forEach(layer, function (v, i) {\n var node = g.node(v);\n node.order = i + orderShift;\n _.forEach(node.selfEdges, function (selfEdge) {\n util.addDummyNode(\n g,\n 'selfedge',\n {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + ++orderShift,\n e: selfEdge.e,\n label: selfEdge.label,\n },\n '_se'\n );\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n _.forEach(g.nodes(), function (v) {\n var node = g.node(v);\n if (node.dummy === 'selfedge') {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + (2 * dx) / 3, y: y - dy },\n { x: x + (5 * dx) / 6, y: y - dy },\n { x: x + dx, y: y },\n { x: x + (5 * dx) / 6, y: y + dy },\n { x: x + (2 * dx) / 3, y: y + dy },\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return _.mapValues(_.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n _.forEach(attrs, function (v, k) {\n newAttrs[k.toLowerCase()] = v;\n });\n return newAttrs;\n}\n"], - "mappings": "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", + "mappings": "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", "names": ["symbolTag", "isSymbol", "value", "isObjectLike_default", "baseGetTag_default", "isSymbol_default", "arrayMap", "array", "iteratee", "index", "length", "result", "arrayMap_default", "INFINITY", "symbolProto", "Symbol_default", "symbolToString", "baseToString", "value", "isArray_default", "arrayMap_default", "isSymbol_default", "result", "baseToString_default", "reWhitespace", "trimmedEndIndex", "string", "index", "trimmedEndIndex_default", "reTrimStart", "baseTrim", "string", "trimmedEndIndex_default", "baseTrim_default", "NAN", "reIsBadHex", "reIsBinary", "reIsOctal", "freeParseInt", "toNumber", "value", "isSymbol_default", "isObject_default", "other", "baseTrim_default", "isBinary", "toNumber_default", "INFINITY", "MAX_INTEGER", "toFinite", "value", "toNumber_default", "sign", "toFinite_default", "toInteger", "value", "result", "toFinite_default", "remainder", "toInteger_default", "noop", "noop_default", "arrayEach", "array", "iteratee", "index", "length", "arrayEach_default", "baseFindIndex", "array", "predicate", "fromIndex", "fromRight", "length", "index", "baseFindIndex_default", "baseIsNaN", "value", "baseIsNaN_default", "strictIndexOf", "array", "value", "fromIndex", "index", "length", "strictIndexOf_default", "baseIndexOf", "array", "value", "fromIndex", "strictIndexOf_default", "baseFindIndex_default", "baseIsNaN_default", "baseIndexOf_default", "arrayIncludes", "array", "value", "length", "baseIndexOf_default", "arrayIncludes_default", "keys", "object", "isArrayLike_default", "arrayLikeKeys_default", "baseKeys_default", "keys_default", "reIsDeepProp", "reIsPlainProp", "isKey", "value", "object", "isArray_default", "type", "isSymbol_default", "isKey_default", "MAX_MEMOIZE_SIZE", "memoizeCapped", "func", "result", "memoize_default", "key", "cache", "memoizeCapped_default", "rePropName", "reEscapeChar", "stringToPath", "memoizeCapped_default", "string", "result", "match", "number", "quote", "subString", "stringToPath_default", "toString", "value", "baseToString_default", "toString_default", "castPath", "value", "object", "isArray_default", "isKey_default", "stringToPath_default", "toString_default", "castPath_default", "INFINITY", "toKey", "value", "isSymbol_default", "result", "toKey_default", "baseGet", "object", "path", "castPath_default", "index", "length", "toKey_default", "baseGet_default", "get", "object", "path", "defaultValue", "result", "baseGet_default", "get_default", "arrayPush", "array", "values", "index", "length", "offset", "arrayPush_default", "spreadableSymbol", "Symbol_default", "isFlattenable", "value", "isArray_default", "isArguments_default", "isFlattenable_default", "baseFlatten", "array", "depth", "predicate", "isStrict", "result", "index", "length", "isFlattenable_default", "value", "arrayPush_default", "baseFlatten_default", "flatten", "array", "length", "baseFlatten_default", "flatten_default", "flatRest", "func", "setToString_default", "overRest_default", "flatten_default", "flatRest_default", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsZWJ", "reHasUnicode", "hasUnicode", "string", "hasUnicode_default", "arrayReduce", "array", "iteratee", "accumulator", "initAccum", "index", "length", "arrayReduce_default", "baseAssign", "object", "source", "copyObject_default", "keys_default", "baseAssign_default", "baseAssignIn", "object", "source", "copyObject_default", "keysIn_default", "baseAssignIn_default", "arrayFilter", "array", "predicate", "index", "length", "resIndex", "result", "value", "arrayFilter_default", "stubArray", "stubArray_default", "objectProto", "propertyIsEnumerable", "nativeGetSymbols", "getSymbols", "object", "arrayFilter_default", "symbol", "stubArray_default", "getSymbols_default", "copySymbols", "source", "object", "copyObject_default", "getSymbols_default", "copySymbols_default", "nativeGetSymbols", "getSymbolsIn", "object", "result", "arrayPush_default", "getSymbols_default", "getPrototype_default", "stubArray_default", "getSymbolsIn_default", "copySymbolsIn", "source", "object", "copyObject_default", "getSymbolsIn_default", "copySymbolsIn_default", "baseGetAllKeys", "object", "keysFunc", "symbolsFunc", "result", "isArray_default", "arrayPush_default", "baseGetAllKeys_default", "getAllKeys", "object", "baseGetAllKeys_default", "keys_default", "getSymbols_default", "getAllKeys_default", "getAllKeysIn", "object", "baseGetAllKeys_default", "keysIn_default", "getSymbolsIn_default", "getAllKeysIn_default", "objectProto", "hasOwnProperty", "initCloneArray", "array", "length", "result", "initCloneArray_default", "cloneDataView", "dataView", "isDeep", "buffer", "cloneArrayBuffer_default", "cloneDataView_default", "reFlags", "cloneRegExp", "regexp", "result", "cloneRegExp_default", "symbolProto", "Symbol_default", "symbolValueOf", "cloneSymbol", "symbol", "cloneSymbol_default", "boolTag", "dateTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "initCloneByTag", "object", "tag", "isDeep", "Ctor", "cloneArrayBuffer_default", "cloneDataView_default", "cloneTypedArray_default", "cloneRegExp_default", "cloneSymbol_default", "initCloneByTag_default", "mapTag", "baseIsMap", "value", "isObjectLike_default", "getTag_default", "baseIsMap_default", "nodeIsMap", "nodeUtil_default", "isMap", "baseUnary_default", "baseIsMap_default", "isMap_default", "setTag", "baseIsSet", "value", "isObjectLike_default", "getTag_default", "baseIsSet_default", "nodeIsSet", "nodeUtil_default", "isSet", "baseUnary_default", "baseIsSet_default", "isSet_default", "CLONE_DEEP_FLAG", "CLONE_FLAT_FLAG", "CLONE_SYMBOLS_FLAG", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "genTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "symbolTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "cloneableTags", "baseClone", "value", "bitmask", "customizer", "key", "object", "stack", "result", "isDeep", "isFlat", "isFull", "isObject_default", "isArr", "isArray_default", "initCloneArray_default", "copyArray_default", "tag", "getTag_default", "isFunc", "isBuffer_default", "cloneBuffer_default", "initCloneObject_default", "copySymbolsIn_default", "baseAssignIn_default", "copySymbols_default", "baseAssign_default", "initCloneByTag_default", "Stack_default", "stacked", "isSet_default", "subValue", "isMap_default", "keysFunc", "getAllKeysIn_default", "getAllKeys_default", "keysIn_default", "keys_default", "props", "arrayEach_default", "assignValue_default", "baseClone_default", "CLONE_SYMBOLS_FLAG", "clone", "value", "baseClone_default", "clone_default", "CLONE_DEEP_FLAG", "CLONE_SYMBOLS_FLAG", "cloneDeep", "value", "baseClone_default", "cloneDeep_default", "HASH_UNDEFINED", "setCacheAdd", "value", "setCacheAdd_default", "setCacheHas", "value", "setCacheHas_default", "SetCache", "values", "index", "length", "MapCache_default", "setCacheAdd_default", "setCacheHas_default", "SetCache_default", "arraySome", "array", "predicate", "index", "length", "arraySome_default", "cacheHas", "cache", "key", "cacheHas_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "equalArrays", "array", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "arrLength", "othLength", "arrStacked", "othStacked", "index", "result", "seen", "SetCache_default", "arrValue", "othValue", "compared", "arraySome_default", "othIndex", "cacheHas_default", "equalArrays_default", "mapToArray", "map", "index", "result", "value", "key", "mapToArray_default", "setToArray", "set", "index", "result", "value", "setToArray_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "boolTag", "dateTag", "errorTag", "mapTag", "numberTag", "regexpTag", "setTag", "stringTag", "symbolTag", "arrayBufferTag", "dataViewTag", "symbolProto", "Symbol_default", "symbolValueOf", "equalByTag", "object", "other", "tag", "bitmask", "customizer", "equalFunc", "stack", "Uint8Array_default", "eq_default", "convert", "mapToArray_default", "isPartial", "setToArray_default", "stacked", "result", "equalArrays_default", "equalByTag_default", "COMPARE_PARTIAL_FLAG", "objectProto", "hasOwnProperty", "equalObjects", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "isPartial", "objProps", "getAllKeys_default", "objLength", "othProps", "othLength", "index", "key", "objStacked", "othStacked", "result", "skipCtor", "objValue", "othValue", "compared", "objCtor", "othCtor", "equalObjects_default", "COMPARE_PARTIAL_FLAG", "argsTag", "arrayTag", "objectTag", "objectProto", "hasOwnProperty", "baseIsEqualDeep", "object", "other", "bitmask", "customizer", "equalFunc", "stack", "objIsArr", "isArray_default", "othIsArr", "objTag", "getTag_default", "othTag", "objIsObj", "othIsObj", "isSameTag", "isBuffer_default", "Stack_default", "isTypedArray_default", "equalArrays_default", "equalByTag_default", "objIsWrapped", "othIsWrapped", "objUnwrapped", "othUnwrapped", "equalObjects_default", "baseIsEqualDeep_default", "baseIsEqual", "value", "other", "bitmask", "customizer", "stack", "isObjectLike_default", "baseIsEqualDeep_default", "baseIsEqual_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseIsMatch", "object", "source", "matchData", "customizer", "index", "length", "noCustomizer", "data", "key", "objValue", "srcValue", "stack", "Stack_default", "result", "baseIsEqual_default", "baseIsMatch_default", "isStrictComparable", "value", "isObject_default", "isStrictComparable_default", "getMatchData", "object", "result", "keys_default", "length", "key", "value", "isStrictComparable_default", "getMatchData_default", "matchesStrictComparable", "key", "srcValue", "object", "matchesStrictComparable_default", "baseMatches", "source", "matchData", "getMatchData_default", "matchesStrictComparable_default", "object", "baseIsMatch_default", "baseMatches_default", "baseHasIn", "object", "key", "baseHasIn_default", "hasPath", "object", "path", "hasFunc", "castPath_default", "index", "length", "result", "key", "toKey_default", "isLength_default", "isIndex_default", "isArray_default", "isArguments_default", "hasPath_default", "hasIn", "object", "path", "hasPath_default", "baseHasIn_default", "hasIn_default", "COMPARE_PARTIAL_FLAG", "COMPARE_UNORDERED_FLAG", "baseMatchesProperty", "path", "srcValue", "isKey_default", "isStrictComparable_default", "matchesStrictComparable_default", "toKey_default", "object", "objValue", "get_default", "hasIn_default", "baseIsEqual_default", "baseMatchesProperty_default", "baseProperty", "key", "object", "baseProperty_default", "basePropertyDeep", "path", "object", "baseGet_default", "basePropertyDeep_default", "property", "path", "isKey_default", "baseProperty_default", "toKey_default", "basePropertyDeep_default", "property_default", "baseIteratee", "value", "identity_default", "isArray_default", "baseMatchesProperty_default", "baseMatches_default", "property_default", "baseIteratee_default", "baseForOwn", "object", "iteratee", "baseFor_default", "keys_default", "baseForOwn_default", "createBaseEach", "eachFunc", "fromRight", "collection", "iteratee", "isArrayLike_default", "length", "index", "iterable", "createBaseEach_default", "baseEach", "createBaseEach_default", "baseForOwn_default", "baseEach_default", "now", "root_default", "now_default", "objectProto", "hasOwnProperty", "defaults", "baseRest_default", "object", "sources", "index", "length", "guard", "isIterateeCall_default", "source", "props", "keysIn_default", "propsIndex", "propsLength", "key", "value", "eq_default", "defaults_default", "arrayIncludesWith", "array", "value", "comparator", "index", "length", "arrayIncludesWith_default", "last", "array", "length", "last_default", "castFunction", "value", "identity_default", "castFunction_default", "forEach", "collection", "iteratee", "func", "isArray_default", "arrayEach_default", "baseEach_default", "castFunction_default", "forEach_default", "baseFilter", "collection", "predicate", "result", "baseEach_default", "value", "index", "baseFilter_default", "filter", "collection", "predicate", "func", "isArray_default", "arrayFilter_default", "baseFilter_default", "baseIteratee_default", "filter_default", "createFind", "findIndexFunc", "collection", "predicate", "fromIndex", "iterable", "isArrayLike_default", "iteratee", "baseIteratee_default", "keys_default", "key", "index", "createFind_default", "nativeMax", "findIndex", "array", "predicate", "fromIndex", "length", "index", "toInteger_default", "baseFindIndex_default", "baseIteratee_default", "findIndex_default", "find", "createFind_default", "findIndex_default", "find_default", "baseMap", "collection", "iteratee", "index", "result", "isArrayLike_default", "baseEach_default", "value", "key", "baseMap_default", "map", "collection", "iteratee", "func", "isArray_default", "arrayMap_default", "baseMap_default", "baseIteratee_default", "map_default", "forIn", "object", "iteratee", "baseFor_default", "castFunction_default", "keysIn_default", "forIn_default", "forOwn", "object", "iteratee", "baseForOwn_default", "castFunction_default", "forOwn_default", "baseGt", "value", "other", "baseGt_default", "objectProto", "hasOwnProperty", "baseHas", "object", "key", "baseHas_default", "has", "object", "path", "hasPath_default", "baseHas_default", "has_default", "stringTag", "isString", "value", "isArray_default", "isObjectLike_default", "baseGetTag_default", "isString_default", "baseValues", "object", "props", "arrayMap_default", "key", "baseValues_default", "values", "object", "baseValues_default", "keys_default", "values_default", "isUndefined", "value", "isUndefined_default", "baseLt", "value", "other", "baseLt_default", "mapValues", "object", "iteratee", "result", "baseIteratee_default", "baseForOwn_default", "value", "key", "baseAssignValue_default", "mapValues_default", "baseExtremum", "array", "iteratee", "comparator", "index", "length", "value", "current", "computed", "isSymbol_default", "result", "baseExtremum_default", "max", "array", "baseExtremum_default", "identity_default", "baseGt_default", "max_default", "min", "array", "baseExtremum_default", "identity_default", "baseLt_default", "min_default", "minBy", "array", "iteratee", "baseExtremum_default", "baseIteratee_default", "baseLt_default", "minBy_default", "baseSet", "object", "path", "value", "customizer", "isObject_default", "castPath_default", "index", "length", "lastIndex", "nested", "key", "toKey_default", "newValue", "objValue", "isIndex_default", "assignValue_default", "baseSet_default", "basePickBy", "object", "paths", "predicate", "index", "length", "result", "path", "value", "baseGet_default", "baseSet_default", "castPath_default", "basePickBy_default", "baseSortBy", "array", "comparer", "length", "baseSortBy_default", "compareAscending", "value", "other", "valIsDefined", "valIsNull", "valIsReflexive", "valIsSymbol", "isSymbol_default", "othIsDefined", "othIsNull", "othIsReflexive", "othIsSymbol", "compareAscending_default", "compareMultiple", "object", "other", "orders", "index", "objCriteria", "othCriteria", "length", "ordersLength", "result", "compareAscending_default", "order", "compareMultiple_default", "baseOrderBy", "collection", "iteratees", "orders", "arrayMap_default", "iteratee", "isArray_default", "value", "baseGet_default", "identity_default", "index", "baseUnary_default", "baseIteratee_default", "result", "baseMap_default", "key", "criteria", "baseSortBy_default", "object", "other", "compareMultiple_default", "baseOrderBy_default", "asciiSize", "baseProperty_default", "asciiSize_default", "rsAstralRange", "rsComboMarksRange", "reComboHalfMarksRange", "rsComboSymbolsRange", "rsComboRange", "rsVarRange", "rsAstral", "rsCombo", "rsFitz", "rsModifier", "rsNonAstral", "rsRegional", "rsSurrPair", "rsZWJ", "reOptMod", "rsOptVar", "rsOptJoin", "rsSeq", "rsSymbol", "reUnicode", "unicodeSize", "string", "result", "unicodeSize_default", "stringSize", "string", "hasUnicode_default", "unicodeSize_default", "asciiSize_default", "stringSize_default", "basePick", "object", "paths", "basePickBy_default", "value", "path", "hasIn_default", "basePick_default", "pick", "flatRest_default", "object", "paths", "basePick_default", "pick_default", "nativeCeil", "nativeMax", "baseRange", "start", "end", "step", "fromRight", "index", "length", "result", "baseRange_default", "createRange", "fromRight", "start", "end", "step", "isIterateeCall_default", "toFinite_default", "baseRange_default", "createRange_default", "range", "createRange_default", "range_default", "baseReduce", "collection", "iteratee", "accumulator", "initAccum", "eachFunc", "value", "index", "baseReduce_default", "reduce", "collection", "iteratee", "accumulator", "func", "isArray_default", "arrayReduce_default", "baseReduce_default", "initAccum", "baseIteratee_default", "baseEach_default", "reduce_default", "mapTag", "setTag", "size", "collection", "isArrayLike_default", "isString_default", "stringSize_default", "tag", "getTag_default", "baseKeys_default", "size_default", "sortBy", "baseRest_default", "collection", "iteratees", "length", "isIterateeCall_default", "baseOrderBy_default", "baseFlatten_default", "sortBy_default", "INFINITY", "createSet", "Set_default", "setToArray_default", "values", "noop_default", "createSet_default", "LARGE_ARRAY_SIZE", "baseUniq", "array", "iteratee", "comparator", "index", "includes", "arrayIncludes_default", "length", "isCommon", "result", "seen", "arrayIncludesWith_default", "set", "createSet_default", "setToArray_default", "cacheHas_default", "SetCache_default", "outer", "value", "computed", "seenIndex", "baseUniq_default", "union", "baseRest_default", "arrays", "baseUniq_default", "baseFlatten_default", "isArrayLikeObject_default", "union_default", "idCounter", "uniqueId", "prefix", "id", "toString_default", "uniqueId_default", "baseZipObject", "props", "values", "assignFunc", "index", "length", "valsLength", "result", "value", "baseZipObject_default", "zipObject", "props", "values", "baseZipObject_default", "assignValue_default", "zipObject_default", "DEFAULT_EDGE_NAME", "GRAPH_NODE", "EDGE_KEY_DELIM", "Graph", "opts", "has_default", "constant_default", "label", "newDefault", "isFunction_default", "keys_default", "self", "filter_default", "v", "isEmpty_default", "vs", "value", "args", "forEach_default", "removeEdge", "e", "child", "parent", "isUndefined_default", "ancestor", "children", "predsV", "sucsV", "preds", "union_default", "neighbors", "filter", "copy", "parents", "findParent", "values_default", "reduce_default", "w", "name", "valueSpecified", "arg0", "edgeArgsToId", "edgeObj", "edgeArgsToObj", "incrementOrInitEntry", "edgeObjToId", "edge", "decrementOrRemoveEntry", "u", "inV", "edges", "outV", "inEdges", "map", "k", "isDirected", "v_", "w_", "tmp", "addDummyNode", "g", "type", "attrs", "name", "v", "uniqueId_default", "simplify", "simplified", "Graph", "forEach_default", "e", "simpleLabel", "label", "asNonCompoundGraph", "intersectRect", "rect", "point", "x", "y", "dx", "dy", "w", "h", "sx", "sy", "buildLayerMatrix", "g", "layering", "map_default", "range_default", "maxRank", "forEach_default", "v", "node", "rank", "isUndefined_default", "normalizeRanks", "min", "min_default", "has_default", "removeEmptyRanks", "offset", "layers", "delta", "nodeRankFactor", "vs", "addBorderNode", "prefix", "order", "addDummyNode", "max_default", "partition", "collection", "fn", "result", "value", "time", "name", "start", "now_default", "notime", "addBorderSegments", "g", "dfs", "v", "children", "node", "forEach_default", "has_default", "rank", "maxRank", "addBorderNode", "prop", "prefix", "sg", "sgNode", "label", "prev", "curr", "addDummyNode", "adjust", "g", "rankDir", "swapWidthHeight", "undo", "reverseY", "swapXY", "forEach_default", "v", "swapWidthHeightOne", "attrs", "w", "reverseYOne", "edge", "has_default", "swapXYOne", "x", "List", "sentinel", "entry", "unlink", "strs", "curr", "filterOutLinks", "k", "v", "DEFAULT_WEIGHT_FN", "constant_default", "greedyFAS", "g", "weightFn", "state", "buildState", "results", "doGreedyFAS", "flatten_default", "map_default", "e", "buckets", "zeroIdx", "sources", "sinks", "entry", "removeNode", "i", "collectPredecessors", "forEach_default", "edge", "weight", "uEntry", "assignBucket", "w", "wEntry", "fasGraph", "Graph", "maxIn", "maxOut", "v", "prevWeight", "edgeWeight", "range_default", "List", "run", "g", "fas", "greedyFAS", "weightFn", "dfsFAS", "forEach_default", "e", "label", "uniqueId_default", "stack", "visited", "dfs", "v", "has_default", "undo", "forwardName", "run", "g", "forEach_default", "edge", "normalizeEdge", "v", "vRank", "w", "wRank", "name", "edgeLabel", "labelRank", "dummy", "attrs", "i", "addDummyNode", "undo", "node", "origLabel", "longestPath", "g", "visited", "dfs", "v", "label", "has_default", "rank", "min_default", "map_default", "e", "forEach_default", "slack", "feasibleTree", "g", "t", "Graph", "start", "size", "edge", "delta", "tightTree", "findMinSlackEdge", "slack", "shiftRanks", "dfs", "v", "forEach_default", "e", "edgeV", "w", "minBy_default", "DEFAULT_WEIGHT_FUNC", "constant_default", "DEFAULT_WEIGHT_FUNC", "constant_default", "topsort", "CycleException", "g", "visited", "stack", "results", "visit", "node", "has_default", "forEach_default", "size_default", "dfs", "g", "vs", "order", "isArray_default", "navigation", "acc", "visited", "forEach_default", "v", "doDfs", "postorder", "has_default", "w", "postorder", "g", "vs", "dfs", "preorder", "g", "vs", "dfs", "networkSimplex", "initLowLimValues", "initCutValues", "calcCutValue", "leaveEdge", "enterEdge", "exchangeEdges", "g", "simplify", "longestPath", "t", "feasibleTree", "e", "f", "vs", "postorder", "forEach_default", "v", "assignCutValue", "child", "childLab", "parent", "childIsTail", "graphEdge", "cutValue", "isOutEdge", "other", "pointsToHead", "otherWeight", "isTreeEdge", "otherCutValue", "tree", "root", "dfsAssignLowLim", "visited", "nextLim", "low", "label", "w", "has_default", "find_default", "edge", "vLabel", "wLabel", "tailLabel", "flip", "candidates", "filter_default", "isDescendant", "minBy_default", "slack", "updateRanks", "preorder", "flipped", "u", "rootLabel", "rank", "g", "networkSimplexRanker", "tightTreeRanker", "longestPathRanker", "longestPath", "feasibleTree", "networkSimplex", "run", "g", "root", "addDummyNode", "depths", "treeDepths", "height", "max_default", "values_default", "nodeSep", "forEach_default", "e", "weight", "sumWeights", "child", "dfs", "v", "children", "top", "addBorderNode", "bottom", "label", "childNode", "childTop", "childBottom", "thisWeight", "minlen", "depth", "reduce_default", "acc", "cleanup", "graphLabel", "edge", "addSubgraphConstraints", "g", "cg", "vs", "prev", "rootPrev", "forEach_default", "v", "child", "parent", "prevChild", "buildLayerGraph", "g", "rank", "relationship", "root", "createRootNode", "result", "Graph", "v", "forEach_default", "node", "parent", "e", "edge", "weight", "isUndefined_default", "has_default", "uniqueId_default", "crossCount", "g", "layering", "cc", "i", "twoLayerCrossCount", "northLayer", "southLayer", "southPos", "zipObject_default", "map_default", "v", "southEntries", "flatten_default", "sortBy_default", "e", "firstIndex", "treeSize", "tree", "forEach_default", "entry", "index", "weightSum", "initOrder", "g", "visited", "simpleNodes", "filter_default", "v", "maxRank", "max_default", "map_default", "layers", "range_default", "dfs", "has_default", "node", "forEach_default", "orderedVs", "sortBy_default", "barycenter", "g", "movable", "map_default", "v", "inV", "result", "reduce_default", "acc", "e", "edge", "nodeU", "resolveConflicts", "entries", "cg", "mappedEntries", "forEach_default", "entry", "i", "tmp", "isUndefined_default", "e", "entryV", "entryW", "sourceSet", "filter_default", "doResolveConflicts", "handleIn", "vEntry", "uEntry", "mergeEntries", "handleOut", "wEntry", "map_default", "pick_default", "target", "source", "sum", "weight", "sort", "entries", "biasRight", "parts", "partition", "entry", "has_default", "sortable", "unsortable", "sortBy_default", "vs", "sum", "weight", "vsIndex", "compareWithBias", "consumeUnsortable", "forEach_default", "result", "flatten_default", "index", "last", "last_default", "bias", "entryV", "entryW", "sortSubgraph", "g", "v", "cg", "biasRight", "movable", "node", "bl", "br", "subgraphs", "filter_default", "w", "barycenters", "barycenter", "forEach_default", "entry", "subgraphResult", "has_default", "mergeBarycenters", "entries", "resolveConflicts", "expandSubgraphs", "result", "sort", "flatten_default", "blPred", "brPred", "target", "other", "isUndefined_default", "order", "g", "maxRank", "downLayerGraphs", "buildLayerGraphs", "range_default", "upLayerGraphs", "layering", "initOrder", "assignOrder", "bestCC", "best", "i", "lastBest", "sweepLayerGraphs", "buildLayerMatrix", "cc", "crossCount", "cloneDeep_default", "ranks", "relationship", "map_default", "rank", "buildLayerGraph", "layerGraphs", "biasRight", "cg", "Graph", "forEach_default", "lg", "root", "sorted", "sortSubgraph", "v", "addSubgraphConstraints", "layer", "parentDummyChains", "g", "postorderNums", "postorder", "forEach_default", "v", "node", "edgeObj", "pathData", "findPath", "path", "lca", "pathIdx", "pathV", "ascending", "w", "vPath", "wPath", "low", "lim", "parent", "result", "dfs", "findType1Conflicts", "g", "layering", "conflicts", "visitLayer", "prevLayer", "layer", "k0", "scanPos", "prevLayerLength", "lastNode", "last_default", "forEach_default", "v", "i", "w", "findOtherInnerSegmentNode", "k1", "scanNode", "u", "uLabel", "uPos", "addConflict", "reduce_default", "findType2Conflicts", "scan", "south", "southPos", "southEnd", "prevNorthBorder", "nextNorthBorder", "range_default", "uNode", "north", "prevNorthPos", "nextNorthPos", "southLookahead", "predecessors", "find_default", "tmp", "conflictsV", "hasConflict", "has_default", "verticalAlignment", "neighborFn", "root", "align", "pos", "order", "prevIdx", "ws", "sortBy_default", "mp", "il", "horizontalCompaction", "reverseSep", "xs", "blockG", "buildBlockGraph", "borderType", "iterate", "setXsFunc", "nextNodesFunc", "stack", "elem", "visited", "pass1", "acc", "e", "pass2", "min", "node", "blockGraph", "Graph", "graphLabel", "sepFn", "sep", "vRoot", "uRoot", "prevMax", "findSmallestWidthAlignment", "xss", "minBy_default", "values_default", "max", "forIn_default", "x", "halfWidth", "width", "alignCoordinates", "alignTo", "alignToVals", "alignToMin", "min_default", "alignToMax", "max_default", "vert", "horiz", "alignment", "delta", "xsVals", "mapValues_default", "balance", "ignore", "map_default", "positionX", "buildLayerMatrix", "merge_default", "adjustedLayering", "inner", "smallestWidth", "nodeSep", "edgeSep", "vLabel", "wLabel", "sum", "position", "g", "asNonCompoundGraph", "positionY", "forOwn_default", "positionX", "x", "v", "layering", "buildLayerMatrix", "rankSep", "prevY", "forEach_default", "layer", "maxHeight", "max_default", "map_default", "layout", "g", "opts", "time", "notime", "layoutGraph", "buildLayoutGraph", "runLayout", "updateInputGraph", "makeSpaceForEdgeLabels", "removeSelfEdges", "run", "rank", "asNonCompoundGraph", "injectEdgeLabelProxies", "removeEmptyRanks", "cleanup", "normalizeRanks", "assignRankMinMax", "removeEdgeLabelProxies", "parentDummyChains", "addBorderSegments", "order", "insertSelfEdges", "adjust", "position", "positionSelfEdges", "removeBorderNodes", "undo", "fixupEdgeLabelCoords", "translateGraph", "assignNodeIntersects", "reversePointsForReversedEdges", "inputGraph", "forEach_default", "v", "inputLabel", "layoutLabel", "e", "has_default", "graphNumAttrs", "graphDefaults", "graphAttrs", "nodeNumAttrs", "nodeDefaults", "edgeNumAttrs", "edgeDefaults", "edgeAttrs", "Graph", "graph", "canonicalize", "merge_default", "selectNumberAttrs", "pick_default", "node", "defaults_default", "edge", "w", "label", "addDummyNode", "maxRank", "max_default", "minX", "maxX", "minY", "maxY", "graphLabel", "marginX", "marginY", "getExtremes", "attrs", "x", "y", "h", "nodeV", "nodeW", "p1", "p2", "intersectRect", "t", "b", "l", "last_default", "r", "layers", "buildLayerMatrix", "layer", "orderShift", "i", "selfEdge", "selfNode", "dx", "dy", "obj", "mapValues_default", "newAttrs", "k"] } diff --git a/docs/public/chunk-OZIWJXOC.min.js b/docs/public/chunk-F7JJDB3C.min.js similarity index 92% rename from docs/public/chunk-OZIWJXOC.min.js rename to docs/public/chunk-F7JJDB3C.min.js index 85583fd7..6e08ae34 100644 --- a/docs/public/chunk-OZIWJXOC.min.js +++ b/docs/public/chunk-F7JJDB3C.min.js @@ -1,2 +1,2 @@ -import{Ha as o,c as l}from"./chunk-JUXSCBYR.min.js";import{d as c}from"./chunk-P42HNYSU.min.js";var i=c(l(),1);var x=(s,t)=>{let r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.rx!==void 0&&r.attr("rx",t.rx),t.ry!==void 0&&r.attr("ry",t.ry),t.attrs!==void 0)for(let e in t.attrs)r.attr(e,t.attrs[e]);return t.class!==void 0&&r.attr("class",t.class),r},h=(s,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(s,r).lower()},y=(s,t)=>{let r=t.text.replace(o," "),e=s.append("text");e.attr("x",t.x),e.attr("y",t.y),e.attr("class","legend"),e.style("text-anchor",t.anchor),t.class!==void 0&&e.attr("class",t.class);let n=e.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),e},p=(s,t,r,e)=>{let n=s.append("image");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",a)},g=(s,t,r,e)=>{let n=s.append("use");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",`#${a}`)},m=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),f=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,h as b,y as c,p as d,g as e,m as f,f as g}; -//# sourceMappingURL=chunk-OZIWJXOC.min.js.map +import{Ha as o,c as l}from"./chunk-YICCS3KT.min.js";import{d as c}from"./chunk-P42HNYSU.min.js";var i=c(l(),1);var x=(s,t)=>{let r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.rx!==void 0&&r.attr("rx",t.rx),t.ry!==void 0&&r.attr("ry",t.ry),t.attrs!==void 0)for(let e in t.attrs)r.attr(e,t.attrs[e]);return t.class!==void 0&&r.attr("class",t.class),r},h=(s,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(s,r).lower()},y=(s,t)=>{let r=t.text.replace(o," "),e=s.append("text");e.attr("x",t.x),e.attr("y",t.y),e.attr("class","legend"),e.style("text-anchor",t.anchor),t.class!==void 0&&e.attr("class",t.class);let n=e.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),e},p=(s,t,r,e)=>{let n=s.append("image");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",a)},g=(s,t,r,e)=>{let n=s.append("use");n.attr("x",t),n.attr("y",r);let a=(0,i.sanitizeUrl)(e);n.attr("xlink:href",`#${a}`)},m=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),f=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,h as b,y as c,p as d,g as e,m as f,f as g}; +//# sourceMappingURL=chunk-F7JJDB3C.min.js.map diff --git a/docs/public/chunk-OZIWJXOC.min.js.map b/docs/public/chunk-F7JJDB3C.min.js.map similarity index 100% rename from docs/public/chunk-OZIWJXOC.min.js.map rename to docs/public/chunk-F7JJDB3C.min.js.map diff --git a/docs/public/chunk-NJUUHU62.min.js b/docs/public/chunk-I64Z623A.min.js similarity index 99% rename from docs/public/chunk-NJUUHU62.min.js rename to docs/public/chunk-I64Z623A.min.js index 4202a93c..4d9d3e2c 100644 --- a/docs/public/chunk-NJUUHU62.min.js +++ b/docs/public/chunk-I64Z623A.min.js @@ -1,7 +1,7 @@ -import{Ga as O1,La as zt,Za as Z1,bb as qt,cb as Ht,db as Wt,eb as Qt,fb as Zt,gb as Jt,h as V1,hb as $t,jb as J1,lb as te}from"./chunk-JUXSCBYR.min.js";var ft=function(){var e=function(h1,a,o,p){for(o=o||{},p=h1.length;p--;o[h1[p]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],O=[1,16],z=[1,23],c1=[1,25],f1=[1,26],A1=[1,27],S=[1,49],k=[1,48],o1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],B=[1,44],x=[1,46],y=[1,42],m=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],j1=[1,34],Y1=[1,35],X1=[1,36],z1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],H=[1,61],W=[1,60],Q=[1,62],q1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],C1=[1,87],S1=[1,94],_1=[1,90],B1=[1,95],x1=[1,86],H1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],Ct=[1,145],St=[1,130],_t=[1,132],Bt=[1,136],xt=[1,137],yt=[1,138],mt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],Ot=[1,134],Pt=[1,129],wt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],f=[1,169],P=[1,165],w=[1,166],A=[1,170],d=[1,167],E=[1,168],y1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],l1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Z=[1,235],J=[1,233],$=[1,237],t1=[1,231],e1=[1,232],s1=[1,234],u1=[1,236],i1=[1,238],m1=[1,255],Kt=[8,9,11,103],q=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,p,r,C,t,N1){var s=t.length-1;switch(C){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var j=r.destructLink(t[s],t[s-2]);this.$={type:j.type,stroke:j.stroke,length:j.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var j=r.destructLink(t[s]);this.$={type:j.type,stroke:j.stroke,length:j.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:H,9:W,11:Q,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:H,9:W,11:Q,21:66},{8:H,9:W,11:Q,21:67},{8:H,9:W,11:Q,21:68},{8:H,9:W,11:Q,21:69},{8:H,9:W,11:Q,21:70},{8:H,9:W,10:[1,71],11:Q,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(q1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(H1,[2,47]),e(H1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:S,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:S,43:39,45:40,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:Ct,42:St,58:_t,73:Bt,77:[1,124],78:[1,125],80:135,81:xt,82:yt,83:mt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:Ot,111:Pt,112:wt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(q1,[2,45],{42:Gt}),{42:S,45:150,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:S,45:154,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{42:S,45:155,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:S,45:162,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:171,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:174,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:175,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:176,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:181,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:182,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:183,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(q1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(y1,[2,73]),e(y1,[2,75]),e(y1,[2,76]),e(y1,[2,161]),e(y1,[2,162]),{8:H,9:W,10:gt,11:Q,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:Ct,42:St,58:_t,73:Bt,80:135,81:xt,82:yt,83:mt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:Ot,111:Pt,112:wt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,193],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},{10:I1,18:194},{10:[1,195],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(H1,[2,50],{110:109,42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:f,79:208,113:A,114:d,115:E},e(l1,[2,79]),e(l1,[2,81]),e(l1,[2,82]),e(l1,[2,146]),e(l1,[2,147]),e(l1,[2,148]),e(l1,[2,149]),{47:[1,209],65:f,79:208,113:A,114:d,115:E},{30:210,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{49:[1,211],65:f,79:208,113:A,114:d,115:E},{51:[1,212],65:f,79:208,113:A,114:d,115:E},{53:[1,213],65:f,79:208,113:A,114:d,115:E},{55:[1,214],65:f,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:f,79:208,113:A,114:d,115:E},{64:[1,217],65:f,79:208,113:A,114:d,115:E},{30:218,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{31:[1,219],65:f,79:208,113:A,114:d,115:E},{65:f,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:f,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(q1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:f,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(y1,[2,74]),{30:225,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:S,43:39,45:40,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{10:Z,58:J,81:$,89:228,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:239,101:[1,240],102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:241,101:[1,242],102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{102:[1,243]},{10:Z,58:J,81:$,89:244,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{42:S,45:245,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(l1,[2,80]),e(N,[2,52]),{49:[1,250],65:f,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:f,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:f,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,254],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},e(H1,[2,48]),e(T,[2,114],{103:m1}),e(Kt,[2,123],{105:256,10:Z,58:J,81:$,102:t1,106:e1,107:s1,108:u1,109:i1}),e(q,[2,125]),e(q,[2,127]),e(q,[2,128]),e(q,[2,129]),e(q,[2,130]),e(q,[2,131]),e(q,[2,132]),e(q,[2,133]),e(q,[2,134]),e(T,[2,115],{103:m1}),{10:[1,257]},e(T,[2,116],{103:m1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:m1}),e(T,[2,99],{110:109,42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:H,9:W,11:Q,21:264},e(b,[2,34]),{10:Z,58:J,81:$,102:t1,104:265,105:230,106:e1,107:s1,108:u1,109:i1},e(q,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:Z,58:J,81:$,102:t1,106:e1,107:s1,108:u1,109:i1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,107]),{31:[1,273],65:f,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,274],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},{10:Z,58:J,81:$,89:275,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:276,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:m1}),e(T,[2,118],{103:m1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var p=new Error(a);throw p.hash=o,p}},parse:function(a){var o=this,p=[0],r=[],C=[null],t=[],N1=this.table,s="",j=0,jt=0,Ie=2,Yt=1,Re=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var Ne=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Oe(){var n1;return n1=r.pop()||_.lex()||Yt,typeof n1!="number"&&(n1 instanceof Array&&(r=n1,n1=r.pop()),n1=o.symbols_[n1]||n1),n1}for(var G,E1,Y,ht,v1={},W1,r1,Xt,Q1;;){if(E1=p[p.length-1],this.defaultActions[E1]?Y=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Oe()),Y=N1[E1]&&N1[E1][G]),typeof Y>"u"||!Y.length||!Y[0]){var pt="";Q1=[];for(W1 in N1[E1])this.terminals_[W1]&&W1>Ie&&Q1.push("'"+this.terminals_[W1]+"'");_.showPosition?pt="Parse error on line "+(j+1)+`: +import{Ga as O1,La as zt,Za as Z1,bb as qt,cb as Ht,db as Wt,eb as Qt,fb as Zt,gb as Jt,h as V1,hb as $t,jb as J1,lb as te}from"./chunk-YICCS3KT.min.js";var ft=function(){var e=function(h1,a,o,p){for(o=o||{},p=h1.length;p--;o[h1[p]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],O=[1,16],z=[1,23],c1=[1,25],f1=[1,26],A1=[1,27],S=[1,49],k=[1,48],o1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],B=[1,44],x=[1,46],y=[1,42],m=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],j1=[1,34],Y1=[1,35],X1=[1,36],z1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],H=[1,61],W=[1,60],Q=[1,62],q1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],C1=[1,87],S1=[1,94],_1=[1,90],B1=[1,95],x1=[1,86],H1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],Ct=[1,145],St=[1,130],_t=[1,132],Bt=[1,136],xt=[1,137],yt=[1,138],mt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],Ot=[1,134],Pt=[1,129],wt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],f=[1,169],P=[1,165],w=[1,166],A=[1,170],d=[1,167],E=[1,168],y1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],l1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Z=[1,235],J=[1,233],$=[1,237],t1=[1,231],e1=[1,232],s1=[1,234],u1=[1,236],i1=[1,238],m1=[1,255],Kt=[8,9,11,103],q=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,p,r,C,t,N1){var s=t.length-1;switch(C){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var j=r.destructLink(t[s],t[s-2]);this.$={type:j.type,stroke:j.stroke,length:j.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var j=r.destructLink(t[s]);this.$={type:j.type,stroke:j.stroke,length:j.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:H,9:W,11:Q,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:H,9:W,11:Q,21:66},{8:H,9:W,11:Q,21:67},{8:H,9:W,11:Q,21:68},{8:H,9:W,11:Q,21:69},{8:H,9:W,11:Q,21:70},{8:H,9:W,10:[1,71],11:Q,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(q1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(H1,[2,47]),e(H1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:S,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:S,43:39,45:40,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:Ct,42:St,58:_t,73:Bt,77:[1,124],78:[1,125],80:135,81:xt,82:yt,83:mt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:Ot,111:Pt,112:wt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(q1,[2,45],{42:Gt}),{42:S,45:150,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:S,45:154,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{42:S,45:155,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:S,45:162,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:171,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:174,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:175,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:176,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:181,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:182,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{30:183,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(q1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(y1,[2,73]),e(y1,[2,75]),e(y1,[2,76]),e(y1,[2,161]),e(y1,[2,162]),{8:H,9:W,10:gt,11:Q,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:Ct,42:St,58:_t,73:Bt,80:135,81:xt,82:yt,83:mt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:Ot,111:Pt,112:wt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,193],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},{10:I1,18:194},{10:[1,195],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(H1,[2,50],{110:109,42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:f,79:208,113:A,114:d,115:E},e(l1,[2,79]),e(l1,[2,81]),e(l1,[2,82]),e(l1,[2,146]),e(l1,[2,147]),e(l1,[2,148]),e(l1,[2,149]),{47:[1,209],65:f,79:208,113:A,114:d,115:E},{30:210,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{49:[1,211],65:f,79:208,113:A,114:d,115:E},{51:[1,212],65:f,79:208,113:A,114:d,115:E},{53:[1,213],65:f,79:208,113:A,114:d,115:E},{55:[1,214],65:f,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:f,79:208,113:A,114:d,115:E},{64:[1,217],65:f,79:208,113:A,114:d,115:E},{30:218,65:f,77:P,78:w,79:164,113:A,114:d,115:E},{31:[1,219],65:f,79:208,113:A,114:d,115:E},{65:f,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:f,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(q1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:f,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(y1,[2,74]),{30:225,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:S,43:39,45:40,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},{10:Z,58:J,81:$,89:228,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:239,101:[1,240],102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:241,101:[1,242],102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{102:[1,243]},{10:Z,58:J,81:$,89:244,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{42:S,45:245,58:k,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(l1,[2,80]),e(N,[2,52]),{49:[1,250],65:f,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:f,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:f,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,254],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},e(H1,[2,48]),e(T,[2,114],{103:m1}),e(Kt,[2,123],{105:256,10:Z,58:J,81:$,102:t1,106:e1,107:s1,108:u1,109:i1}),e(q,[2,125]),e(q,[2,127]),e(q,[2,128]),e(q,[2,129]),e(q,[2,130]),e(q,[2,131]),e(q,[2,132]),e(q,[2,133]),e(q,[2,134]),e(T,[2,115],{103:m1}),{10:[1,257]},e(T,[2,116],{103:m1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:m1}),e(T,[2,99],{110:109,42:S,58:k,86:B,99:x,102:y,103:m,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:H,9:W,11:Q,21:264},e(b,[2,34]),{10:Z,58:J,81:$,102:t1,104:265,105:230,106:e1,107:s1,108:u1,109:i1},e(q,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:f,77:P,78:w,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:Z,58:J,81:$,102:t1,106:e1,107:s1,108:u1,109:i1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:C1,108:S1,111:_1,112:B1,113:x1}),e(T,[2,107]),{31:[1,273],65:f,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:O,20:17,22:18,23:19,24:20,25:21,26:22,27:z,32:[1,274],33:24,34:c1,36:f1,38:A1,40:28,41:38,42:S,43:39,45:40,58:k,81:o1,82:U1,83:G1,84:M1,85:K1,86:B,99:x,102:y,103:m,106:v,108:V,110:41,111:L,112:I,113:R,118:j1,119:Y1,120:X1,121:z1},{10:Z,58:J,81:$,89:275,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},{10:Z,58:J,81:$,89:276,102:t1,104:229,105:230,106:e1,107:s1,108:u1,109:i1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:m1}),e(T,[2,118],{103:m1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var p=new Error(a);throw p.hash=o,p}},parse:function(a){var o=this,p=[0],r=[],C=[null],t=[],N1=this.table,s="",j=0,jt=0,Ie=2,Yt=1,Re=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var Ne=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Oe(){var n1;return n1=r.pop()||_.lex()||Yt,typeof n1!="number"&&(n1 instanceof Array&&(r=n1,n1=r.pop()),n1=o.symbols_[n1]||n1),n1}for(var G,E1,Y,ht,v1={},W1,r1,Xt,Q1;;){if(E1=p[p.length-1],this.defaultActions[E1]?Y=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Oe()),Y=N1[E1]&&N1[E1][G]),typeof Y>"u"||!Y.length||!Y[0]){var pt="";Q1=[];for(W1 in N1[E1])this.terminals_[W1]&&W1>Ie&&Q1.push("'"+this.terminals_[W1]+"'");_.showPosition?pt="Parse error on line "+(j+1)+`: `+_.showPosition()+` Expecting `+Q1.join(", ")+", got '"+(this.terminals_[G]||G)+"'":pt="Parse error on line "+(j+1)+": Unexpected "+(G==Yt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(pt,{text:_.match,token:this.terminals_[G]||G,line:_.yylineno,loc:lt,expected:Q1})}if(Y[0]instanceof Array&&Y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E1+", token: "+G);switch(Y[0]){case 1:p.push(G),C.push(_.yytext),t.push(_.yylloc),p.push(Y[1]),G=null,jt=_.yyleng,s=_.yytext,j=_.yylineno,lt=_.yylloc;break;case 2:if(r1=this.productions_[Y[1]][1],v1.$=C[C.length-r1],v1._$={first_line:t[t.length-(r1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(r1||1)].first_column,last_column:t[t.length-1].last_column},Ne&&(v1._$.range=[t[t.length-(r1||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(v1,[s,jt,j,d1.yy,Y[1],C,t].concat(Re)),typeof ht<"u")return ht;r1&&(p=p.slice(0,-1*r1*2),C=C.slice(0,-1*r1),t=t.slice(0,-1*r1)),p.push(this.productions_[Y[1]][0]),C.push(v1.$),t.push(v1._$),Xt=N1[p[p.length-2]][p[p.length-1]],p.push(Xt);break;case 3:return!0}}return!0}},Le=function(){var h1={EOF:1,parseError:function(o,p){if(this.yy.parser)this.yy.parser.parseError(o,p);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,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 a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,p=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=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 C=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===r.length?this.yylloc.first_column:0)+r[r.length-p.length].length-p[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-o]),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(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` `+o+"^"},test_match:function(a,o){var p,r,C;if(this.options.backtrack_lexer&&(C={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&&(C.yylloc.range=this.yylloc.range.slice(0))),r=a[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,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(a[0].length),this.matched+=a[0],p=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var t in C)this[t]=C[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,p,r;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),t=0;to[0].length)){if(o=p,r=t,this.options.backtrack_lexer){if(a=this.test_match(p,C[t]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,C[r]),a!==!1?a:!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 o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>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(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(o,p,r,C){switch(r){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;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:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return o.lex.firstGraph()&&this.begin("dir"),12;case 30:return o.lex.firstGraph()&&this.begin("dir"),12;case 31:return o.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return h1}();at.lexer=Le;function ct(){this.yy={}}return ct.prototype=at,at.Parser=ct,new ct}();ft.parser=ft;var qe=ft,Pe="flowchart-",ee=0,dt=J1(),D={},p1=[],L1={},a1=[],tt={},et={},$1=0,At=!0,X,st,ut=[],it=e=>zt.sanitizeText(e,dt),w1=function(e){let u=Object.keys(D);for(let i of u)if(D[i].id===e)return D[i].domId;return e},se=function(e,u,i,n,c,l,h={}){let U,F=e;F!==void 0&&F.trim().length!==0&&(D[F]===void 0&&(D[F]={id:F,labelType:"text",domId:Pe+F+"-"+ee,styles:[],classes:[]}),ee++,u!==void 0?(dt=J1(),U=it(u.text.trim()),D[F].labelType=u.type,U[0]==='"'&&U[U.length-1]==='"'&&(U=U.substring(1,U.length-1)),D[F].text=U):D[F].text===void 0&&(D[F].text=e),i!==void 0&&(D[F].type=i),n?.forEach(function(O){D[F].styles.push(O)}),c?.forEach(function(O){D[F].classes.push(O)}),l!==void 0&&(D[F].dir=l),D[F].props===void 0?D[F].props=h:h!==void 0&&Object.assign(D[F].props,h))},ue=function(e,u,i){let l={start:e,end:u,type:void 0,text:"",labelType:"text"};O1.info("abc78 Got edge...",l);let h=i.text;if(h!==void 0&&(l.text=it(h.text.trim()),l.text[0]==='"'&&l.text[l.text.length-1]==='"'&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=h.type),i!==void 0&&(l.type=i.type,l.stroke=i.stroke,l.length=i.length),l?.length>10&&(l.length=10),p1.length<280)O1.info("abc78 pushing edge..."),p1.push(l);else throw new Error("Too many edges")},ie=function(e,u,i){O1.info("addLink (abc78)",e,u,i);let n,c;for(n=0;n/)&&(X="LR"),X.match(/.*v/)&&(X="TB"),X==="TD"&&(X="TB")},rt=function(e,u){e.split(",").forEach(function(i){let n=i;D[n]!==void 0&&D[n].classes.push(u),tt[n]!==void 0&&tt[n].classes.push(u)})},we=function(e,u){e.split(",").forEach(function(i){u!==void 0&&(et[st==="gen-1"?w1(i):i]=it(u))})},Ue=function(e,u,i){let n=w1(e);if(J1().securityLevel!=="loose"||u===void 0)return;let c=[];if(typeof i=="string"){c=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l")),c.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),V1(this).classed("hover",!1)})};ut.push(ke);var be=function(e="gen-1"){D={},L1={},p1=[],ut=[ke],a1=[],tt={},$1=0,et={},At=!0,st=e,qt()},ge=e=>{st=e||"gen-2"},De=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},Fe=function(e,u,i){let n=e.text.trim(),c=i.text;e===i&&i.text.match(/\s/)&&(n=void 0);function l(z){let c1={boolean:{},number:{},string:{}},f1=[],A1;return{nodeList:z.filter(function(k){let o1=typeof k;return k.stmt&&k.stmt==="dir"?(A1=k.value,!1):k.trim()===""?!1:o1 in c1?c1[o1].hasOwnProperty(k)?!1:c1[o1][k]=!0:f1.includes(k)?!1:f1.push(k)}),dir:A1}}let h=[],{nodeList:U,dir:F}=l(h.concat.apply(h,u));if(h=U,st==="gen-1")for(let z=0;z2e3)return;if(Te[P1]=u,a1[u].id===e)return{result:!0,count:0};let n=0,c=1;for(;n=0){let h=Ce(e,l);if(h.result)return{result:!0,count:c+h.count};c=c+h.count}n=n+1}return{result:!1,count:c}},Se=function(e){return Te[e]},_e=function(){P1=-1,a1.length>0&&Ce("none",a1.length-1)},Be=function(){return a1},xe=()=>At?(At=!1,!0):!1,Me=e=>{let u=e.trim(),i="arrow_open";switch(u[0]){case"<":i="arrow_point",u=u.slice(1);break;case"x":i="arrow_cross",u=u.slice(1);break;case"o":i="arrow_circle",u=u.slice(1);break}let n="normal";return u.includes("=")&&(n="thick"),u.includes(".")&&(n="dotted"),{type:i,stroke:n}},Ke=(e,u)=>{let i=u.length,n=0;for(let c=0;c{let u=e.trim(),i=u.slice(0,-1),n="arrow_open";switch(u.slice(-1)){case"x":n="arrow_cross",u[0]==="x"&&(n="double_"+n,i=i.slice(1));break;case">":n="arrow_point",u[0]==="<"&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",u[0]==="o"&&(n="double_"+n,i=i.slice(1));break}let c="normal",l=i.length-1;i[0]==="="&&(c="thick"),i[0]==="~"&&(c="invisible");let h=Ke(".",i);return h&&(c="dotted",l=h),{type:n,stroke:c,length:l}},ye=(e,u)=>{let i=je(e),n;if(u){if(n=Me(u),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i},me=(e,u)=>{let i=!1;return e.forEach(n=>{n.nodes.indexOf(u)>=0&&(i=!0)}),i},ve=(e,u)=>{let i=[];return e.nodes.forEach((n,c)=>{me(u,n)||i.push(e.nodes[c])}),{nodes:i}},Ve={firstGraph:xe},Ye={defaultConfig:()=>te.flowchart,setAccTitle:Ht,getAccTitle:Wt,getAccDescription:Zt,setAccDescription:Qt,addVertex:se,lookUpDomId:w1,addLink:ie,updateLinkInterpolate:re,updateLink:ne,addClass:ae,setDirection:ce,setClass:rt,setTooltip:we,getTooltip:le,setClickEvent:he,setLink:oe,bindFunctions:pe,getDirection:fe,getVertices:Ae,getEdges:de,getClasses:Ee,clear:be,setGen:ge,defaultStyle:De,addSubGraph:Fe,getDepthFirstPos:Se,indexNodes:_e,getSubGraphs:Be,destructLink:ye,lex:Ve,exists:me,makeUniq:ve,setDiagramTitle:Jt,getDiagramTitle:$t},He=Object.freeze(Object.defineProperty({__proto__:null,addClass:ae,addLink:ie,addSingleLink:ue,addSubGraph:Fe,addVertex:se,bindFunctions:pe,clear:be,default:Ye,defaultStyle:De,destructLink:ye,firstGraph:xe,getClasses:Ee,getDepthFirstPos:Se,getDirection:fe,getEdges:de,getSubGraphs:Be,getTooltip:le,getVertices:Ae,indexNodes:_e,lex:Ve,lookUpDomId:w1,setClass:rt,setClickEvent:he,setDirection:ce,setGen:ge,setLink:oe,updateLink:ne,updateLinkInterpolate:re},Symbol.toStringTag,{value:"Module"}));export{qe as a,Ye as b,He as c}; -//# sourceMappingURL=chunk-NJUUHU62.min.js.map +//# sourceMappingURL=chunk-I64Z623A.min.js.map diff --git a/docs/public/chunk-NJUUHU62.min.js.map b/docs/public/chunk-I64Z623A.min.js.map similarity index 100% rename from docs/public/chunk-NJUUHU62.min.js.map rename to docs/public/chunk-I64Z623A.min.js.map diff --git a/docs/public/chunk-6B5KH4YS.min.js b/docs/public/chunk-U66T5BMR.min.js similarity index 97% rename from docs/public/chunk-6B5KH4YS.min.js rename to docs/public/chunk-U66T5BMR.min.js index e5a69006..97fba5fe 100644 --- a/docs/public/chunk-6B5KH4YS.min.js +++ b/docs/public/chunk-U66T5BMR.min.js @@ -1,4 +1,4 @@ -import{a as q}from"./chunk-VHIEHVUL.min.js";import{j as R}from"./chunk-NAH225X5.min.js";import{F as $,Ga as u,Ja as F,K as G,L as P,La as N,Qa as E,Ra as L,T as V,Za as H,ab as U,h as T,i as z,jb as _,ma as M}from"./chunk-JUXSCBYR.min.js";function oe(e,l){return!!e.children(l).length}function ne(e){return A(e.v)+":"+A(e.w)+":"+A(e.name)}var Q=/:/g;function A(e){return e?String(e).replace(Q,"\\:"):""}function j(e,l){l&&e.attr("style",l)}function se(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ie(e,l){var c=l.graph();if(M(c)){var a=c.transition;if(V(a))return a(e)}return e}function W(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}j(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}var X={},Z=function(e){let l=Object.keys(e);for(let c of l)X[c]=e[c]},J=function(e,l,c,a,i,d){let h=a.select(`[id="${c}"]`);Object.keys(e).forEach(function(p){let r=e[p],g="default";r.classes.length>0&&(g=r.classes.join(" ")),g=g+" flowchart-label";let w=L(r.styles),t=r.text!==void 0?r.text:r.id,s;if(u.info("vertex",r,r.labelType),r.labelType==="markdown")u.info("vertex",r,r.labelType);else if(F(_().flowchart.htmlLabels)){let m={label:t.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};s=W(h,m).node(),s.parentNode.removeChild(s)}else{let m=i.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",w.labelStyle.replace("color:","fill:"));let k=t.split(N.lineBreakRegex);for(let C of k){let v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=C,m.appendChild(v)}s=m}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:t,labelType:r.labelType,rx:b,ry:b,class:g,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:_().flowchart.padding}),u.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:t,rx:b,ry:b,class:g,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:_().flowchart.padding})})},K=function(e,l,c){u.info("abc78 edges = ",e);let a=0,i={},d,h;if(e.defaultStyle!==void 0){let n=L(e.defaultStyle);d=n.style,h=n.labelStyle}e.forEach(function(n){a++;let p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,u.info("abc78 new entry",p,i[p])):(i[p]++,u.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];u.info("abc78 new link id to be used is",p,r,i[p]);let g="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),h!==void 0&&(b=h),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){let o=L(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,$):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,$):t.curve=E(X.curve,$),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=n.text.replace(N.lineBreakRegex,` +import{a as q}from"./chunk-YAMJ4ASO.min.js";import{j as R}from"./chunk-EKFGDCJ4.min.js";import{F as $,Ga as u,Ja as F,K as G,L as P,La as N,Qa as E,Ra as L,T as V,Za as H,ab as U,h as T,i as z,jb as _,ma as M}from"./chunk-YICCS3KT.min.js";function oe(e,l){return!!e.children(l).length}function ne(e){return A(e.v)+":"+A(e.w)+":"+A(e.name)}var Q=/:/g;function A(e){return e?String(e).replace(Q,"\\:"):""}function j(e,l){l&&e.attr("style",l)}function se(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ie(e,l){var c=l.graph();if(M(c)){var a=c.transition;if(V(a))return a(e)}return e}function W(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}j(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}var X={},Z=function(e){let l=Object.keys(e);for(let c of l)X[c]=e[c]},J=function(e,l,c,a,i,d){let h=a.select(`[id="${c}"]`);Object.keys(e).forEach(function(p){let r=e[p],g="default";r.classes.length>0&&(g=r.classes.join(" ")),g=g+" flowchart-label";let w=L(r.styles),t=r.text!==void 0?r.text:r.id,s;if(u.info("vertex",r,r.labelType),r.labelType==="markdown")u.info("vertex",r,r.labelType);else if(F(_().flowchart.htmlLabels)){let m={label:t.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};s=W(h,m).node(),s.parentNode.removeChild(s)}else{let m=i.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",w.labelStyle.replace("color:","fill:"));let k=t.split(N.lineBreakRegex);for(let C of k){let v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=C,m.appendChild(v)}s=m}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:t,labelType:r.labelType,rx:b,ry:b,class:g,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:_().flowchart.padding}),u.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:t,rx:b,ry:b,class:g,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:_().flowchart.padding})})},K=function(e,l,c){u.info("abc78 edges = ",e);let a=0,i={},d,h;if(e.defaultStyle!==void 0){let n=L(e.defaultStyle);d=n.style,h=n.labelStyle}e.forEach(function(n){a++;let p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,u.info("abc78 new entry",p,i[p])):(i[p]++,u.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];u.info("abc78 new link id to be used is",p,r,i[p]);let g="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),h!==void 0&&(b=h),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){let o=L(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,$):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,$):t.curve=E(X.curve,$),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=n.text.replace(N.lineBreakRegex,` `),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+g+" "+w,l.setEdge(n.start,n.end,t,a)})},O=function(e,l){return l.db.getClasses()},ee=async function(e,l,c,a){u.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");let{securityLevel:d,flowchart:h}=_(),n=h.nodeSpacing||50,p=h.rankSpacing||50,r;d==="sandbox"&&(r=T("#i"+l));let g=d==="sandbox"?T(r.nodes()[0].contentDocument.body):T("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new R({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}}),s,b=a.db.getSubGraphs();u.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],u.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);let o=a.db.getVertices(),m=a.db.getEdges();u.info("Edges",m);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],z("cluster").append("text");for(let f=0;f{let c=P,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return G(a,i,d,l)},re=e=>`.label { font-family: ${e.fontFamily}; color: ${e.nodeTextColor||e.textColor}; @@ -108,4 +108,4 @@ import{a as q}from"./chunk-VHIEHVUL.min.js";import{j as R}from"./chunk-NAH225X5. fill: ${e.textColor}; } `,ye=re;export{oe as a,ne as b,j as c,se as d,ie as e,W as f,we as g,ye as h}; -//# sourceMappingURL=chunk-6B5KH4YS.min.js.map +//# sourceMappingURL=chunk-U66T5BMR.min.js.map diff --git a/docs/public/chunk-6B5KH4YS.min.js.map b/docs/public/chunk-U66T5BMR.min.js.map similarity index 100% rename from docs/public/chunk-6B5KH4YS.min.js.map rename to docs/public/chunk-U66T5BMR.min.js.map diff --git a/docs/public/chunk-VHIEHVUL.min.js b/docs/public/chunk-YAMJ4ASO.min.js similarity index 97% rename from docs/public/chunk-VHIEHVUL.min.js rename to docs/public/chunk-YAMJ4ASO.min.js index c87291ce..e6260f84 100644 --- a/docs/public/chunk-VHIEHVUL.min.js +++ b/docs/public/chunk-YAMJ4ASO.min.js @@ -1,2 +1,2 @@ -import{a as _,b as O,d as k,e as y,f as F,g as G,h as U,i as T,k as A,l as $,m as H,n as M}from"./chunk-NV7BXRXJ.min.js";import{b as R}from"./chunk-ZMRDHQ6H.min.js";import{a as L,d as D,f as x,j as J,k as P}from"./chunk-NAH225X5.min.js";import{Ga as n,Ja as E,h as B,jb as N}from"./chunk-JUXSCBYR.min.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Y(e),edges:Z(e)};return x(e.graph())||(t.value=L(e.graph())),t}function Y(e){return D(e.nodes(),function(t){var i=e.node(t),r=e.parent(t),s={v:t};return x(i)||(s.value=i),x(r)||(s.parent=r),s})}function Z(e){return D(e.edges(),function(t){var i=e.edge(t),r={v:t.v,w:t.w};return x(t.name)||(r.name=t.name),x(i)||(r.value=i),r})}var f={},g={},V={},tt=()=>{g={},V={},f={}},S=(e,t)=>(n.trace("In isDecendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),et=(e,t)=>(n.info("Decendants of ",t," is ",g[t]),n.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||S(e.v,t)||S(e.w,t)||g[t].includes(e.w):(n.debug("Tilt, ",t,",not in decendants"),!1)),j=(e,t,i,r)=>{n.warn("Copying children of ",e,"root",r,"data",t.node(e),r);let s=t.children(e)||[];e!==r&&s.push(e),n.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(c=>{if(t.children(c).length>0)j(c,t,i,r);else{let d=t.node(c);n.info("cp ",c," to ",r," with parent ",e),i.setNode(c,d),r!==t.parent(c)&&(n.warn("Setting parent",c,t.parent(c)),i.setParent(c,t.parent(c))),e!==r&&c!==e?(n.debug("Setting parent",c,e),i.setParent(c,e)):(n.info("In copy ",e,"root",r,"data",t.node(e),r),n.debug("Not Setting parent for node=",c,"cluster!==rootId",e!==r,"node!==clusterId",c!==e));let l=t.edges(c);n.debug("Copying Edges",l),l.forEach(h=>{n.info("Edge",h);let u=t.edge(h.v,h.w,h.name);n.info("Edge data",u,r);try{et(h,r)?(n.info("Copying as ",h.v,h.w,u,h.name),i.setEdge(h.v,h.w,u,h.name),n.info("newGraph edges ",i.edges(),i.edge(i.edges()[0]))):n.info("Skipping copy of edge ",h.v,"-->",h.w," rootId: ",r," clusterId:",e)}catch(w){n.error(w)}})}n.debug("Removing node",c),t.removeNode(c)})},W=(e,t)=>{let i=t.children(e),r=[...i];for(let s of i)V[s]=e,r=[...r,...W(s,t)];return r},p=(e,t)=>{n.trace("Searching",e);let i=t.children(e);if(n.trace("Searching children of id ",e,i),i.length<1)return n.trace("This is a valid node",e),e;for(let r of i){let s=p(r,t);if(s)return n.trace("Found replacement for",e," => ",s),s}},X=e=>!f[e]||!f[e].externalConnections?e:f[e]?f[e].id:e,it=(e,t)=>{if(!e||t>10){n.debug("Opting out, no graph ");return}else n.debug("Opting in, graph ");e.nodes().forEach(function(i){e.children(i).length>0&&(n.warn("Cluster identified",i," Replacement id in edges: ",p(i,e)),g[i]=W(i,e),f[i]={id:p(i,e),clusterData:e.node(i)})}),e.nodes().forEach(function(i){let r=e.children(i),s=e.edges();r.length>0?(n.debug("Cluster identified",i,g),s.forEach(c=>{if(c.v!==i&&c.w!==i){let d=S(c.v,i),l=S(c.w,i);d^l&&(n.warn("Edge: ",c," leaves cluster ",i),n.warn("Decendants of XXX ",i,": ",g[i]),f[i].externalConnections=!0)}})):n.debug("Not a cluster ",i,g)}),e.edges().forEach(function(i){let r=e.edge(i);n.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(i)),n.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(e.edge(i)));let s=i.v,c=i.w;if(n.warn("Fix XXX",f,"ids:",i.v,i.w,"Translating: ",f[i.v]," --- ",f[i.w]),f[i.v]&&f[i.w]&&f[i.v]===f[i.w]){n.warn("Fixing and trixing link to self - removing XXX",i.v,i.w,i.name),n.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=X(i.v),c=X(i.w),e.removeEdge(i.v,i.w,i.name);let d=i.w+"---"+i.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});let l=structuredClone(r),h=structuredClone(r);l.label="",l.arrowTypeEnd="none",h.label="",l.fromCluster=i.v,h.toCluster=i.v,e.setEdge(s,d,l,i.name+"-cyclic-special"),e.setEdge(d,c,h,i.name+"-cyclic-special")}else(f[i.v]||f[i.w])&&(n.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=X(i.v),c=X(i.w),e.removeEdge(i.v,i.w,i.name),s!==i.v&&(r.fromCluster=i.v),c!==i.w&&(r.toCluster=i.w),n.warn("Fix Replacing with XXX",s,c,i.name),e.setEdge(s,c,r,i.name))}),n.warn("Adjusted Graph",m(e)),q(e,0),n.trace(f)},q=(e,t)=>{if(n.warn("extractor - ",t,m(e),e.children("D")),t>10){n.error("Bailing out");return}let i=e.nodes(),r=!1;for(let s of i){let c=e.children(s);r=r||c.length>0}if(!r){n.debug("Done, no node has children",e.nodes());return}n.debug("Nodes = ",i,t);for(let s of i)if(n.debug("Extracting node",s,f,f[s]&&!f[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!f[s])n.debug("Not a cluster",s,t);else if(!f[s].externalConnections&&e.children(s)&&e.children(s).length>0){n.warn("Cluster without external connections, without a parent and with children",s,t);let d=e.graph().rankdir==="TB"?"LR":"TB";f[s]&&f[s].clusterData&&f[s].clusterData.dir&&(d=f[s].clusterData.dir,n.warn("Fixing dir",f[s].clusterData.dir,d));let l=new J({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});n.warn("Old graph before copy",m(e)),j(s,e,l,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:f[s].clusterData,labelText:f[s].labelText,graph:l}),n.warn("New graph after copy node: (",s,")",m(l)),n.debug("Old graph after copy",m(e))}else n.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!f[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),n.debug(f);i=e.nodes(),n.warn("New list of nodes",i);for(let s of i){let c=e.node(s);n.warn(" Now next level",s,c),c.clusterNode&&q(c.graph,t+1)}},z=(e,t)=>{if(t.length===0)return[];let i=Object.assign(t);return t.forEach(r=>{let s=e.children(r),c=z(e,s);i=[...i,...c]}),i},nt=e=>z(e,e.children()),st=(e,t)=>{n.info("Creating subgraph rect for ",t.id,t);let i=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=i.insert("rect",":first-child"),s=E(N().flowchart.htmlLabels),c=i.insert("g").attr("class","cluster-label"),d=t.labelType==="markdown"?R(c,t.labelText,{style:t.labelStyle,useHtmlLabels:s}):c.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0)),l=d.getBBox();if(E(N().flowchart.htmlLabels)){let a=d.children[0],o=B(d);l=a.getBoundingClientRect(),o.attr("width",l.width),o.attr("height",l.height)}let h=0*t.padding,u=h/2,w=t.width<=l.width+h?l.width+h:t.width;t.width<=l.width+h?t.diff=(l.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,n.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-w/2).attr("y",t.y-t.height/2-u).attr("width",w).attr("height",t.height+h),s?c.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2)+")"):c.attr("transform","translate("+t.x+", "+(t.y-t.height/2)+")");let v=r.node().getBBox();return t.width=v.width,t.height=v.height,t.intersect=function(a){return y(t,a)},i},rt=(e,t)=>{let i=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=i.insert("rect",":first-child"),s=0*t.padding,c=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-c).attr("y",t.y-t.height/2-c).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");let d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(l){return y(t,l)},i},at=(e,t)=>{let i=e.insert("g").attr("class",t.classes).attr("id",t.id),r=i.insert("rect",":first-child"),s=i.insert("g").attr("class","cluster-label"),c=i.append("rect"),d=s.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0)),l=d.getBBox();if(E(N().flowchart.htmlLabels)){let a=d.children[0],o=B(d);l=a.getBoundingClientRect(),o.attr("width",l.width),o.attr("height",l.height)}l=d.getBBox();let h=0*t.padding,u=h/2,w=t.width<=l.width+t.padding?l.width+t.padding:t.width;t.width<=l.width+t.padding?t.diff=(l.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-w/2-u).attr("y",t.y-t.height/2-u).attr("width",w+h).attr("height",t.height+h),c.attr("class","inner").attr("x",t.x-w/2-u).attr("y",t.y-t.height/2-u+l.height-1).attr("width",w+h).attr("height",t.height+h-l.height-3),s.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2-t.padding/3+(E(N().flowchart.htmlLabels)?5:3))+")");let v=r.node().getBBox();return t.height=v.height,t.intersect=function(a){return y(t,a)},i},ct=(e,t)=>{let i=e.insert("g").attr("class",t.classes).attr("id",t.id),r=i.insert("rect",":first-child"),s=0*t.padding,c=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-c).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);let d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(l){return y(t,l)},i},ot={rect:st,roundedWithTitle:at,noteGroup:rt,divider:ct},K={},lt=(e,t)=>{n.trace("Inserting cluster");let i=t.shape||"rect";K[t.id]=ot[i](e,t)},ft=()=>{K={}},Q=async(e,t,i,r,s)=>{n.info("Graph in recursive render: XXX",m(t),s);let c=t.graph().rankdir;n.trace("Dir in recursive render - dir:",c);let d=e.insert("g").attr("class","root");t.nodes()?n.info("Recursive render XXX",t.nodes()):n.info("No nodes found for",t),t.edges().length>0&&n.trace("Recursive edges",t.edge(t.edges()[0]));let l=d.insert("g").attr("class","clusters"),h=d.insert("g").attr("class","edgePaths"),u=d.insert("g").attr("class","edgeLabels"),w=d.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(a){let o=t.node(a);if(s!==void 0){let b=JSON.parse(JSON.stringify(s.clusterData));n.info("Setting data for cluster XXX (",a,") ",b,s),t.setNode(s.id,b),t.parent(a)||(n.trace("Setting parent",a,s.id),t.setParent(a,s.id,b))}if(n.info("(Insert) Node XXX"+a+": "+JSON.stringify(t.node(a))),o&&o.clusterNode){n.info("Cluster identified",a,o.width,t.node(a));let b=await Q(w,o.graph,i,r,t.node(a)),C=b.elem;k(o,C),o.diff=b.diff||0,n.info("Node bounds (abc123)",a,o,o.width,o.x,o.y),G(C,o),n.warn("Recursive render complete ",C,o)}else t.children(a).length>0?(n.info("Cluster - the non recursive path XXX",a,o.id,o,t),n.info(p(o.id,t)),f[o.id]={id:p(o.id,t),node:o}):(n.info("Node - the non recursive path",a,o.id,o),await F(w,t.node(a),c))})),t.edges().forEach(function(a){let o=t.edge(a.v,a.w,a.name);n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(a)),n.info("Edge "+a.v+" -> "+a.w+": ",a," ",JSON.stringify(t.edge(a))),n.info("Fix",f,"ids:",a.v,a.w,"Translateing: ",f[a.v],f[a.w]),$(u,o)}),t.edges().forEach(function(a){n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(a))}),n.info("#############################################"),n.info("### Layout ###"),n.info("#############################################"),n.info(t),P(t),n.info("Graph after layout:",m(t));let v=0;return nt(t).forEach(function(a){let o=t.node(a);n.info("Position "+a+": "+JSON.stringify(t.node(a))),n.info("Position "+a+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?T(o):t.children(a).length>0?(lt(l,o),f[o.id].node=o):T(o)}),t.edges().forEach(function(a){let o=t.edge(a);n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(o),o);let b=M(h,a,o,f,i,t,r);H(o,b)}),t.nodes().forEach(function(a){let o=t.node(a);n.info(a,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:d,diff:v}},yt=async(e,t,i,r,s)=>{_(e,i,r,s),U(),A(),ft(),tt(),n.warn("Graph at first:",JSON.stringify(m(t))),it(t),n.warn("Graph after:",JSON.stringify(m(t))),await Q(e,t,r,s)};export{yt as a}; -//# sourceMappingURL=chunk-VHIEHVUL.min.js.map +import{a as _,b as O,d as k,e as y,f as F,g as G,h as U,i as T,k as A,l as $,m as H,n as M}from"./chunk-3RELVOUY.min.js";import{b as R}from"./chunk-DALFUHAB.min.js";import{a as L,d as D,f as x,j as J,k as P}from"./chunk-EKFGDCJ4.min.js";import{Ga as n,Ja as E,h as B,jb as N}from"./chunk-YICCS3KT.min.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Y(e),edges:Z(e)};return x(e.graph())||(t.value=L(e.graph())),t}function Y(e){return D(e.nodes(),function(t){var i=e.node(t),r=e.parent(t),s={v:t};return x(i)||(s.value=i),x(r)||(s.parent=r),s})}function Z(e){return D(e.edges(),function(t){var i=e.edge(t),r={v:t.v,w:t.w};return x(t.name)||(r.name=t.name),x(i)||(r.value=i),r})}var f={},g={},V={},tt=()=>{g={},V={},f={}},S=(e,t)=>(n.trace("In isDecendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),et=(e,t)=>(n.info("Decendants of ",t," is ",g[t]),n.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||S(e.v,t)||S(e.w,t)||g[t].includes(e.w):(n.debug("Tilt, ",t,",not in decendants"),!1)),j=(e,t,i,r)=>{n.warn("Copying children of ",e,"root",r,"data",t.node(e),r);let s=t.children(e)||[];e!==r&&s.push(e),n.warn("Copying (nodes) clusterId",e,"nodes",s),s.forEach(c=>{if(t.children(c).length>0)j(c,t,i,r);else{let d=t.node(c);n.info("cp ",c," to ",r," with parent ",e),i.setNode(c,d),r!==t.parent(c)&&(n.warn("Setting parent",c,t.parent(c)),i.setParent(c,t.parent(c))),e!==r&&c!==e?(n.debug("Setting parent",c,e),i.setParent(c,e)):(n.info("In copy ",e,"root",r,"data",t.node(e),r),n.debug("Not Setting parent for node=",c,"cluster!==rootId",e!==r,"node!==clusterId",c!==e));let l=t.edges(c);n.debug("Copying Edges",l),l.forEach(h=>{n.info("Edge",h);let u=t.edge(h.v,h.w,h.name);n.info("Edge data",u,r);try{et(h,r)?(n.info("Copying as ",h.v,h.w,u,h.name),i.setEdge(h.v,h.w,u,h.name),n.info("newGraph edges ",i.edges(),i.edge(i.edges()[0]))):n.info("Skipping copy of edge ",h.v,"-->",h.w," rootId: ",r," clusterId:",e)}catch(w){n.error(w)}})}n.debug("Removing node",c),t.removeNode(c)})},W=(e,t)=>{let i=t.children(e),r=[...i];for(let s of i)V[s]=e,r=[...r,...W(s,t)];return r},p=(e,t)=>{n.trace("Searching",e);let i=t.children(e);if(n.trace("Searching children of id ",e,i),i.length<1)return n.trace("This is a valid node",e),e;for(let r of i){let s=p(r,t);if(s)return n.trace("Found replacement for",e," => ",s),s}},X=e=>!f[e]||!f[e].externalConnections?e:f[e]?f[e].id:e,it=(e,t)=>{if(!e||t>10){n.debug("Opting out, no graph ");return}else n.debug("Opting in, graph ");e.nodes().forEach(function(i){e.children(i).length>0&&(n.warn("Cluster identified",i," Replacement id in edges: ",p(i,e)),g[i]=W(i,e),f[i]={id:p(i,e),clusterData:e.node(i)})}),e.nodes().forEach(function(i){let r=e.children(i),s=e.edges();r.length>0?(n.debug("Cluster identified",i,g),s.forEach(c=>{if(c.v!==i&&c.w!==i){let d=S(c.v,i),l=S(c.w,i);d^l&&(n.warn("Edge: ",c," leaves cluster ",i),n.warn("Decendants of XXX ",i,": ",g[i]),f[i].externalConnections=!0)}})):n.debug("Not a cluster ",i,g)}),e.edges().forEach(function(i){let r=e.edge(i);n.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(i)),n.warn("Edge "+i.v+" -> "+i.w+": "+JSON.stringify(e.edge(i)));let s=i.v,c=i.w;if(n.warn("Fix XXX",f,"ids:",i.v,i.w,"Translating: ",f[i.v]," --- ",f[i.w]),f[i.v]&&f[i.w]&&f[i.v]===f[i.w]){n.warn("Fixing and trixing link to self - removing XXX",i.v,i.w,i.name),n.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=X(i.v),c=X(i.w),e.removeEdge(i.v,i.w,i.name);let d=i.w+"---"+i.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});let l=structuredClone(r),h=structuredClone(r);l.label="",l.arrowTypeEnd="none",h.label="",l.fromCluster=i.v,h.toCluster=i.v,e.setEdge(s,d,l,i.name+"-cyclic-special"),e.setEdge(d,c,h,i.name+"-cyclic-special")}else(f[i.v]||f[i.w])&&(n.warn("Fixing and trixing - removing XXX",i.v,i.w,i.name),s=X(i.v),c=X(i.w),e.removeEdge(i.v,i.w,i.name),s!==i.v&&(r.fromCluster=i.v),c!==i.w&&(r.toCluster=i.w),n.warn("Fix Replacing with XXX",s,c,i.name),e.setEdge(s,c,r,i.name))}),n.warn("Adjusted Graph",m(e)),q(e,0),n.trace(f)},q=(e,t)=>{if(n.warn("extractor - ",t,m(e),e.children("D")),t>10){n.error("Bailing out");return}let i=e.nodes(),r=!1;for(let s of i){let c=e.children(s);r=r||c.length>0}if(!r){n.debug("Done, no node has children",e.nodes());return}n.debug("Nodes = ",i,t);for(let s of i)if(n.debug("Extracting node",s,f,f[s]&&!f[s].externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",t),!f[s])n.debug("Not a cluster",s,t);else if(!f[s].externalConnections&&e.children(s)&&e.children(s).length>0){n.warn("Cluster without external connections, without a parent and with children",s,t);let d=e.graph().rankdir==="TB"?"LR":"TB";f[s]&&f[s].clusterData&&f[s].clusterData.dir&&(d=f[s].clusterData.dir,n.warn("Fixing dir",f[s].clusterData.dir,d));let l=new J({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});n.warn("Old graph before copy",m(e)),j(s,e,l,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:f[s].clusterData,labelText:f[s].labelText,graph:l}),n.warn("New graph after copy node: (",s,")",m(l)),n.debug("Old graph after copy",m(e))}else n.warn("Cluster ** ",s," **not meeting the criteria !externalConnections:",!f[s].externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),t),n.debug(f);i=e.nodes(),n.warn("New list of nodes",i);for(let s of i){let c=e.node(s);n.warn(" Now next level",s,c),c.clusterNode&&q(c.graph,t+1)}},z=(e,t)=>{if(t.length===0)return[];let i=Object.assign(t);return t.forEach(r=>{let s=e.children(r),c=z(e,s);i=[...i,...c]}),i},nt=e=>z(e,e.children()),st=(e,t)=>{n.info("Creating subgraph rect for ",t.id,t);let i=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),r=i.insert("rect",":first-child"),s=E(N().flowchart.htmlLabels),c=i.insert("g").attr("class","cluster-label"),d=t.labelType==="markdown"?R(c,t.labelText,{style:t.labelStyle,useHtmlLabels:s}):c.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0)),l=d.getBBox();if(E(N().flowchart.htmlLabels)){let a=d.children[0],o=B(d);l=a.getBoundingClientRect(),o.attr("width",l.width),o.attr("height",l.height)}let h=0*t.padding,u=h/2,w=t.width<=l.width+h?l.width+h:t.width;t.width<=l.width+h?t.diff=(l.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,n.trace("Data ",t,JSON.stringify(t)),r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-w/2).attr("y",t.y-t.height/2-u).attr("width",w).attr("height",t.height+h),s?c.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2)+")"):c.attr("transform","translate("+t.x+", "+(t.y-t.height/2)+")");let v=r.node().getBBox();return t.width=v.width,t.height=v.height,t.intersect=function(a){return y(t,a)},i},rt=(e,t)=>{let i=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=i.insert("rect",":first-child"),s=0*t.padding,c=s/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-c).attr("y",t.y-t.height/2-c).attr("width",t.width+s).attr("height",t.height+s).attr("fill","none");let d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(l){return y(t,l)},i},at=(e,t)=>{let i=e.insert("g").attr("class",t.classes).attr("id",t.id),r=i.insert("rect",":first-child"),s=i.insert("g").attr("class","cluster-label"),c=i.append("rect"),d=s.node().appendChild(O(t.labelText,t.labelStyle,void 0,!0)),l=d.getBBox();if(E(N().flowchart.htmlLabels)){let a=d.children[0],o=B(d);l=a.getBoundingClientRect(),o.attr("width",l.width),o.attr("height",l.height)}l=d.getBBox();let h=0*t.padding,u=h/2,w=t.width<=l.width+t.padding?l.width+t.padding:t.width;t.width<=l.width+t.padding?t.diff=(l.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,r.attr("class","outer").attr("x",t.x-w/2-u).attr("y",t.y-t.height/2-u).attr("width",w+h).attr("height",t.height+h),c.attr("class","inner").attr("x",t.x-w/2-u).attr("y",t.y-t.height/2-u+l.height-1).attr("width",w+h).attr("height",t.height+h-l.height-3),s.attr("transform","translate("+(t.x-l.width/2)+", "+(t.y-t.height/2-t.padding/3+(E(N().flowchart.htmlLabels)?5:3))+")");let v=r.node().getBBox();return t.height=v.height,t.intersect=function(a){return y(t,a)},i},ct=(e,t)=>{let i=e.insert("g").attr("class",t.classes).attr("id",t.id),r=i.insert("rect",":first-child"),s=0*t.padding,c=s/2;r.attr("class","divider").attr("x",t.x-t.width/2-c).attr("y",t.y-t.height/2).attr("width",t.width+s).attr("height",t.height+s);let d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(l){return y(t,l)},i},ot={rect:st,roundedWithTitle:at,noteGroup:rt,divider:ct},K={},lt=(e,t)=>{n.trace("Inserting cluster");let i=t.shape||"rect";K[t.id]=ot[i](e,t)},ft=()=>{K={}},Q=async(e,t,i,r,s)=>{n.info("Graph in recursive render: XXX",m(t),s);let c=t.graph().rankdir;n.trace("Dir in recursive render - dir:",c);let d=e.insert("g").attr("class","root");t.nodes()?n.info("Recursive render XXX",t.nodes()):n.info("No nodes found for",t),t.edges().length>0&&n.trace("Recursive edges",t.edge(t.edges()[0]));let l=d.insert("g").attr("class","clusters"),h=d.insert("g").attr("class","edgePaths"),u=d.insert("g").attr("class","edgeLabels"),w=d.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(a){let o=t.node(a);if(s!==void 0){let b=JSON.parse(JSON.stringify(s.clusterData));n.info("Setting data for cluster XXX (",a,") ",b,s),t.setNode(s.id,b),t.parent(a)||(n.trace("Setting parent",a,s.id),t.setParent(a,s.id,b))}if(n.info("(Insert) Node XXX"+a+": "+JSON.stringify(t.node(a))),o&&o.clusterNode){n.info("Cluster identified",a,o.width,t.node(a));let b=await Q(w,o.graph,i,r,t.node(a)),C=b.elem;k(o,C),o.diff=b.diff||0,n.info("Node bounds (abc123)",a,o,o.width,o.x,o.y),G(C,o),n.warn("Recursive render complete ",C,o)}else t.children(a).length>0?(n.info("Cluster - the non recursive path XXX",a,o.id,o,t),n.info(p(o.id,t)),f[o.id]={id:p(o.id,t),node:o}):(n.info("Node - the non recursive path",a,o.id,o),await F(w,t.node(a),c))})),t.edges().forEach(function(a){let o=t.edge(a.v,a.w,a.name);n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(a)),n.info("Edge "+a.v+" -> "+a.w+": ",a," ",JSON.stringify(t.edge(a))),n.info("Fix",f,"ids:",a.v,a.w,"Translateing: ",f[a.v],f[a.w]),$(u,o)}),t.edges().forEach(function(a){n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(a))}),n.info("#############################################"),n.info("### Layout ###"),n.info("#############################################"),n.info(t),P(t),n.info("Graph after layout:",m(t));let v=0;return nt(t).forEach(function(a){let o=t.node(a);n.info("Position "+a+": "+JSON.stringify(t.node(a))),n.info("Position "+a+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?T(o):t.children(a).length>0?(lt(l,o),f[o.id].node=o):T(o)}),t.edges().forEach(function(a){let o=t.edge(a);n.info("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(o),o);let b=M(h,a,o,f,i,t,r);H(o,b)}),t.nodes().forEach(function(a){let o=t.node(a);n.info(a,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:d,diff:v}},yt=async(e,t,i,r,s)=>{_(e,i,r,s),U(),A(),ft(),tt(),n.warn("Graph at first:",JSON.stringify(m(t))),it(t),n.warn("Graph after:",JSON.stringify(m(t))),await Q(e,t,r,s)};export{yt as a}; +//# sourceMappingURL=chunk-YAMJ4ASO.min.js.map diff --git a/docs/public/chunk-VHIEHVUL.min.js.map b/docs/public/chunk-YAMJ4ASO.min.js.map similarity index 100% rename from docs/public/chunk-VHIEHVUL.min.js.map rename to docs/public/chunk-YAMJ4ASO.min.js.map diff --git a/docs/public/chunk-JUXSCBYR.min.js b/docs/public/chunk-YICCS3KT.min.js similarity index 72% rename from docs/public/chunk-JUXSCBYR.min.js rename to docs/public/chunk-YICCS3KT.min.js index ea33b710..cb661f5c 100644 --- a/docs/public/chunk-JUXSCBYR.min.js +++ b/docs/public/chunk-YICCS3KT.min.js @@ -4,9 +4,9 @@ import{b as za,d as qa}from"./chunk-P42HNYSU.min.js";var Tc=za((Wa,Ua)=>{(functi `)})}i[0]=i[0].replace(/^\r?\n/,"");var a=i[0];return e.forEach(function(s,l){var c=a.match(/(?:^|\n)( *)$/),h=c?c[1]:"",f=s;typeof s=="string"&&s.includes(` `)&&(f=String(s).split(` `).map(function(u,p){return p===0?u:""+h+u}).join(` -`)),a+=f+i[l+1]}),a}function kc(t,e){let r;if(e===void 0)for(let i of t)i!=null&&(r=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r=o)&&(r=o)}return r}function Sc(t,e){let r;if(e===void 0)for(let i of t)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function nr(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Ha(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function ar(t){let e,r,i;t.length!==2?(e=nr,r=(s,l)=>nr(t(s),l),i=(s,l)=>t(s)-l):(e=t===nr||t===Ha?t:Jg,r=t,i=t);function o(s,l,c=0,h=s.length){if(c>>1;r(s[f],l)<0?c=f+1:h=f}while(c>>1;r(s[f],l)<=0?c=f+1:h=f}while(cc&&i(s[f-1],l)>-i(s[f],l)?f-1:f}return{left:o,center:a,right:n}}function Jg(){return 0}function Ya(t){return t===null?NaN:+t}var wc=ar(nr),Bc=wc.right,t0=wc.left,e0=ar(Ya).center,ja=Bc;var zr=class extends Map{constructor(e,r=o0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[i,o]of e)this.set(i,o)}get(e){return super.get(Ac(this,e))}has(e){return super.has(Ac(this,e))}set(e,r){return super.set(r0(this,e),r)}delete(e){return super.delete(i0(this,e))}};function Ac({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):r}function r0({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):(t.set(i,r),r)}function i0({_intern:t,_key:e},r){let i=e(r);return t.has(i)&&(r=t.get(i),t.delete(i)),r}function o0(t){return t!==null&&typeof t=="object"?t.valueOf():t}var n0=Math.sqrt(50),a0=Math.sqrt(10),s0=Math.sqrt(2);function Ao(t,e,r){let i=(e-t)/Math.max(0,r),o=Math.floor(Math.log10(i)),n=i/Math.pow(10,o),a=n>=n0?10:n>=a0?5:n>=s0?2:1,s,l,c;return o<0?(c=Math.pow(10,-o)/a,s=Math.round(t*c),l=Math.round(e*c),s/ce&&--l,c=-c):(c=Math.pow(10,o)*a,s=Math.round(t/c),l=Math.round(e/c),s*ce&&--l),l0))return[];if(t===e)return[t];let i=e=o))return[];let s=n-o+1,l=new Array(s);if(i)if(a<0)for(let c=0;c+t(e)}function h0(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function f0(){return!this.__axis}function Mc(t,e){var r=[],i=null,o=null,n=6,a=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=t===Eo||t===Mo?-1:1,h=t===Mo||t===Ga?"x":"y",f=t===Eo||t===Va?l0:c0;function u(p){var x=i??(e.ticks?e.ticks.apply(e,r):e.domain()),_=o??(e.tickFormat?e.tickFormat.apply(e,r):Fc),b=Math.max(n,0)+s,w=e.range(),v=+w[0]+l,L=+w[w.length-1]+l,E=(e.bandwidth?h0:u0)(e.copy(),l),I=p.selection?p.selection():p,A=I.selectAll(".domain").data([null]),y=I.selectAll(".tick").data(x,e).order(),$=y.exit(),et=y.enter().append("g").attr("class","tick"),rt=y.select("line"),T=y.select("text");A=A.merge(A.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),y=y.merge(et),rt=rt.merge(et.append("line").attr("stroke","currentColor").attr(h+"2",c*n)),T=T.merge(et.append("text").attr("fill","currentColor").attr(h,c*b).attr("dy",t===Eo?"0em":t===Va?"0.71em":"0.32em")),p!==I&&(A=A.transition(p),y=y.transition(p),rt=rt.transition(p),T=T.transition(p),$=$.transition(p).attr("opacity",Lc).attr("transform",function(C){return isFinite(C=E(C))?f(C+l):this.getAttribute("transform")}),et.attr("opacity",Lc).attr("transform",function(C){var g=this.parentNode.__axis;return f((g&&isFinite(g=g(C))?g:E(C))+l)})),$.remove(),A.attr("d",t===Mo||t===Ga?a?"M"+c*a+","+v+"H"+l+"V"+L+"H"+c*a:"M"+l+","+v+"V"+L:a?"M"+v+","+c*a+"V"+l+"H"+L+"V"+c*a:"M"+v+","+l+"H"+L),y.attr("opacity",1).attr("transform",function(C){return f(E(C)+l)}),rt.attr(h+"2",c*n),T.attr(h,c*b).text(_),I.filter(f0).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ga?"start":t===Mo?"end":"middle"),I.each(function(){this.__axis=E})}return u.scale=function(p){return arguments.length?(e=p,u):e},u.ticks=function(){return r=Array.from(arguments),u},u.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),u):r.slice()},u.tickValues=function(p){return arguments.length?(i=p==null?null:Array.from(p),u):i&&i.slice()},u.tickFormat=function(p){return arguments.length?(o=p,u):o},u.tickSize=function(p){return arguments.length?(n=a=+p,u):n},u.tickSizeInner=function(p){return arguments.length?(n=+p,u):n},u.tickSizeOuter=function(p){return arguments.length?(a=+p,u):a},u.tickPadding=function(p){return arguments.length?(s=+p,u):s},u.offset=function(p){return arguments.length?(l=+p,u):l},u}function p0(t){return Mc(Eo,t)}function d0(t){return Mc(Va,t)}function m0(){}function sr(t){return t==null?m0:function(){return this.querySelector(t)}}function Ec(t){typeof t!="function"&&(t=sr(t));for(var e=this._groups,r=e.length,i=new Array(r),o=0;o=L&&(L=v+1);!(I=b[L])&&++L=0;)(a=i[o])&&(n&&a.compareDocumentPosition(n)^4&&n.parentNode.insertBefore(a,n),n=a);return this}function Hc(t){t||(t=A0);function e(f,u){return f&&u?t(f.__data__,u.__data__):!f-!u}for(var r=this._groups,i=r.length,o=new Array(i),n=0;ne?1:t>=e?0:NaN}function Yc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function jc(){return Array.from(this)}function Gc(){for(var t=this._groups,e=0,r=t.length;e=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Xa.hasOwnProperty(e)?{space:Xa[e],local:t}:t}function F0(t){return function(){this.removeAttribute(t)}}function L0(t){return function(){this.removeAttributeNS(t.space,t.local)}}function M0(t,e){return function(){this.setAttribute(t,e)}}function E0(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function O0(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function I0(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function Zc(t,e){var r=be(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((e==null?r.local?L0:F0:typeof e=="function"?r.local?I0:O0:r.local?E0:M0)(r,e))}function No(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function D0(t){return function(){this.style.removeProperty(t)}}function N0(t,e,r){return function(){this.style.setProperty(t,e,r)}}function P0(t,e,r){return function(){var i=e.apply(this,arguments);i==null?this.style.removeProperty(t):this.style.setProperty(t,i,r)}}function Qc(t,e,r){return arguments.length>1?this.each((e==null?D0:typeof e=="function"?P0:N0)(t,e,r??"")):De(this.node(),t)}function De(t,e){return t.style.getPropertyValue(e)||No(t).getComputedStyle(t,null).getPropertyValue(e)}function R0(t){return function(){delete this[t]}}function $0(t,e){return function(){this[t]=e}}function z0(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Jc(t,e){return arguments.length>1?this.each((e==null?R0:typeof e=="function"?z0:$0)(t,e)):this.node()[t]}function tu(t){return t.trim().split(/^|\s+/)}function Ka(t){return t.classList||new eu(t)}function eu(t){this._node=t,this._names=tu(t.getAttribute("class")||"")}eu.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function ru(t,e){for(var r=Ka(t),i=-1,o=e.length;++i=0&&(r=e.slice(i+1),e=e.slice(0,i)),{type:e,name:r}})}function ax(t){return function(){var e=this.__on;if(e){for(var r=0,i=-1,o=e.length,n;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Ro(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Ro(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=px.exec(t))?new Lt(e[1],e[2],e[3],1):(e=dx.exec(t))?new Lt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=mx.exec(t))?Ro(e[1],e[2],e[3],e[4]):(e=gx.exec(t))?Ro(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=xx.exec(t))?Su(e[1],e[2]/100,e[3]/100,1):(e=yx.exec(t))?Su(e[1],e[2]/100,e[3]/100,e[4]):_u.hasOwnProperty(t)?Tu(_u[t]):t==="transparent"?new Lt(NaN,NaN,NaN,0):null}function Tu(t){return new Lt(t>>16&255,t>>8&255,t&255,1)}function Ro(t,e,r,i){return i<=0&&(t=e=r=NaN),new Lt(t,e,r,i)}function Qa(t){return t instanceof Ne||(t=re(t)),t?(t=t.rgb(),new Lt(t.r,t.g,t.b,t.opacity)):new Lt}function Hr(t,e,r,i){return arguments.length===1?Qa(t):new Lt(t,e,r,i??1)}function Lt(t,e,r,i){this.r=+t,this.g=+e,this.b=+r,this.opacity=+i}lr(Lt,Hr,Wr(Ne,{brighter(t){return t=t==null?zo:Math.pow(zo,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ii:Math.pow(Ii,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Lt(ur(this.r),ur(this.g),ur(this.b),qo(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vu,formatHex:vu,formatHex8:bx,formatRgb:ku,toString:ku}));function vu(){return`#${cr(this.r)}${cr(this.g)}${cr(this.b)}`}function bx(){return`#${cr(this.r)}${cr(this.g)}${cr(this.b)}${cr((isNaN(this.opacity)?1:this.opacity)*255)}`}function ku(){let t=qo(this.opacity);return`${t===1?"rgb(":"rgba("}${ur(this.r)}, ${ur(this.g)}, ${ur(this.b)}${t===1?")":`, ${t})`}`}function qo(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ur(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function cr(t){return t=ur(t),(t<16?"0":"")+t.toString(16)}function Su(t,e,r,i){return i<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new ee(t,e,r,i)}function Bu(t){if(t instanceof ee)return new ee(t.h,t.s,t.l,t.opacity);if(t instanceof Ne||(t=re(t)),!t)return new ee;if(t instanceof ee)return t;t=t.rgb();var e=t.r/255,r=t.g/255,i=t.b/255,o=Math.min(e,r,i),n=Math.max(e,r,i),a=NaN,s=n-o,l=(n+o)/2;return s?(e===n?a=(r-i)/s+(r0&&l<1?0:a,new ee(a,s,l,t.opacity)}function Au(t,e,r,i){return arguments.length===1?Bu(t):new ee(t,e,r,i??1)}function ee(t,e,r,i){this.h=+t,this.s=+e,this.l=+r,this.opacity=+i}lr(ee,Au,Wr(Ne,{brighter(t){return t=t==null?zo:Math.pow(zo,t),new ee(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ii:Math.pow(Ii,t),new ee(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*e,o=2*r-i;return new Lt(Za(t>=240?t-240:t+120,o,i),Za(t,o,i),Za(t<120?t+240:t-120,o,i),this.opacity)},clamp(){return new ee(wu(this.h),$o(this.s),$o(this.l),qo(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=qo(this.opacity);return`${t===1?"hsl(":"hsla("}${wu(this.h)}, ${$o(this.s)*100}%, ${$o(this.l)*100}%${t===1?")":`, ${t})`}`}}));function wu(t){return t=(t||0)%360,t<0?t+360:t}function $o(t){return Math.max(0,Math.min(1,t||0))}function Za(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var Fu=Math.PI/180,Lu=180/Math.PI;var Wo=18,Mu=.96422,Eu=1,Ou=.82521,Iu=4/29,Yr=6/29,Du=3*Yr*Yr,Tx=Yr*Yr*Yr;function Nu(t){if(t instanceof he)return new he(t.l,t.a,t.b,t.opacity);if(t instanceof ve)return Pu(t);t instanceof Lt||(t=Qa(t));var e=rs(t.r),r=rs(t.g),i=rs(t.b),o=Ja((.2225045*e+.7168786*r+.0606169*i)/Eu),n,a;return e===r&&r===i?n=a=o:(n=Ja((.4360747*e+.3850649*r+.1430804*i)/Mu),a=Ja((.0139322*e+.0971045*r+.7141733*i)/Ou)),new he(116*o-16,500*(n-o),200*(o-a),t.opacity)}function is(t,e,r,i){return arguments.length===1?Nu(t):new he(t,e,r,i??1)}function he(t,e,r,i){this.l=+t,this.a=+e,this.b=+r,this.opacity=+i}lr(he,is,Wr(Ne,{brighter(t){return new he(this.l+Wo*(t??1),this.a,this.b,this.opacity)},darker(t){return new he(this.l-Wo*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=Mu*ts(e),t=Eu*ts(t),r=Ou*ts(r),new Lt(es(3.1338561*e-1.6168667*t-.4906146*r),es(-.9787684*e+1.9161415*t+.033454*r),es(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function Ja(t){return t>Tx?Math.pow(t,1/3):t/Du+Iu}function ts(t){return t>Yr?t*t*t:Du*(t-Iu)}function es(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function rs(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function vx(t){if(t instanceof ve)return new ve(t.h,t.c,t.l,t.opacity);if(t instanceof he||(t=Nu(t)),t.a===0&&t.b===0)return new ve(NaN,0()=>t;function Ru(t,e){return function(r){return t+r*e}}function kx(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(i){return Math.pow(t+i*e,r)}}function $u(t,e){var r=e-t;return r?Ru(t,r>180||r<-180?r-360*Math.round(r/360):r):jr(isNaN(t)?e:t)}function zu(t){return(t=+t)==1?ke:function(e,r){return r-e?kx(e,r,t):jr(isNaN(e)?r:e)}}function ke(t,e){var r=e-t;return r?Ru(t,r):jr(isNaN(t)?e:t)}function qu(t){return function(e,r){var i=t((e=Ni(e)).h,(r=Ni(r)).h),o=ke(e.c,r.c),n=ke(e.l,r.l),a=ke(e.opacity,r.opacity);return function(s){return e.h=i(s),e.c=o(s),e.l=n(s),e.opacity=a(s),e+""}}}var Sx=qu($u),wx=qu(ke);function os(t,e,r,i,o){var n=t*t,a=n*t;return((1-3*t+3*n-a)*e+(4-6*n+3*a)*r+(1+3*t+3*n-3*a)*i+a*o)/6}function Wu(t){var e=t.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),o=t[i],n=t[i+1],a=i>0?t[i-1]:2*o-n,s=ir&&(n=e.slice(r,n),s[a]?s[a]+=n:s[++a]=n),(i=i[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,l.push({i:a,x:Mt(i,o)})),r=ns.lastIndex;return r180?h+=360:h-c>180&&(c+=360),u.push({i:f.push(o(f)+"rotate(",null,i)-2,x:Mt(c,h)})):h&&f.push(o(f)+"rotate("+h+i)}function s(c,h,f,u){c!==h?u.push({i:f.push(o(f)+"skewX(",null,i)-2,x:Mt(c,h)}):h&&f.push(o(f)+"skewX("+h+i)}function l(c,h,f,u,p,x){if(c!==f||h!==u){var _=p.push(o(p)+"scale(",null,",",null,")");x.push({i:_-4,x:Mt(c,f)},{i:_-2,x:Mt(h,u)})}else(f!==1||u!==1)&&p.push(o(p)+"scale("+f+","+u+")")}return function(c,h){var f=[],u=[];return c=t(c),h=t(h),n(c.translateX,c.translateY,h.translateX,h.translateY,f,u),a(c.rotate,h.rotate,f,u),s(c.skewX,h.skewX,f,u),l(c.scaleX,c.scaleY,h.scaleX,h.scaleY,f,u),c=h=null,function(p){for(var x=-1,_=u.length,b;++x<_;)f[(b=u[x]).i]=b.x(p);return f.join("")}}}var cs=Ju(Zu,"px, ","px)","deg)"),us=Ju(Qu,", ",")",")");function Pe(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var hs=Symbol("implicit");function Ri(){var t=new zr,e=[],r=[],i=hs;function o(n){let a=t.get(n);if(a===void 0){if(i!==hs)return i;t.set(n,a=e.push(n)-1)}return r[a%r.length]}return o.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new zr;for(let a of n)t.has(a)||t.set(a,e.push(a)-1);return o},o.range=function(n){return arguments.length?(r=Array.from(n),o):r.slice()},o.unknown=function(n){return arguments.length?(i=n,o):i},o.copy=function(){return Ri(e,r).unknown(i)},Pe.apply(o,arguments),o}function fs(){var t=Ri().unknown(void 0),e=t.domain,r=t.range,i=0,o=1,n,a,s=!1,l=0,c=0,h=.5;delete t.unknown;function f(){var u=e().length,p=oe&&(r=t,t=e,e=r),function(i){return Math.max(t,Math.min(e,i))}}function Ex(t,e,r){var i=t[0],o=t[1],n=e[0],a=e[1];return o2?Ox:Ex,l=c=null,f}function f(u){return u==null||isNaN(u=+u)?n:(l||(l=s(t.map(i),e,r)))(i(a(u)))}return f.invert=function(u){return a(o((c||(c=s(e,t.map(i),Mt)))(u)))},f.domain=function(u){return arguments.length?(t=Array.from(u,ds),h()):t.slice()},f.range=function(u){return arguments.length?(e=Array.from(u),h()):e.slice()},f.rangeRound=function(u){return e=Array.from(u),r=ss,h()},f.clamp=function(u){return arguments.length?(a=u?!0:Gr,h()):a!==Gr},f.interpolate=function(u){return arguments.length?(r=u,h()):r},f.unknown=function(u){return arguments.length?(n=u,f):n},function(u,p){return i=u,o=p,h()}}function $i(){return Ix()(Gr,Gr)}function eh(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pr(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,i=t.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+t.slice(r+1)]}function fe(t){return t=pr(Math.abs(t)),t?t[1]:NaN}function rh(t,e){return function(r,i){for(var o=r.length,n=[],a=0,s=t[0],l=0;o>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),n.push(r.substring(o-=s,o+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return n.reverse().join(e)}}function ih(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var Dx=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Re(t){if(!(e=Dx.exec(t)))throw new Error("invalid format: "+t);var e;return new jo({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Re.prototype=jo.prototype;function jo(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}jo.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function oh(t){t:for(var e=t.length,r=1,i=-1,o;r0&&(i=0);break}return i>0?t.slice(0,i)+t.slice(o+1):t}var gs;function nh(t,e){var r=pr(t,e);if(!r)return t+"";var i=r[0],o=r[1],n=o-(gs=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=i.length;return n===a?i:n>a?i+new Array(n-a+1).join("0"):n>0?i.slice(0,n)+"."+i.slice(n):"0."+new Array(1-n).join("0")+pr(t,Math.max(0,e+n-1))[0]}function xs(t,e){var r=pr(t,e);if(!r)return t+"";var i=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}var ys={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:eh,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>xs(t*100,e),r:xs,s:nh,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function _s(t){return t}var ah=Array.prototype.map,sh=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function lh(t){var e=t.grouping===void 0||t.thousands===void 0?_s:rh(ah.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",i=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",n=t.numerals===void 0?_s:ih(ah.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function c(f){f=Re(f);var u=f.fill,p=f.align,x=f.sign,_=f.symbol,b=f.zero,w=f.width,v=f.comma,L=f.precision,E=f.trim,I=f.type;I==="n"?(v=!0,I="g"):ys[I]||(L===void 0&&(L=12),E=!0,I="g"),(b||u==="0"&&p==="=")&&(b=!0,u="0",p="=");var A=_==="$"?r:_==="#"&&/[boxX]/.test(I)?"0"+I.toLowerCase():"",y=_==="$"?i:/[%p]/.test(I)?a:"",$=ys[I],et=/[defgprs%]/.test(I);L=L===void 0?6:/[gprs]/.test(I)?Math.max(1,Math.min(21,L)):Math.max(0,Math.min(20,L));function rt(T){var C=A,g=y,B,F,N;if(I==="c")g=$(T)+g,T="";else{T=+T;var R=T<0||1/T<0;if(T=isNaN(T)?l:$(Math.abs(T),L),E&&(T=oh(T)),R&&+T==0&&x!=="+"&&(R=!1),C=(R?x==="("?x:s:x==="-"||x==="("?"":x)+C,g=(I==="s"?sh[8+gs/3]:"")+g+(R&&x==="("?")":""),et){for(B=-1,F=T.length;++BN||N>57){g=(N===46?o+T.slice(B+1):T.slice(B))+g,T=T.slice(0,B);break}}}v&&!b&&(T=e(T,1/0));var j=C.length+T.length+g.length,G=j>1)+C+T+g+G.slice(j);break;default:T=G+C+T+g;break}return n(T)}return rt.toString=function(){return f+""},rt}function h(f,u){var p=c((f=Re(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(fe(u)/3)))*3,_=Math.pow(10,-x),b=sh[8+x/3];return function(w){return p(_*w)+b}}return{format:c,formatPrefix:h}}var Go,Vo,Xo;Cs({thousands:",",grouping:[3],currency:["$",""]});function Cs(t){return Go=lh(t),Vo=Go.format,Xo=Go.formatPrefix,Go}function bs(t){return Math.max(0,-fe(Math.abs(t)))}function Ts(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fe(e)/3)))*3-fe(Math.abs(t)))}function vs(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,fe(e)-fe(t))+1}function ks(t,e,r,i){var o=qr(t,e,r),n;switch(i=Re(i??",f"),i.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return i.precision==null&&!isNaN(n=Ts(o,a))&&(i.precision=n),Xo(i,a)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(n=vs(o,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=n-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(n=bs(o))&&(i.precision=n-(i.type==="%")*2);break}}return Vo(i)}function Nx(t){var e=t.domain;return t.ticks=function(r){var i=e();return Fo(i[0],i[i.length-1],r??10)},t.tickFormat=function(r,i){var o=e();return ks(o[0],o[o.length-1],r??10,i)},t.nice=function(r){r==null&&(r=10);var i=e(),o=0,n=i.length-1,a=i[o],s=i[n],l,c,h=10;for(s0;){if(c=Ai(a,s,r),c===l)return i[o]=a,i[n]=s,e(i);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return t},t}function Ss(){var t=$i();return t.copy=function(){return Yo(t,Ss())},Pe.apply(t,arguments),Nx(t)}var ws=new Date,Bs=new Date;function nt(t,e,r,i){function o(n){return t(n=arguments.length===0?new Date:new Date(+n)),n}return o.floor=n=>(t(n=new Date(+n)),n),o.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),o.round=n=>{let a=o(n),s=o.ceil(n);return n-a(e(n=new Date(+n),a==null?1:Math.floor(a)),n),o.range=(n,a,s)=>{let l=[];if(n=o.ceil(n),s=s==null?1:Math.floor(s),!(n0))return l;let c;do l.push(c=new Date(+n)),e(n,s),t(n);while(cnt(a=>{if(a>=a)for(;t(a),!n(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!n(a););else for(;--s>=0;)for(;e(a,1),!n(a););}),r&&(o.count=(n,a)=>(ws.setTime(+n),Bs.setTime(+a),t(ws),t(Bs),Math.floor(r(ws,Bs))),o.every=n=>(n=Math.floor(n),!isFinite(n)||!(n>0)?null:n>1?o.filter(i?a=>i(a)%n===0:a=>o.count(0,a)%n===0):o)),o}var dr=nt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);dr.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?nt(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):dr);var ch=dr.range;var pe=nt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),uh=pe.range;var Vr=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),Px=Vr.range,Ko=nt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),Rx=Ko.range;var Xr=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),$x=Xr.range,Zo=nt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),zx=Zo.range;var Se=nt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),qx=Se.range,qi=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),Wx=qi.range,Qo=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),Ux=Qo.range;function xr(t){return nt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var we=xr(0),Kr=xr(1),fh=xr(2),ph=xr(3),$e=xr(4),dh=xr(5),mh=xr(6),gh=we.range,Hx=Kr.range,Yx=fh.range,jx=ph.range,Gx=$e.range,Vx=dh.range,Xx=mh.range;function yr(t){return nt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var _r=yr(0),Zr=yr(1),xh=yr(2),yh=yr(3),ze=yr(4),_h=yr(5),Ch=yr(6),bh=_r.range,Kx=Zr.range,Zx=xh.range,Qx=yh.range,Jx=ze.range,ty=_h.range,ey=Ch.range;var Qr=nt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),ry=Qr.range,Jo=nt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),iy=Jo.range;var Vt=nt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Vt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});var oy=Vt.range,ie=nt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());ie.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});var ny=ie.range;function vh(t,e,r,i,o,n){let a=[[pe,1,1e3],[pe,5,5*1e3],[pe,15,15*1e3],[pe,30,30*1e3],[n,1,6e4],[n,5,5*6e4],[n,15,15*6e4],[n,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[i,1,864e5],[i,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function s(c,h,f){let u=hb).right(a,u);if(p===a.length)return t.every(qr(c/31536e6,h/31536e6,f));if(p===0)return dr.every(Math.max(qr(c,h,f),1));let[x,_]=a[u/a[p-1][2]53)return null;"w"in k||(k.w=1),"Z"in k?(it=Ms(Wi(k.y,0,1)),X=it.getUTCDay(),it=X>4||X===0?Zr.ceil(it):Zr(it),it=qi.offset(it,(k.V-1)*7),k.y=it.getUTCFullYear(),k.m=it.getUTCMonth(),k.d=it.getUTCDate()+(k.w+6)%7):(it=Ls(Wi(k.y,0,1)),X=it.getDay(),it=X>4||X===0?Kr.ceil(it):Kr(it),it=Se.offset(it,(k.V-1)*7),k.y=it.getFullYear(),k.m=it.getMonth(),k.d=it.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),X="Z"in k?Ms(Wi(k.y,0,1)).getUTCDay():Ls(Wi(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(X+5)%7:k.w+k.U*7-(X+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,Ms(k)):Ls(k)}}function $(O,V,K,k){for(var Ft=0,it=V.length,X=K.length,P,Q;Ft=X)return-1;if(P=V.charCodeAt(Ft++),P===37){if(P=V.charAt(Ft++),Q=I[P in kh?V.charAt(Ft++):P],!Q||(k=Q(O,K,k))<0)return-1}else if(P!=K.charCodeAt(k++))return-1}return k}function et(O,V,K){var k=c.exec(V.slice(K));return k?(O.p=h.get(k[0].toLowerCase()),K+k[0].length):-1}function rt(O,V,K){var k=p.exec(V.slice(K));return k?(O.w=x.get(k[0].toLowerCase()),K+k[0].length):-1}function T(O,V,K){var k=f.exec(V.slice(K));return k?(O.w=u.get(k[0].toLowerCase()),K+k[0].length):-1}function C(O,V,K){var k=w.exec(V.slice(K));return k?(O.m=v.get(k[0].toLowerCase()),K+k[0].length):-1}function g(O,V,K){var k=_.exec(V.slice(K));return k?(O.m=b.get(k[0].toLowerCase()),K+k[0].length):-1}function B(O,V,K){return $(O,e,V,K)}function F(O,V,K){return $(O,r,V,K)}function N(O,V,K){return $(O,i,V,K)}function R(O){return a[O.getDay()]}function j(O){return n[O.getDay()]}function G(O){return l[O.getMonth()]}function Z(O){return s[O.getMonth()]}function at(O){return o[+(O.getHours()>=12)]}function Bt(O){return 1+~~(O.getMonth()/3)}function At(O){return a[O.getUTCDay()]}function Gt(O){return n[O.getUTCDay()]}function gt(O){return l[O.getUTCMonth()]}function Pt(O){return s[O.getUTCMonth()]}function ht(O){return o[+(O.getUTCHours()>=12)]}function It(O){return 1+~~(O.getUTCMonth()/3)}return{format:function(O){var V=A(O+="",L);return V.toString=function(){return O},V},parse:function(O){var V=y(O+="",!1);return V.toString=function(){return O},V},utcFormat:function(O){var V=A(O+="",E);return V.toString=function(){return O},V},utcParse:function(O){var V=y(O+="",!0);return V.toString=function(){return O},V}}}var kh={"-":"",_:" ",0:"0"},St=/^\s*\d+/,cy=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function tt(t,e,r){var i=t<0?"-":"",o=(i?-t:t)+"",n=o.length;return i+(n[e.toLowerCase(),r]))}function fy(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.w=+i[0],r+i[0].length):-1}function py(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.u=+i[0],r+i[0].length):-1}function dy(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.U=+i[0],r+i[0].length):-1}function my(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.V=+i[0],r+i[0].length):-1}function gy(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.W=+i[0],r+i[0].length):-1}function Sh(t,e,r){var i=St.exec(e.slice(r,r+4));return i?(t.y=+i[0],r+i[0].length):-1}function wh(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function xy(t,e,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function yy(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.q=i[0]*3-3,r+i[0].length):-1}function _y(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.m=i[0]-1,r+i[0].length):-1}function Bh(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.d=+i[0],r+i[0].length):-1}function Cy(t,e,r){var i=St.exec(e.slice(r,r+3));return i?(t.m=0,t.d=+i[0],r+i[0].length):-1}function Ah(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.H=+i[0],r+i[0].length):-1}function by(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.M=+i[0],r+i[0].length):-1}function Ty(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.S=+i[0],r+i[0].length):-1}function vy(t,e,r){var i=St.exec(e.slice(r,r+3));return i?(t.L=+i[0],r+i[0].length):-1}function ky(t,e,r){var i=St.exec(e.slice(r,r+6));return i?(t.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function Sy(t,e,r){var i=cy.exec(e.slice(r,r+1));return i?r+i[0].length:-1}function wy(t,e,r){var i=St.exec(e.slice(r));return i?(t.Q=+i[0],r+i[0].length):-1}function By(t,e,r){var i=St.exec(e.slice(r));return i?(t.s=+i[0],r+i[0].length):-1}function Fh(t,e){return tt(t.getDate(),e,2)}function Ay(t,e){return tt(t.getHours(),e,2)}function Fy(t,e){return tt(t.getHours()%12||12,e,2)}function Ly(t,e){return tt(1+Se.count(Vt(t),t),e,3)}function Ih(t,e){return tt(t.getMilliseconds(),e,3)}function My(t,e){return Ih(t,e)+"000"}function Ey(t,e){return tt(t.getMonth()+1,e,2)}function Oy(t,e){return tt(t.getMinutes(),e,2)}function Iy(t,e){return tt(t.getSeconds(),e,2)}function Dy(t){var e=t.getDay();return e===0?7:e}function Ny(t,e){return tt(we.count(Vt(t)-1,t),e,2)}function Dh(t){var e=t.getDay();return e>=4||e===0?$e(t):$e.ceil(t)}function Py(t,e){return t=Dh(t),tt($e.count(Vt(t),t)+(Vt(t).getDay()===4),e,2)}function Ry(t){return t.getDay()}function $y(t,e){return tt(Kr.count(Vt(t)-1,t),e,2)}function zy(t,e){return tt(t.getFullYear()%100,e,2)}function qy(t,e){return t=Dh(t),tt(t.getFullYear()%100,e,2)}function Wy(t,e){return tt(t.getFullYear()%1e4,e,4)}function Uy(t,e){var r=t.getDay();return t=r>=4||r===0?$e(t):$e.ceil(t),tt(t.getFullYear()%1e4,e,4)}function Hy(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+tt(e/60|0,"0",2)+tt(e%60,"0",2)}function Lh(t,e){return tt(t.getUTCDate(),e,2)}function Yy(t,e){return tt(t.getUTCHours(),e,2)}function jy(t,e){return tt(t.getUTCHours()%12||12,e,2)}function Gy(t,e){return tt(1+qi.count(ie(t),t),e,3)}function Nh(t,e){return tt(t.getUTCMilliseconds(),e,3)}function Vy(t,e){return Nh(t,e)+"000"}function Xy(t,e){return tt(t.getUTCMonth()+1,e,2)}function Ky(t,e){return tt(t.getUTCMinutes(),e,2)}function Zy(t,e){return tt(t.getUTCSeconds(),e,2)}function Qy(t){var e=t.getUTCDay();return e===0?7:e}function Jy(t,e){return tt(_r.count(ie(t)-1,t),e,2)}function Ph(t){var e=t.getUTCDay();return e>=4||e===0?ze(t):ze.ceil(t)}function t_(t,e){return t=Ph(t),tt(ze.count(ie(t),t)+(ie(t).getUTCDay()===4),e,2)}function e_(t){return t.getUTCDay()}function r_(t,e){return tt(Zr.count(ie(t)-1,t),e,2)}function i_(t,e){return tt(t.getUTCFullYear()%100,e,2)}function o_(t,e){return t=Ph(t),tt(t.getUTCFullYear()%100,e,2)}function n_(t,e){return tt(t.getUTCFullYear()%1e4,e,4)}function a_(t,e){var r=t.getUTCDay();return t=r>=4||r===0?ze(t):ze.ceil(t),tt(t.getUTCFullYear()%1e4,e,4)}function s_(){return"+0000"}function Mh(){return"%"}function Eh(t){return+t}function Oh(t){return Math.floor(+t/1e3)}var Jr,tn,Rh,$h,zh;Os({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Os(t){return Jr=Es(t),tn=Jr.format,Rh=Jr.parse,$h=Jr.utcFormat,zh=Jr.utcParse,Jr}function Is(t,e){t=t.slice();var r=0,i=t.length-1,o=t[r],n=t[i],a;return n1?0:t<-1?ti:Math.acos(t)}function Ns(t){return t>=1?Yi:t<=-1?-Yi:Math.asin(t)}var Ps=Math.PI,Rs=2*Ps,br=1e-6,h_=Rs-br;function jh(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return jh;let r=10**e;return function(i){this._+=i[0];for(let o=1,n=i.length;obr)if(!(Math.abs(f*l-c*h)>br)||!n)this._append`L${this._x1=e},${this._y1=r}`;else{let p=i-a,x=o-s,_=l*l+c*c,b=p*p+x*x,w=Math.sqrt(_),v=Math.sqrt(u),L=n*Math.tan((Ps-Math.acos((_+u-b)/(2*w*v)))/2),E=L/v,I=L/w;Math.abs(E-1)>br&&this._append`L${e+E*h},${r+E*f}`,this._append`A${n},${n},0,0,${+(f*p>h*x)},${this._x1=e+I*l},${this._y1=r+I*c}`}}arc(e,r,i,o,n,a){if(e=+e,r=+r,i=+i,a=!!a,i<0)throw new Error(`negative radius: ${i}`);let s=i*Math.cos(o),l=i*Math.sin(o),c=e+s,h=r+l,f=1^a,u=a?o-n:n-o;this._x1===null?this._append`M${c},${h}`:(Math.abs(this._x1-c)>br||Math.abs(this._y1-h)>br)&&this._append`L${c},${h}`,i&&(u<0&&(u=u%Rs+Rs),u>h_?this._append`A${i},${i},0,1,${f},${e-s},${r-l}A${i},${i},0,1,${f},${this._x1=c},${this._y1=h}`:u>br&&this._append`A${i},${i},0,${+(u>=Ps)},${f},${this._x1=e+i*Math.cos(n)},${this._y1=r+i*Math.sin(n)}`)}rect(e,r,i,o){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${i=+i}v${+o}h${-i}Z`}toString(){return this._}};function Gh(){return new Tr}Gh.prototype=Tr.prototype;function rn(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let i=Math.floor(r);if(!(i>=0))throw new RangeError(`invalid digits: ${r}`);e=i}return t},()=>new Tr(e)}function p_(t){return t.innerRadius}function d_(t){return t.outerRadius}function m_(t){return t.startAngle}function g_(t){return t.endAngle}function x_(t){return t&&t.padAngle}function y_(t,e,r,i,o,n,a,s){var l=r-t,c=i-e,h=a-o,f=s-n,u=f*l-h*c;if(!(u*uB*B+F*F&&($=rt,et=T),{cx:$,cy:et,x01:-h,y01:-f,x11:$*(o/I-1),y11:et*(o/I-1)}}function __(){var t=p_,e=d_,r=ct(0),i=null,o=m_,n=g_,a=x_,s=null,l=rn(c);function c(){var h,f,u=+t.apply(this,arguments),p=+e.apply(this,arguments),x=o.apply(this,arguments)-Yi,_=n.apply(this,arguments)-Yi,b=Ds(_-x),w=_>x;if(s||(s=h=l()),pwt))s.moveTo(0,0);else if(b>ei-wt)s.moveTo(p*qe(x),p*oe(x)),s.arc(0,0,p,x,_,!w),u>wt&&(s.moveTo(u*qe(_),u*oe(_)),s.arc(0,0,u,_,x,w));else{var v=x,L=_,E=x,I=_,A=b,y=b,$=a.apply(this,arguments)/2,et=$>wt&&(i?+i.apply(this,arguments):Cr(u*u+p*p)),rt=en(Ds(p-u)/2,+r.apply(this,arguments)),T=rt,C=rt,g,B;if(et>wt){var F=Ns(et/u*oe($)),N=Ns(et/p*oe($));(A-=F*2)>wt?(F*=w?1:-1,E+=F,I-=F):(A=0,E=I=(x+_)/2),(y-=N*2)>wt?(N*=w?1:-1,v+=N,L-=N):(y=0,v=L=(x+_)/2)}var R=p*qe(v),j=p*oe(v),G=u*qe(I),Z=u*oe(I);if(rt>wt){var at=p*qe(L),Bt=p*oe(L),At=u*qe(E),Gt=u*oe(E),gt;if(bwt?C>wt?(g=on(At,Gt,R,j,p,C,w),B=on(at,Bt,G,Z,p,C,w),s.moveTo(g.cx+g.x01,g.cy+g.y01),Cwt)||!(A>wt)?s.lineTo(G,Z):T>wt?(g=on(G,Z,at,Bt,u,-T,w),B=on(R,j,At,Gt,u,-T,w),s.lineTo(g.cx+g.x01,g.cy+g.y01),Tt?1:e>=t?0:NaN}function Qh(t){return t}function b_(){var t=Qh,e=Zh,r=null,i=ct(0),o=ct(ei),n=ct(0);function a(s){var l,c=(s=nn(s)).length,h,f,u=0,p=new Array(c),x=new Array(c),_=+i.apply(this,arguments),b=Math.min(ei,Math.max(-ei,o.apply(this,arguments)-_)),w,v=Math.min(Math.abs(b)/c,n.apply(this,arguments)),L=v*(b<0?-1:1),E;for(l=0;l0&&(u+=E);for(e!=null?p.sort(function(I,A){return e(x[I],x[A])}):r!=null&&p.sort(function(I,A){return r(s[I],s[A])}),l=0,f=u?(b-c*L)/u:0;l0?E*f:0)+L,x[h]={data:s[h],index:l,value:E,startAngle:_,endAngle:w,padAngle:v};return x}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:ct(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,r=null,a):e},a.sort=function(s){return arguments.length?(r=s,e=null,a):r},a.startAngle=function(s){return arguments.length?(i=typeof s=="function"?s:ct(+s),a):i},a.endAngle=function(s){return arguments.length?(o=typeof s=="function"?s:ct(+s),a):o},a.padAngle=function(s){return arguments.length?(n=typeof s=="function"?s:ct(+s),a):n},a}function ri(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Gi(t){this._context=t}Gi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ri(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function $s(t){return new Gi(t)}var an=class{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};function zs(t){return new an(t,!0)}function qs(t){return new an(t,!1)}function Kt(){}function Jh(t){this._context=t}Jh.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ws(t){return new Jh(t)}function tf(t){this._context=t}tf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Us(t){return new tf(t)}function ef(t,e){this._basis=new Gi(t),this._beta=e}ef.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var i=t[0],o=e[0],n=t[r]-i,a=e[r]-o,s=-1,l;++s<=r;)l=s/r,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+l*n),this._beta*e[s]+(1-this._beta)*(o+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Hs=function t(e){function r(i){return e===1?new Gi(i):new ef(i,e)}return r.beta=function(i){return t(+i)},r}(.85);function ii(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function sn(t,e){this._context=t,this._k=(1-e)/6}sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ii(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ys=function t(e){function r(i){return new sn(i,e)}return r.tension=function(i){return t(+i)},r}(0);function ln(t,e){this._context=t,this._k=(1-e)/6}ln.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var js=function t(e){function r(i){return new ln(i,e)}return r.tension=function(i){return t(+i)},r}(0);function cn(t,e){this._context=t,this._k=(1-e)/6}cn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Gs=function t(e){function r(i){return new cn(i,e)}return r.tension=function(i){return t(+i)},r}(0);function Vi(t,e,r){var i=t._x1,o=t._y1,n=t._x2,a=t._y2;if(t._l01_a>wt){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,o=(o*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>wt){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);n=(n*c+t._x1*t._l23_2a-e*t._l12_2a)/h,a=(a*c+t._y1*t._l23_2a-r*t._l12_2a)/h}t._context.bezierCurveTo(i,o,n,a,t._x2,t._y2)}function rf(t,e){this._context=t,this._alpha=e}rf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Vs=function t(e){function r(i){return e?new rf(i,e):new sn(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function of(t,e){this._context=t,this._alpha=e}of.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Xs=function t(e){function r(i){return e?new of(i,e):new ln(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function nf(t,e){this._context=t,this._alpha=e}nf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ks=function t(e){function r(i){return e?new nf(i,e):new cn(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function af(t){this._context=t}af.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Zs(t){return new af(t)}function sf(t){return t<0?-1:1}function lf(t,e,r){var i=t._x1-t._x0,o=e-t._x1,n=(t._y1-t._y0)/(i||o<0&&-0),a=(r-t._y1)/(o||i<0&&-0),s=(n*o+a*i)/(i+o);return(sf(n)+sf(a))*Math.min(Math.abs(n),Math.abs(a),.5*Math.abs(s))||0}function cf(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Qs(t,e,r){var i=t._x0,o=t._y0,n=t._x1,a=t._y1,s=(n-i)/3;t._context.bezierCurveTo(i+s,o+s*e,n-s,a-s*r,n,a)}function un(t){this._context=t}un.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Qs(this,this._t0,cf(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Qs(this,cf(this,r=lf(this,t,e)),r);break;default:Qs(this,this._t0,r=lf(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function uf(t){this._context=new hf(t)}(uf.prototype=Object.create(un.prototype)).point=function(t,e){un.prototype.point.call(this,e,t)};function hf(t){this._context=t}hf.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,i,o,n){this._context.bezierCurveTo(e,t,i,r,n,o)}};function Js(t){return new un(t)}function tl(t){return new uf(t)}function pf(t){this._context=t}pf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var i=ff(t),o=ff(e),n=0,a=1;a=0;--e)o[e]=(a[e]-o[e+1])/n[e];for(n[r-1]=(t[r]+o[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function rl(t){return new hn(t,.5)}function il(t){return new hn(t,0)}function ol(t){return new hn(t,1)}var T_={value:()=>{}};function mf(){for(var t=0,e=arguments.length,r={},i;t=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}fn.prototype=mf.prototype={constructor:fn,on:function(t,e){var r=this._,i=v_(t+"",r),o,n=-1,a=i.length;if(arguments.length<2){for(;++n0)for(var r=new Array(o),i=0,o,n;i=0&&t._call.call(void 0,e),t=t._next;--oi}function gf(){vr=(dn=Qi.now())+mn,oi=Ki=0;try{_f()}finally{oi=0,B_(),vr=0}}function w_(){var t=Qi.now(),e=t-dn;e>xf&&(mn-=e,dn=t)}function B_(){for(var t,e=pn,r,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:pn=r);Zi=t,al(i)}function al(t){if(!oi){Ki&&(Ki=clearTimeout(Ki));var e=t-vr;e>24?(t<1/0&&(Ki=setTimeout(gf,t-Qi.now()-mn)),Xi&&(Xi=clearInterval(Xi))):(Xi||(dn=Qi.now(),Xi=setInterval(w_,xf)),oi=1,yf(gf))}}function xn(t,e,r){var i=new Ji;return e=e==null?0:+e,i.restart(o=>{i.stop(),t(o+e)},e,r),i}var A_=nl("start","end","cancel","interrupt"),F_=[],Tf=0,Cf=1,_n=2,yn=3,bf=4,Cn=5,eo=6;function We(t,e,r,i,o,n){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;L_(t,r,{name:e,index:i,group:o,on:A_,tween:F_,time:n.time,delay:n.delay,duration:n.duration,ease:n.ease,timer:null,state:Tf})}function ro(t,e){var r=xt(t,e);if(r.state>Tf)throw new Error("too late; already scheduled");return r}function Ot(t,e){var r=xt(t,e);if(r.state>yn)throw new Error("too late; already running");return r}function xt(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function L_(t,e,r){var i=t.__transition,o;i[e]=r,r.timer=gn(n,0,r.time);function n(c){r.state=Cf,r.timer.restart(a,r.delay,r.time),r.delay<=c&&a(c-r.delay)}function a(c){var h,f,u,p;if(r.state!==Cf)return l();for(h in i)if(p=i[h],p.name===r.name){if(p.state===yn)return xn(a);p.state===bf?(p.state=eo,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete i[h]):+h_n&&i.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function K_(t,e,r){var i,o,n=X_(e)?ro:Ot;return function(){var a=n(this,t),s=a.on;s!==i&&(o=(i=s).copy()).on(e,r),a.on=o}}function Of(t,e){var r=this._id;return arguments.length<2?xt(this.node(),r).on.on(t):this.each(K_(r,t,e))}function Z_(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function If(){return this.on("end.remove",Z_(this._id))}function Df(t){var e=this._name,r=this._id;typeof t!="function"&&(t=sr(t));for(var i=this._groups,o=i.length,n=new Array(o),a=0;aVf(e,r).then(i=>new DOMParser().parseFromString(i,t))}var dC=ll("application/xml"),mC=ll("text/html"),gC=ll("image/svg+xml");function Ue(t,e,r){this.k=t,this.x=e,this.y=r}Ue.prototype={constructor:Ue,scale:function(t){return t===1?this:new Ue(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Ue(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var cl=new Ue(1,0,0);ul.prototype=Ue.prototype;function ul(t){for(;!t.__zoom;)if(!(t=t.parentNode))return cl;return t.__zoom}var Sn={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:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),hsl2rgb:({h:t,s:e,l:r},i)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let o=r<.5?r*(1+e):r+e-r*e,n=2*r-o;switch(i){case"r":return Sn.hue2rgb(n,o,t+.3333333333333333)*255;case"g":return Sn.hue2rgb(n,o,t)*255;case"b":return Sn.hue2rgb(n,o,t-.3333333333333333)*255}},rgb2hsl:({r:t,g:e,b:r},i)=>{t/=255,e/=255,r/=255;let o=Math.max(t,e,r),n=Math.min(t,e,r),a=(o+n)/2;if(i==="l")return a*100;if(o===n)return 0;let s=o-n,l=a>.5?s/(2-o-n):s/(o+n);if(i==="s")return l*100;switch(o){case t:return((e-r)/s+(ee>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},Zf=xC;var yC={dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Qf=yC;var _C={channel:Kf,lang:Zf,unit:Qf},q=_C;var Ae={};for(let t=0;t<=255;t++)Ae[t]=q.unit.dec2hex(t);var yt={ALL:0,RGB:1,HSL:2};var pl=class{constructor(){this.type=yt.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=yt.ALL}is(e){return this.type===e}},Jf=pl;var dl=class{constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new Jf}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=yt.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:i,l:o}=e;r===void 0&&(e.h=q.channel.rgb2hsl(e,"h")),i===void 0&&(e.s=q.channel.rgb2hsl(e,"s")),o===void 0&&(e.l=q.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:i,b:o}=e;r===void 0&&(e.r=q.channel.hsl2rgb(e,"r")),i===void 0&&(e.g=q.channel.hsl2rgb(e,"g")),o===void 0&&(e.b=q.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(yt.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(yt.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(yt.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(yt.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(yt.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(yt.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},tp=dl;var CC=new tp({r:0,g:0,b:0,a:0},"transparent"),He=CC;var ep={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(ep.re);if(!e)return;let r=e[1],i=parseInt(r,16),o=r.length,n=o%4===0,a=o>4,s=a?1:17,l=a?8:4,c=n?0:-1,h=a?255:15;return He.set({r:(i>>l*(c+3)&h)*s,g:(i>>l*(c+2)&h)*s,b:(i>>l*(c+1)&h)*s,a:n?(i&h)*s/255:1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`#${Ae[Math.round(e)]}${Ae[Math.round(r)]}${Ae[Math.round(i)]}${Ae[Math.round(o*255)]}`:`#${Ae[Math.round(e)]}${Ae[Math.round(r)]}${Ae[Math.round(i)]}`}},kr=ep;var wn={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(wn.hueRe);if(e){let[,r,i]=e;switch(i){case"grad":return q.channel.clamp.h(parseFloat(r)*.9);case"rad":return q.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return q.channel.clamp.h(parseFloat(r)*360)}}return q.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(wn.re);if(!r)return;let[,i,o,n,a,s]=r;return He.set({h:wn._hue2deg(i),s:q.channel.clamp.s(parseFloat(o)),l:q.channel.clamp.l(parseFloat(n)),a:a?q.channel.clamp.a(s?parseFloat(a)/100:parseFloat(a)):1},t)},stringify:t=>{let{h:e,s:r,l:i,a:o}=t;return o<1?`hsla(${q.lang.round(e)}, ${q.lang.round(r)}%, ${q.lang.round(i)}%, ${o})`:`hsl(${q.lang.round(e)}, ${q.lang.round(r)}%, ${q.lang.round(i)}%)`}},io=wn;var Bn={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=Bn.colors[t];if(e)return kr.parse(e)},stringify:t=>{let e=kr.stringify(t);for(let r in Bn.colors)if(Bn.colors[r]===e)return r}},ml=Bn;var rp={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(rp.re);if(!r)return;let[,i,o,n,a,s,l,c,h]=r;return He.set({r:q.channel.clamp.r(o?parseFloat(i)*2.55:parseFloat(i)),g:q.channel.clamp.g(a?parseFloat(n)*2.55:parseFloat(n)),b:q.channel.clamp.b(l?parseFloat(s)*2.55:parseFloat(s)),a:c?q.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`rgba(${q.lang.round(e)}, ${q.lang.round(r)}, ${q.lang.round(i)}, ${q.lang.round(o)})`:`rgb(${q.lang.round(e)}, ${q.lang.round(r)}, ${q.lang.round(i)})`}},oo=rp;var bC={format:{keyword:ml,hex:kr,rgb:oo,rgba:oo,hsl:io,hsla:io},parse:t=>{if(typeof t!="string")return t;let e=kr.parse(t)||oo.parse(t)||io.parse(t)||ml.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(yt.HSL)||t.data.r===void 0?io.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?oo.stringify(t):kr.stringify(t)},_t=bC;var TC=t=>{let{r:e,g:r,b:i}=_t.parse(t),o=.2126*q.channel.toLinear(e)+.7152*q.channel.toLinear(r)+.0722*q.channel.toLinear(i);return q.lang.round(o)},ip=TC;var vC=t=>ip(t)>=.5,op=vC;var kC=t=>!op(t),Sr=kC;var SC=(t,e,r)=>{let i=_t.parse(t),o=i[e],n=q.channel.clamp[e](o+r);return o!==n&&(i[e]=n),_t.stringify(i)},An=SC;var wC=(t,e)=>An(t,"l",e),z=wC;var BC=(t,e)=>An(t,"l",-e),H=BC;var AC=(t,e)=>{let r=_t.parse(t);for(let i in e)r[i]=q.channel.clamp[i](e[i]);return _t.stringify(r)},Fn=AC;var FC=(t,e,r=0,i=1)=>{if(typeof t!="number")return Fn(t,{a:e});let o=He.set({r:q.channel.clamp.r(t),g:q.channel.clamp.g(e),b:q.channel.clamp.b(r),a:q.channel.clamp.a(i)});return _t.stringify(o)},Ye=FC;var LC=(t,e)=>q.lang.round(_t.parse(t)[e]),MC=LC;var EC=(t,e)=>{let r=_t.parse(t),i={};for(let o in e)e[o]&&(i[o]=r[o]+e[o]);return Fn(t,i)},m=EC;var OC=(t,e,r=50)=>{let{r:i,g:o,b:n,a}=_t.parse(t),{r:s,g:l,b:c,a:h}=_t.parse(e),f=r/100,u=f*2-1,p=a-h,_=((u*p===-1?u:(u+p)/(1+u*p))+1)/2,b=1-_,w=i*_+s*b,v=o*_+l*b,L=n*_+c*b,E=a*f+h*(1-f);return Ye(w,v,L,E)},np=OC;var IC=(t,e=100)=>{let r=_t.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,np(r,t,e)},M=IC;var DC=typeof global=="object"&&global&&global.Object===Object&&global,Ln=DC;var NC=typeof self=="object"&&self&&self.Object===Object&&self,PC=Ln||NC||Function("return this")(),pt=PC;var RC=pt.Symbol,ai=RC;var ap=Object.prototype,$C=ap.hasOwnProperty,zC=ap.toString,no=ai?ai.toStringTag:void 0;function qC(t){var e=$C.call(t,no),r=t[no];try{t[no]=void 0;var i=!0}catch{}var o=zC.call(t);return i&&(e?t[no]=r:delete t[no]),o}var sp=qC;var WC=Object.prototype,UC=WC.toString;function HC(t){return UC.call(t)}var lp=HC;var YC="[object Null]",jC="[object Undefined]",cp=ai?ai.toStringTag:void 0;function GC(t){return t==null?t===void 0?jC:YC:cp&&cp in Object(t)?sp(t):lp(t)}var ne=GC;function VC(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Ut=VC;var XC="[object AsyncFunction]",KC="[object Function]",ZC="[object GeneratorFunction]",QC="[object Proxy]";function JC(t){if(!Ut(t))return!1;var e=ne(t);return e==KC||e==ZC||e==XC||e==QC}var si=JC;var t1=pt["__core-js_shared__"],Mn=t1;var up=function(){var t=/[^.]+$/.exec(Mn&&Mn.keys&&Mn.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function e1(t){return!!up&&up in t}var hp=e1;var r1=Function.prototype,i1=r1.toString;function o1(t){if(t!=null){try{return i1.call(t)}catch{}try{return t+""}catch{}}return""}var Fe=o1;var n1=/[\\^$.*+?()[\]{}|]/g,a1=/^\[object .+?Constructor\]$/,s1=Function.prototype,l1=Object.prototype,c1=s1.toString,u1=l1.hasOwnProperty,h1=RegExp("^"+c1.call(u1).replace(n1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f1(t){if(!Ut(t)||hp(t))return!1;var e=si(t)?h1:a1;return e.test(Fe(t))}var fp=f1;function p1(t,e){return t?.[e]}var pp=p1;function d1(t,e){var r=pp(t,e);return fp(r)?r:void 0}var Ht=d1;var m1=Ht(Object,"create"),Le=m1;function g1(){this.__data__=Le?Le(null):{},this.size=0}var dp=g1;function x1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var mp=x1;var y1="__lodash_hash_undefined__",_1=Object.prototype,C1=_1.hasOwnProperty;function b1(t){var e=this.__data__;if(Le){var r=e[t];return r===y1?void 0:r}return C1.call(e,t)?e[t]:void 0}var gp=b1;var T1=Object.prototype,v1=T1.hasOwnProperty;function k1(t){var e=this.__data__;return Le?e[t]!==void 0:v1.call(e,t)}var xp=k1;var S1="__lodash_hash_undefined__";function w1(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Le&&e===void 0?S1:e,this}var yp=w1;function li(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Tp=I1;function D1(t,e){var r=this.__data__,i=Ge(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}var vp=D1;function ci(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=bb}var Dn=Tb;function vb(t){return t!=null&&Dn(t.length)&&!si(t)}var Qe=vb;function kb(t){return me(t)&&Qe(t)}var Kp=kb;function Sb(){return!1}var Zp=Sb;var td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qp=td&&typeof module=="object"&&module&&!module.nodeType&&module,wb=Qp&&Qp.exports===td,Jp=wb?pt.Buffer:void 0,Bb=Jp?Jp.isBuffer:void 0,Ab=Bb||Zp,di=Ab;var Fb="[object Object]",Lb=Function.prototype,Mb=Object.prototype,ed=Lb.toString,Eb=Mb.hasOwnProperty,Ob=ed.call(Object);function Ib(t){if(!me(t)||ne(t)!=Fb)return!1;var e=In(t);if(e===null)return!0;var r=Eb.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&ed.call(r)==Ob}var rd=Ib;var Db="[object Arguments]",Nb="[object Array]",Pb="[object Boolean]",Rb="[object Date]",$b="[object Error]",zb="[object Function]",qb="[object Map]",Wb="[object Number]",Ub="[object Object]",Hb="[object RegExp]",Yb="[object Set]",jb="[object String]",Gb="[object WeakMap]",Vb="[object ArrayBuffer]",Xb="[object DataView]",Kb="[object Float32Array]",Zb="[object Float64Array]",Qb="[object Int8Array]",Jb="[object Int16Array]",tT="[object Int32Array]",eT="[object Uint8Array]",rT="[object Uint8ClampedArray]",iT="[object Uint16Array]",oT="[object Uint32Array]",lt={};lt[Kb]=lt[Zb]=lt[Qb]=lt[Jb]=lt[tT]=lt[eT]=lt[rT]=lt[iT]=lt[oT]=!0;lt[Db]=lt[Nb]=lt[Vb]=lt[Pb]=lt[Xb]=lt[Rb]=lt[$b]=lt[zb]=lt[qb]=lt[Wb]=lt[Ub]=lt[Hb]=lt[Yb]=lt[jb]=lt[Gb]=!1;function nT(t){return me(t)&&Dn(t.length)&&!!lt[ne(t)]}var id=nT;function aT(t){return function(e){return t(e)}}var od=aT;var nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lo=nd&&typeof module=="object"&&module&&!module.nodeType&&module,sT=lo&&lo.exports===nd,Cl=sT&&Ln.process,lT=function(){try{var t=lo&&lo.require&&lo.require("util").types;return t||Cl&&Cl.binding&&Cl.binding("util")}catch{}}(),bl=lT;var ad=bl&&bl.isTypedArray,cT=ad?od(ad):id,mi=cT;function uT(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var co=uT;var hT=Object.prototype,fT=hT.hasOwnProperty;function pT(t,e,r){var i=t[e];(!(fT.call(t,e)&&je(i,r))||r===void 0&&!(e in t))&&pi(t,e,r)}var sd=pT;function dT(t,e,r,i){var o=!r;r||(r={});for(var n=-1,a=e.length;++n-1&&t%1==0&&t0){if(++e>=IT)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Td=PT;var RT=Td(bd),vd=RT;function $T(t,e){return vd(_d(t,e,Rn),t+"")}var kd=$T;function zT(t,e,r){if(!Ut(r))return!1;var i=typeof e;return(i=="number"?Qe(r)&&Nn(e,r.length):i=="string"&&e in r)?je(r[e],t):!1}var Sd=zT;function qT(t){return kd(function(e,r){var i=-1,o=r.length,n=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(o--,n):void 0,a&&Sd(r[0],r[1],a)&&(n=o<3?void 0:n,o=1),e=Object(e);++i0?Fr(yi,--Zt):0,xi--,dt===10&&(xi=1,Kn--),dt}function Qt(){return dt=Zt2||Tl(dt)>3?"":" "}function jd(t,e){for(;--e&&Qt()&&!(dt<48||dt>102||dt>57&&dt<65||dt>70&&dt<97););return Qn(t,ho()+(e<6&&Je()==32&&Qt()==32))}function vl(t){for(;Qt();)switch(dt){case t:return Zt;case 34:case 39:t!==34&&t!==39&&vl(dt);break;case 40:t===41&&vl(t);break;case 92:Qt();break}return Zt}function Gd(t,e){for(;Qt()&&t+dt!==47+10;)if(t+dt===42+42&&Je()===47)break;return"/*"+Qn(e,Zt-1)+"*"+uo(t===47?t:Qt())}function Vd(t){for(;!Tl(Je());)Qt();return Qn(t,Zt)}function Zd(t){return Hd(ta("",null,null,null,[""],t=Ud(t),0,[0],t))}function ta(t,e,r,i,o,n,a,s,l){for(var c=0,h=0,f=a,u=0,p=0,x=0,_=1,b=1,w=1,v=0,L="",E=o,I=n,A=i,y=L;b;)switch(x=v,v=Qt()){case 40:if(x!=108&&Fr(y,f-1)==58){$d(y+=Vn(Jn(v),"&","&\f"),"&\f")!=-1&&(w=-1);break}case 34:case 39:case 91:y+=Jn(v);break;case 9:case 10:case 13:case 32:y+=Yd(x);break;case 92:y+=jd(ho()-1,7);continue;case 47:switch(Je()){case 42:case 47:gi(lv(Gd(Qt(),ho()),e,r),l);break;default:y+="/"}break;case 123*_:s[c++]=ae(y)*w;case 125*_:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+h:p>0&&ae(y)-f&&gi(p>32?Kd(y+";",i,r,f-1):Kd(Vn(y," ","")+";",i,r,f-2),l);break;case 59:y+=";";default:if(gi(A=Xd(y,e,r,c,h,o,s,L,E=[],I=[],f),n),v===123)if(h===0)ta(y,e,A,A,E,n,f,s,I);else switch(u===99&&Fr(y,3)===110?100:u){case 100:case 109:case 115:ta(t,A,A,i&&gi(Xd(t,A,A,0,0,o,s,L,o,E=[],f),I),o,I,f,s,i?E:I);break;default:ta(y,A,A,A,[""],I,0,s,I)}}c=h=p=0,_=w=1,L=y="",f=a;break;case 58:f=1+ae(y),p=x;default:if(_<1){if(v==123)--_;else if(v==125&&_++==0&&Wd()==125)continue}switch(y+=uo(v),v*_){case 38:w=h>0?1:(y+="\f",-1);break;case 44:s[c++]=(ae(y)-1)*w,w=1;break;case 64:Je()===45&&(y+=Jn(Qt())),u=Je(),h=f=ae(L=y+=Vd(ho())),v++;break;case 45:x===45&&ae(y)==2&&(_=0)}}return n}function Xd(t,e,r,i,o,n,a,s,l,c,h){for(var f=o-1,u=o===0?n:[""],p=Xn(u),x=0,_=0,b=0;x0?u[w]+" "+v:Vn(v,/&\f/g,u[w])))&&(l[b++]=L);return Zn(t,e,r,o===0?Yn:s,l,c,h)}function lv(t,e,r){return Zn(t,e,r,Hn,uo(qd()),Lr(t,2,-2),0)}function Kd(t,e,r,i){return Zn(t,e,r,jn,Lr(t,0,i),Lr(t,i+1,-1),i)}function ea(t,e){for(var r="",i=Xn(t),o=0;o{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Dl=function(t="fatal"){let e=Me.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Me&&(e=Me[t])):typeof t=="number"&&(e=t),Y.trace=()=>{},Y.debug=()=>{},Y.info=()=>{},Y.warn=()=>{},Y.error=()=>{},Y.fatal=()=>{},e<=Me.fatal&&(Y.fatal=console.error?console.error.bind(console,Jt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Jt("FATAL"))),e<=Me.error&&(Y.error=console.error?console.error.bind(console,Jt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Jt("ERROR"))),e<=Me.warn&&(Y.warn=console.warn?console.warn.bind(console,Jt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Jt("WARN"))),e<=Me.info&&(Y.info=console.info?console.info.bind(console,Jt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Jt("INFO"))),e<=Me.debug&&(Y.debug=console.debug?console.debug.bind(console,Jt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Jt("DEBUG"))),e<=Me.trace&&(Y.trace=console.debug?console.debug.bind(console,Jt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Jt("TRACE")))},Jt=t=>`%c${(0,mm.default)().format("ss.SSS")} : ${t} : `,ma=//gi,cv=t=>t?ym(t).replace(/\\n/g,"#br#").split("#br#"):[""],xm=t=>go.default.sanitize(t),Jd=(t,e)=>{var r;if(((r=e.flowchart)==null?void 0:r.htmlLabels)!==!1){let i=e.securityLevel;i==="antiscript"||i==="strict"?t=xm(t):i!=="loose"&&(t=ym(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=pv(t))}return t},xo=(t,e)=>t&&(e.dompurifyConfig?t=go.default.sanitize(Jd(t,e),e.dompurifyConfig).toString():t=go.default.sanitize(Jd(t,e),{FORBID_TAGS:["style"]}).toString(),t),uv=(t,e)=>typeof t=="string"?xo(t,e):t.flat().map(r=>xo(r,e)),hv=t=>ma.test(t),fv=t=>t.split(ma),pv=t=>t.replace(/#br#/g,"
"),ym=t=>t.replace(ma,"#br#"),dv=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},_m=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),mv=function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},gv=function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},Xz=function(t){let e=t.split(/(,)/),r=[];for(let i=0;i0&&i+1Math.max(0,t.split(e).length-1),xv=(t,e)=>{let r=Al(t,"~"),i=Al(e,"~");return r===1&&i===1},yv=t=>{let e=Al(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let i=[...t],o=i.indexOf("~"),n=i.lastIndexOf("~");for(;o!==-1&&n!==-1&&o!==n;)i[o]="<",i[n]=">",o=i.indexOf("~"),n=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},Nl={getRows:cv,sanitizeText:xo,sanitizeTextOrArray:uv,hasBreaks:hv,splitBreaks:fv,lineBreakRegex:ma,removeScript:xm,getUrl:dv,evaluate:_m,getMax:mv,getMin:gv},qt=(t,e)=>e?m(t,{s:-40,l:10}):m(t,{s:-40,l:-10}),ga="#ffffff",xa="#f2f2f2",_v=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||m(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||m(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||qt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||qt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||M(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||M(this.tertiaryColor),this.lineColor=this.lineColor||M(this.background),this.arrowheadColor=this.arrowheadColor||M(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?H(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||H(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||M(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||z(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.darkMode)for(let p=0;p{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Cv=t=>{let e=new _v;return e.calculate(t),e},bv=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=z(this.primaryColor,16),this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=M(this.background),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=z(M("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=Ye(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=H("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=H(this.sectionBkgColor,10),this.taskBorderColor=Ye(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Ye(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.secondBkg=z(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=z(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=z(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=m(this.primaryColor,{h:64}),this.fillType3=m(this.secondaryColor,{h:64}),this.fillType4=m(this.primaryColor,{h:-64}),this.fillType5=m(this.secondaryColor,{h:-64}),this.fillType6=m(this.primaryColor,{h:128}),this.fillType7=m(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330});for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Tv=t=>{let e=new bv;return e.calculate(t),e},vv=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=m(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Ye(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||H(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||H(this.tertiaryColor,40);for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},kv=t=>{let e=new vv;return e.calculate(t),e},Sv=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=z("#cde498",10),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.primaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.actorBorder=H(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||H(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||H(this.tertiaryColor,40);for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},wv=t=>{let e=new Sv;return e.calculate(t),e},Fl=class{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=z(this.contrast,55),this.background="#ffffff",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.secondBkg=z(this.contrast,55),this.border2=this.contrast,this.actorBorder=z(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Bv=t=>{let e=new Fl;return e.calculate(t),e},Ie={base:{getThemeVariables:Cv},dark:{getThemeVariables:Tv},default:{getThemeVariables:kv},forest:{getThemeVariables:wv},neutral:{getThemeVariables:Bv}},Ee={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,fontSize:16},Cm={...Ee,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Ie.default.getThemeVariables(),sequence:{...Ee.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Ee.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Ee.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Ee.pie,useWidth:984},xyChart:{...Ee.xyChart,useWidth:void 0},requirement:{...Ee.requirement,useWidth:void 0},gitGraph:{...Ee.gitGraph,useMaxWidth:!1},sankey:{...Ee.sankey,useMaxWidth:!1}},bm=(t,e="")=>Object.keys(t).reduce((r,i)=>Array.isArray(t[i])?r:typeof t[i]=="object"&&t[i]!==null?[...r,e+i,...bm(t[i],"")]:[...r,e+i],[]),Av=new Set(bm(Cm,"")),Fv=Cm,oa=t=>{if(Y.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>oa(e));return}for(let e of Object.keys(t)){if(Y.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Av.has(e)||t[e]==null){Y.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){Y.debug("sanitizing object",e),oa(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let i of r)e.includes(i)&&(Y.debug("sanitizing css option",e),t[e]=Lv(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}Y.debug("After sanitization",t)}},Lv=t=>{let e=0,r=0;for(let i of t){if(e=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r=o)&&(r=o)}return r}function Sc(t,e){let r;if(e===void 0)for(let i of t)i!=null&&(r>i||r===void 0&&i>=i)&&(r=i);else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}return r}function nr(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Ha(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function ar(t){let e,r,i;t.length!==2?(e=nr,r=(s,l)=>nr(t(s),l),i=(s,l)=>t(s)-l):(e=t===nr||t===Ha?t:Jg,r=t,i=t);function o(s,l,c=0,h=s.length){if(c>>1;r(s[f],l)<0?c=f+1:h=f}while(c>>1;r(s[f],l)<=0?c=f+1:h=f}while(cc&&i(s[f-1],l)>-i(s[f],l)?f-1:f}return{left:o,center:a,right:n}}function Jg(){return 0}function Ya(t){return t===null?NaN:+t}var wc=ar(nr),Bc=wc.right,t0=wc.left,e0=ar(Ya).center,ja=Bc;var zr=class extends Map{constructor(e,r=o0){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[i,o]of e)this.set(i,o)}get(e){return super.get(Ac(this,e))}has(e){return super.has(Ac(this,e))}set(e,r){return super.set(r0(this,e),r)}delete(e){return super.delete(i0(this,e))}};function Ac({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):r}function r0({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):(t.set(i,r),r)}function i0({_intern:t,_key:e},r){let i=e(r);return t.has(i)&&(r=t.get(i),t.delete(i)),r}function o0(t){return t!==null&&typeof t=="object"?t.valueOf():t}var n0=Math.sqrt(50),a0=Math.sqrt(10),s0=Math.sqrt(2);function Ao(t,e,r){let i=(e-t)/Math.max(0,r),o=Math.floor(Math.log10(i)),n=i/Math.pow(10,o),a=n>=n0?10:n>=a0?5:n>=s0?2:1,s,l,c;return o<0?(c=Math.pow(10,-o)/a,s=Math.round(t*c),l=Math.round(e*c),s/ce&&--l,c=-c):(c=Math.pow(10,o)*a,s=Math.round(t/c),l=Math.round(e/c),s*ce&&--l),l0))return[];if(t===e)return[t];let i=e=o))return[];let s=n-o+1,l=new Array(s);if(i)if(a<0)for(let c=0;c+t(e)}function h0(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function f0(){return!this.__axis}function Mc(t,e){var r=[],i=null,o=null,n=6,a=6,s=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,c=t===Eo||t===Mo?-1:1,h=t===Mo||t===Ga?"x":"y",f=t===Eo||t===Va?l0:c0;function u(p){var x=i??(e.ticks?e.ticks.apply(e,r):e.domain()),_=o??(e.tickFormat?e.tickFormat.apply(e,r):Fc),b=Math.max(n,0)+s,w=e.range(),v=+w[0]+l,L=+w[w.length-1]+l,E=(e.bandwidth?h0:u0)(e.copy(),l),I=p.selection?p.selection():p,A=I.selectAll(".domain").data([null]),y=I.selectAll(".tick").data(x,e).order(),$=y.exit(),et=y.enter().append("g").attr("class","tick"),rt=y.select("line"),T=y.select("text");A=A.merge(A.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),y=y.merge(et),rt=rt.merge(et.append("line").attr("stroke","currentColor").attr(h+"2",c*n)),T=T.merge(et.append("text").attr("fill","currentColor").attr(h,c*b).attr("dy",t===Eo?"0em":t===Va?"0.71em":"0.32em")),p!==I&&(A=A.transition(p),y=y.transition(p),rt=rt.transition(p),T=T.transition(p),$=$.transition(p).attr("opacity",Lc).attr("transform",function(C){return isFinite(C=E(C))?f(C+l):this.getAttribute("transform")}),et.attr("opacity",Lc).attr("transform",function(C){var g=this.parentNode.__axis;return f((g&&isFinite(g=g(C))?g:E(C))+l)})),$.remove(),A.attr("d",t===Mo||t===Ga?a?"M"+c*a+","+v+"H"+l+"V"+L+"H"+c*a:"M"+l+","+v+"V"+L:a?"M"+v+","+c*a+"V"+l+"H"+L+"V"+c*a:"M"+v+","+l+"H"+L),y.attr("opacity",1).attr("transform",function(C){return f(E(C)+l)}),rt.attr(h+"2",c*n),T.attr(h,c*b).text(_),I.filter(f0).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Ga?"start":t===Mo?"end":"middle"),I.each(function(){this.__axis=E})}return u.scale=function(p){return arguments.length?(e=p,u):e},u.ticks=function(){return r=Array.from(arguments),u},u.tickArguments=function(p){return arguments.length?(r=p==null?[]:Array.from(p),u):r.slice()},u.tickValues=function(p){return arguments.length?(i=p==null?null:Array.from(p),u):i&&i.slice()},u.tickFormat=function(p){return arguments.length?(o=p,u):o},u.tickSize=function(p){return arguments.length?(n=a=+p,u):n},u.tickSizeInner=function(p){return arguments.length?(n=+p,u):n},u.tickSizeOuter=function(p){return arguments.length?(a=+p,u):a},u.tickPadding=function(p){return arguments.length?(s=+p,u):s},u.offset=function(p){return arguments.length?(l=+p,u):l},u}function p0(t){return Mc(Eo,t)}function d0(t){return Mc(Va,t)}function m0(){}function sr(t){return t==null?m0:function(){return this.querySelector(t)}}function Ec(t){typeof t!="function"&&(t=sr(t));for(var e=this._groups,r=e.length,i=new Array(r),o=0;o=L&&(L=v+1);!(I=b[L])&&++L=0;)(a=i[o])&&(n&&a.compareDocumentPosition(n)^4&&n.parentNode.insertBefore(a,n),n=a);return this}function Hc(t){t||(t=A0);function e(f,u){return f&&u?t(f.__data__,u.__data__):!f-!u}for(var r=this._groups,i=r.length,o=new Array(i),n=0;ne?1:t>=e?0:NaN}function Yc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function jc(){return Array.from(this)}function Gc(){for(var t=this._groups,e=0,r=t.length;e=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Xa.hasOwnProperty(e)?{space:Xa[e],local:t}:t}function F0(t){return function(){this.removeAttribute(t)}}function L0(t){return function(){this.removeAttributeNS(t.space,t.local)}}function M0(t,e){return function(){this.setAttribute(t,e)}}function E0(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function O0(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function I0(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function Zc(t,e){var r=be(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((e==null?r.local?L0:F0:typeof e=="function"?r.local?I0:O0:r.local?E0:M0)(r,e))}function No(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function D0(t){return function(){this.style.removeProperty(t)}}function N0(t,e,r){return function(){this.style.setProperty(t,e,r)}}function P0(t,e,r){return function(){var i=e.apply(this,arguments);i==null?this.style.removeProperty(t):this.style.setProperty(t,i,r)}}function Qc(t,e,r){return arguments.length>1?this.each((e==null?D0:typeof e=="function"?P0:N0)(t,e,r??"")):De(this.node(),t)}function De(t,e){return t.style.getPropertyValue(e)||No(t).getComputedStyle(t,null).getPropertyValue(e)}function R0(t){return function(){delete this[t]}}function $0(t,e){return function(){this[t]=e}}function z0(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Jc(t,e){return arguments.length>1?this.each((e==null?R0:typeof e=="function"?z0:$0)(t,e)):this.node()[t]}function tu(t){return t.trim().split(/^|\s+/)}function Ka(t){return t.classList||new eu(t)}function eu(t){this._node=t,this._names=tu(t.getAttribute("class")||"")}eu.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function ru(t,e){for(var r=Ka(t),i=-1,o=e.length;++i=0&&(r=e.slice(i+1),e=e.slice(0,i)),{type:e,name:r}})}function ax(t){return function(){var e=this.__on;if(e){for(var r=0,i=-1,o=e.length,n;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Ro(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Ro(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=px.exec(t))?new Lt(e[1],e[2],e[3],1):(e=dx.exec(t))?new Lt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=mx.exec(t))?Ro(e[1],e[2],e[3],e[4]):(e=gx.exec(t))?Ro(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=xx.exec(t))?Su(e[1],e[2]/100,e[3]/100,1):(e=yx.exec(t))?Su(e[1],e[2]/100,e[3]/100,e[4]):_u.hasOwnProperty(t)?Tu(_u[t]):t==="transparent"?new Lt(NaN,NaN,NaN,0):null}function Tu(t){return new Lt(t>>16&255,t>>8&255,t&255,1)}function Ro(t,e,r,i){return i<=0&&(t=e=r=NaN),new Lt(t,e,r,i)}function Qa(t){return t instanceof Ne||(t=re(t)),t?(t=t.rgb(),new Lt(t.r,t.g,t.b,t.opacity)):new Lt}function Hr(t,e,r,i){return arguments.length===1?Qa(t):new Lt(t,e,r,i??1)}function Lt(t,e,r,i){this.r=+t,this.g=+e,this.b=+r,this.opacity=+i}lr(Lt,Hr,Wr(Ne,{brighter(t){return t=t==null?zo:Math.pow(zo,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ii:Math.pow(Ii,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Lt(ur(this.r),ur(this.g),ur(this.b),qo(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vu,formatHex:vu,formatHex8:bx,formatRgb:ku,toString:ku}));function vu(){return`#${cr(this.r)}${cr(this.g)}${cr(this.b)}`}function bx(){return`#${cr(this.r)}${cr(this.g)}${cr(this.b)}${cr((isNaN(this.opacity)?1:this.opacity)*255)}`}function ku(){let t=qo(this.opacity);return`${t===1?"rgb(":"rgba("}${ur(this.r)}, ${ur(this.g)}, ${ur(this.b)}${t===1?")":`, ${t})`}`}function qo(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ur(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function cr(t){return t=ur(t),(t<16?"0":"")+t.toString(16)}function Su(t,e,r,i){return i<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new ee(t,e,r,i)}function Bu(t){if(t instanceof ee)return new ee(t.h,t.s,t.l,t.opacity);if(t instanceof Ne||(t=re(t)),!t)return new ee;if(t instanceof ee)return t;t=t.rgb();var e=t.r/255,r=t.g/255,i=t.b/255,o=Math.min(e,r,i),n=Math.max(e,r,i),a=NaN,s=n-o,l=(n+o)/2;return s?(e===n?a=(r-i)/s+(r0&&l<1?0:a,new ee(a,s,l,t.opacity)}function Au(t,e,r,i){return arguments.length===1?Bu(t):new ee(t,e,r,i??1)}function ee(t,e,r,i){this.h=+t,this.s=+e,this.l=+r,this.opacity=+i}lr(ee,Au,Wr(Ne,{brighter(t){return t=t==null?zo:Math.pow(zo,t),new ee(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ii:Math.pow(Ii,t),new ee(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*e,o=2*r-i;return new Lt(Za(t>=240?t-240:t+120,o,i),Za(t,o,i),Za(t<120?t+240:t-120,o,i),this.opacity)},clamp(){return new ee(wu(this.h),$o(this.s),$o(this.l),qo(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=qo(this.opacity);return`${t===1?"hsl(":"hsla("}${wu(this.h)}, ${$o(this.s)*100}%, ${$o(this.l)*100}%${t===1?")":`, ${t})`}`}}));function wu(t){return t=(t||0)%360,t<0?t+360:t}function $o(t){return Math.max(0,Math.min(1,t||0))}function Za(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var Fu=Math.PI/180,Lu=180/Math.PI;var Wo=18,Mu=.96422,Eu=1,Ou=.82521,Iu=4/29,Yr=6/29,Du=3*Yr*Yr,Tx=Yr*Yr*Yr;function Nu(t){if(t instanceof he)return new he(t.l,t.a,t.b,t.opacity);if(t instanceof ve)return Pu(t);t instanceof Lt||(t=Qa(t));var e=rs(t.r),r=rs(t.g),i=rs(t.b),o=Ja((.2225045*e+.7168786*r+.0606169*i)/Eu),n,a;return e===r&&r===i?n=a=o:(n=Ja((.4360747*e+.3850649*r+.1430804*i)/Mu),a=Ja((.0139322*e+.0971045*r+.7141733*i)/Ou)),new he(116*o-16,500*(n-o),200*(o-a),t.opacity)}function is(t,e,r,i){return arguments.length===1?Nu(t):new he(t,e,r,i??1)}function he(t,e,r,i){this.l=+t,this.a=+e,this.b=+r,this.opacity=+i}lr(he,is,Wr(Ne,{brighter(t){return new he(this.l+Wo*(t??1),this.a,this.b,this.opacity)},darker(t){return new he(this.l-Wo*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=Mu*ts(e),t=Eu*ts(t),r=Ou*ts(r),new Lt(es(3.1338561*e-1.6168667*t-.4906146*r),es(-.9787684*e+1.9161415*t+.033454*r),es(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function Ja(t){return t>Tx?Math.pow(t,1/3):t/Du+Iu}function ts(t){return t>Yr?t*t*t:Du*(t-Iu)}function es(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function rs(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function vx(t){if(t instanceof ve)return new ve(t.h,t.c,t.l,t.opacity);if(t instanceof he||(t=Nu(t)),t.a===0&&t.b===0)return new ve(NaN,0()=>t;function Ru(t,e){return function(r){return t+r*e}}function kx(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(i){return Math.pow(t+i*e,r)}}function $u(t,e){var r=e-t;return r?Ru(t,r>180||r<-180?r-360*Math.round(r/360):r):jr(isNaN(t)?e:t)}function zu(t){return(t=+t)==1?ke:function(e,r){return r-e?kx(e,r,t):jr(isNaN(e)?r:e)}}function ke(t,e){var r=e-t;return r?Ru(t,r):jr(isNaN(t)?e:t)}function qu(t){return function(e,r){var i=t((e=Ni(e)).h,(r=Ni(r)).h),o=ke(e.c,r.c),n=ke(e.l,r.l),a=ke(e.opacity,r.opacity);return function(s){return e.h=i(s),e.c=o(s),e.l=n(s),e.opacity=a(s),e+""}}}var Sx=qu($u),wx=qu(ke);function os(t,e,r,i,o){var n=t*t,a=n*t;return((1-3*t+3*n-a)*e+(4-6*n+3*a)*r+(1+3*t+3*n-3*a)*i+a*o)/6}function Wu(t){var e=t.length-1;return function(r){var i=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),o=t[i],n=t[i+1],a=i>0?t[i-1]:2*o-n,s=ir&&(n=e.slice(r,n),s[a]?s[a]+=n:s[++a]=n),(i=i[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,l.push({i:a,x:Mt(i,o)})),r=ns.lastIndex;return r180?h+=360:h-c>180&&(c+=360),u.push({i:f.push(o(f)+"rotate(",null,i)-2,x:Mt(c,h)})):h&&f.push(o(f)+"rotate("+h+i)}function s(c,h,f,u){c!==h?u.push({i:f.push(o(f)+"skewX(",null,i)-2,x:Mt(c,h)}):h&&f.push(o(f)+"skewX("+h+i)}function l(c,h,f,u,p,x){if(c!==f||h!==u){var _=p.push(o(p)+"scale(",null,",",null,")");x.push({i:_-4,x:Mt(c,f)},{i:_-2,x:Mt(h,u)})}else(f!==1||u!==1)&&p.push(o(p)+"scale("+f+","+u+")")}return function(c,h){var f=[],u=[];return c=t(c),h=t(h),n(c.translateX,c.translateY,h.translateX,h.translateY,f,u),a(c.rotate,h.rotate,f,u),s(c.skewX,h.skewX,f,u),l(c.scaleX,c.scaleY,h.scaleX,h.scaleY,f,u),c=h=null,function(p){for(var x=-1,_=u.length,b;++x<_;)f[(b=u[x]).i]=b.x(p);return f.join("")}}}var cs=Ju(Zu,"px, ","px)","deg)"),us=Ju(Qu,", ",")",")");function Pe(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var hs=Symbol("implicit");function Ri(){var t=new zr,e=[],r=[],i=hs;function o(n){let a=t.get(n);if(a===void 0){if(i!==hs)return i;t.set(n,a=e.push(n)-1)}return r[a%r.length]}return o.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new zr;for(let a of n)t.has(a)||t.set(a,e.push(a)-1);return o},o.range=function(n){return arguments.length?(r=Array.from(n),o):r.slice()},o.unknown=function(n){return arguments.length?(i=n,o):i},o.copy=function(){return Ri(e,r).unknown(i)},Pe.apply(o,arguments),o}function fs(){var t=Ri().unknown(void 0),e=t.domain,r=t.range,i=0,o=1,n,a,s=!1,l=0,c=0,h=.5;delete t.unknown;function f(){var u=e().length,p=oe&&(r=t,t=e,e=r),function(i){return Math.max(t,Math.min(e,i))}}function Ex(t,e,r){var i=t[0],o=t[1],n=e[0],a=e[1];return o2?Ox:Ex,l=c=null,f}function f(u){return u==null||isNaN(u=+u)?n:(l||(l=s(t.map(i),e,r)))(i(a(u)))}return f.invert=function(u){return a(o((c||(c=s(e,t.map(i),Mt)))(u)))},f.domain=function(u){return arguments.length?(t=Array.from(u,ds),h()):t.slice()},f.range=function(u){return arguments.length?(e=Array.from(u),h()):e.slice()},f.rangeRound=function(u){return e=Array.from(u),r=ss,h()},f.clamp=function(u){return arguments.length?(a=u?!0:Gr,h()):a!==Gr},f.interpolate=function(u){return arguments.length?(r=u,h()):r},f.unknown=function(u){return arguments.length?(n=u,f):n},function(u,p){return i=u,o=p,h()}}function $i(){return Ix()(Gr,Gr)}function eh(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function pr(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,i=t.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+t.slice(r+1)]}function fe(t){return t=pr(Math.abs(t)),t?t[1]:NaN}function rh(t,e){return function(r,i){for(var o=r.length,n=[],a=0,s=t[0],l=0;o>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),n.push(r.substring(o-=s,o+s)),!((l+=s+1)>i));)s=t[a=(a+1)%t.length];return n.reverse().join(e)}}function ih(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var Dx=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Re(t){if(!(e=Dx.exec(t)))throw new Error("invalid format: "+t);var e;return new jo({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Re.prototype=jo.prototype;function jo(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}jo.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function oh(t){t:for(var e=t.length,r=1,i=-1,o;r0&&(i=0);break}return i>0?t.slice(0,i)+t.slice(o+1):t}var gs;function nh(t,e){var r=pr(t,e);if(!r)return t+"";var i=r[0],o=r[1],n=o-(gs=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=i.length;return n===a?i:n>a?i+new Array(n-a+1).join("0"):n>0?i.slice(0,n)+"."+i.slice(n):"0."+new Array(1-n).join("0")+pr(t,Math.max(0,e+n-1))[0]}function xs(t,e){var r=pr(t,e);if(!r)return t+"";var i=r[0],o=r[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}var ys={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:eh,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>xs(t*100,e),r:xs,s:nh,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function _s(t){return t}var ah=Array.prototype.map,sh=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function lh(t){var e=t.grouping===void 0||t.thousands===void 0?_s:rh(ah.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",i=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",n=t.numerals===void 0?_s:ih(ah.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function c(f){f=Re(f);var u=f.fill,p=f.align,x=f.sign,_=f.symbol,b=f.zero,w=f.width,v=f.comma,L=f.precision,E=f.trim,I=f.type;I==="n"?(v=!0,I="g"):ys[I]||(L===void 0&&(L=12),E=!0,I="g"),(b||u==="0"&&p==="=")&&(b=!0,u="0",p="=");var A=_==="$"?r:_==="#"&&/[boxX]/.test(I)?"0"+I.toLowerCase():"",y=_==="$"?i:/[%p]/.test(I)?a:"",$=ys[I],et=/[defgprs%]/.test(I);L=L===void 0?6:/[gprs]/.test(I)?Math.max(1,Math.min(21,L)):Math.max(0,Math.min(20,L));function rt(T){var C=A,g=y,B,F,N;if(I==="c")g=$(T)+g,T="";else{T=+T;var R=T<0||1/T<0;if(T=isNaN(T)?l:$(Math.abs(T),L),E&&(T=oh(T)),R&&+T==0&&x!=="+"&&(R=!1),C=(R?x==="("?x:s:x==="-"||x==="("?"":x)+C,g=(I==="s"?sh[8+gs/3]:"")+g+(R&&x==="("?")":""),et){for(B=-1,F=T.length;++BN||N>57){g=(N===46?o+T.slice(B+1):T.slice(B))+g,T=T.slice(0,B);break}}}v&&!b&&(T=e(T,1/0));var j=C.length+T.length+g.length,G=j>1)+C+T+g+G.slice(j);break;default:T=G+C+T+g;break}return n(T)}return rt.toString=function(){return f+""},rt}function h(f,u){var p=c((f=Re(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(fe(u)/3)))*3,_=Math.pow(10,-x),b=sh[8+x/3];return function(w){return p(_*w)+b}}return{format:c,formatPrefix:h}}var Go,Vo,Xo;Cs({thousands:",",grouping:[3],currency:["$",""]});function Cs(t){return Go=lh(t),Vo=Go.format,Xo=Go.formatPrefix,Go}function bs(t){return Math.max(0,-fe(Math.abs(t)))}function Ts(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fe(e)/3)))*3-fe(Math.abs(t)))}function vs(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,fe(e)-fe(t))+1}function ks(t,e,r,i){var o=qr(t,e,r),n;switch(i=Re(i??",f"),i.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return i.precision==null&&!isNaN(n=Ts(o,a))&&(i.precision=n),Xo(i,a)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(n=vs(o,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=n-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(n=bs(o))&&(i.precision=n-(i.type==="%")*2);break}}return Vo(i)}function Nx(t){var e=t.domain;return t.ticks=function(r){var i=e();return Fo(i[0],i[i.length-1],r??10)},t.tickFormat=function(r,i){var o=e();return ks(o[0],o[o.length-1],r??10,i)},t.nice=function(r){r==null&&(r=10);var i=e(),o=0,n=i.length-1,a=i[o],s=i[n],l,c,h=10;for(s0;){if(c=Ai(a,s,r),c===l)return i[o]=a,i[n]=s,e(i);if(c>0)a=Math.floor(a/c)*c,s=Math.ceil(s/c)*c;else if(c<0)a=Math.ceil(a*c)/c,s=Math.floor(s*c)/c;else break;l=c}return t},t}function Ss(){var t=$i();return t.copy=function(){return Yo(t,Ss())},Pe.apply(t,arguments),Nx(t)}var ws=new Date,Bs=new Date;function nt(t,e,r,i){function o(n){return t(n=arguments.length===0?new Date:new Date(+n)),n}return o.floor=n=>(t(n=new Date(+n)),n),o.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),o.round=n=>{let a=o(n),s=o.ceil(n);return n-a(e(n=new Date(+n),a==null?1:Math.floor(a)),n),o.range=(n,a,s)=>{let l=[];if(n=o.ceil(n),s=s==null?1:Math.floor(s),!(n0))return l;let c;do l.push(c=new Date(+n)),e(n,s),t(n);while(cnt(a=>{if(a>=a)for(;t(a),!n(a);)a.setTime(a-1)},(a,s)=>{if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!n(a););else for(;--s>=0;)for(;e(a,1),!n(a););}),r&&(o.count=(n,a)=>(ws.setTime(+n),Bs.setTime(+a),t(ws),t(Bs),Math.floor(r(ws,Bs))),o.every=n=>(n=Math.floor(n),!isFinite(n)||!(n>0)?null:n>1?o.filter(i?a=>i(a)%n===0:a=>o.count(0,a)%n===0):o)),o}var dr=nt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);dr.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?nt(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):dr);var ch=dr.range;var pe=nt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),uh=pe.range;var Vr=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),Px=Vr.range,Ko=nt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),Rx=Ko.range;var Xr=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),$x=Xr.range,Zo=nt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),zx=Zo.range;var Se=nt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),qx=Se.range,qi=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),Wx=qi.range,Qo=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),Ux=Qo.range;function xr(t){return nt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var we=xr(0),Kr=xr(1),fh=xr(2),ph=xr(3),$e=xr(4),dh=xr(5),mh=xr(6),gh=we.range,Hx=Kr.range,Yx=fh.range,jx=ph.range,Gx=$e.range,Vx=dh.range,Xx=mh.range;function yr(t){return nt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var _r=yr(0),Zr=yr(1),xh=yr(2),yh=yr(3),ze=yr(4),_h=yr(5),Ch=yr(6),bh=_r.range,Kx=Zr.range,Zx=xh.range,Qx=yh.range,Jx=ze.range,ty=_h.range,ey=Ch.range;var Qr=nt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),ry=Qr.range,Jo=nt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),iy=Jo.range;var Vt=nt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Vt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});var oy=Vt.range,ie=nt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());ie.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});var ny=ie.range;function vh(t,e,r,i,o,n){let a=[[pe,1,1e3],[pe,5,5*1e3],[pe,15,15*1e3],[pe,30,30*1e3],[n,1,6e4],[n,5,5*6e4],[n,15,15*6e4],[n,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[i,1,864e5],[i,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function s(c,h,f){let u=hb).right(a,u);if(p===a.length)return t.every(qr(c/31536e6,h/31536e6,f));if(p===0)return dr.every(Math.max(qr(c,h,f),1));let[x,_]=a[u/a[p-1][2]53)return null;"w"in k||(k.w=1),"Z"in k?(it=Ms(Wi(k.y,0,1)),X=it.getUTCDay(),it=X>4||X===0?Zr.ceil(it):Zr(it),it=qi.offset(it,(k.V-1)*7),k.y=it.getUTCFullYear(),k.m=it.getUTCMonth(),k.d=it.getUTCDate()+(k.w+6)%7):(it=Ls(Wi(k.y,0,1)),X=it.getDay(),it=X>4||X===0?Kr.ceil(it):Kr(it),it=Se.offset(it,(k.V-1)*7),k.y=it.getFullYear(),k.m=it.getMonth(),k.d=it.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),X="Z"in k?Ms(Wi(k.y,0,1)).getUTCDay():Ls(Wi(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(X+5)%7:k.w+k.U*7-(X+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,Ms(k)):Ls(k)}}function $(O,V,K,k){for(var Ft=0,it=V.length,X=K.length,P,Q;Ft=X)return-1;if(P=V.charCodeAt(Ft++),P===37){if(P=V.charAt(Ft++),Q=I[P in kh?V.charAt(Ft++):P],!Q||(k=Q(O,K,k))<0)return-1}else if(P!=K.charCodeAt(k++))return-1}return k}function et(O,V,K){var k=c.exec(V.slice(K));return k?(O.p=h.get(k[0].toLowerCase()),K+k[0].length):-1}function rt(O,V,K){var k=p.exec(V.slice(K));return k?(O.w=x.get(k[0].toLowerCase()),K+k[0].length):-1}function T(O,V,K){var k=f.exec(V.slice(K));return k?(O.w=u.get(k[0].toLowerCase()),K+k[0].length):-1}function C(O,V,K){var k=w.exec(V.slice(K));return k?(O.m=v.get(k[0].toLowerCase()),K+k[0].length):-1}function g(O,V,K){var k=_.exec(V.slice(K));return k?(O.m=b.get(k[0].toLowerCase()),K+k[0].length):-1}function B(O,V,K){return $(O,e,V,K)}function F(O,V,K){return $(O,r,V,K)}function N(O,V,K){return $(O,i,V,K)}function R(O){return a[O.getDay()]}function j(O){return n[O.getDay()]}function G(O){return l[O.getMonth()]}function Z(O){return s[O.getMonth()]}function at(O){return o[+(O.getHours()>=12)]}function Bt(O){return 1+~~(O.getMonth()/3)}function At(O){return a[O.getUTCDay()]}function Gt(O){return n[O.getUTCDay()]}function gt(O){return l[O.getUTCMonth()]}function Pt(O){return s[O.getUTCMonth()]}function ht(O){return o[+(O.getUTCHours()>=12)]}function It(O){return 1+~~(O.getUTCMonth()/3)}return{format:function(O){var V=A(O+="",L);return V.toString=function(){return O},V},parse:function(O){var V=y(O+="",!1);return V.toString=function(){return O},V},utcFormat:function(O){var V=A(O+="",E);return V.toString=function(){return O},V},utcParse:function(O){var V=y(O+="",!0);return V.toString=function(){return O},V}}}var kh={"-":"",_:" ",0:"0"},St=/^\s*\d+/,cy=/^%/,uy=/[\\^$*+?|[\]().{}]/g;function tt(t,e,r){var i=t<0?"-":"",o=(i?-t:t)+"",n=o.length;return i+(n[e.toLowerCase(),r]))}function fy(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.w=+i[0],r+i[0].length):-1}function py(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.u=+i[0],r+i[0].length):-1}function dy(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.U=+i[0],r+i[0].length):-1}function my(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.V=+i[0],r+i[0].length):-1}function gy(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.W=+i[0],r+i[0].length):-1}function Sh(t,e,r){var i=St.exec(e.slice(r,r+4));return i?(t.y=+i[0],r+i[0].length):-1}function wh(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function xy(t,e,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function yy(t,e,r){var i=St.exec(e.slice(r,r+1));return i?(t.q=i[0]*3-3,r+i[0].length):-1}function _y(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.m=i[0]-1,r+i[0].length):-1}function Bh(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.d=+i[0],r+i[0].length):-1}function Cy(t,e,r){var i=St.exec(e.slice(r,r+3));return i?(t.m=0,t.d=+i[0],r+i[0].length):-1}function Ah(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.H=+i[0],r+i[0].length):-1}function by(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.M=+i[0],r+i[0].length):-1}function Ty(t,e,r){var i=St.exec(e.slice(r,r+2));return i?(t.S=+i[0],r+i[0].length):-1}function vy(t,e,r){var i=St.exec(e.slice(r,r+3));return i?(t.L=+i[0],r+i[0].length):-1}function ky(t,e,r){var i=St.exec(e.slice(r,r+6));return i?(t.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function Sy(t,e,r){var i=cy.exec(e.slice(r,r+1));return i?r+i[0].length:-1}function wy(t,e,r){var i=St.exec(e.slice(r));return i?(t.Q=+i[0],r+i[0].length):-1}function By(t,e,r){var i=St.exec(e.slice(r));return i?(t.s=+i[0],r+i[0].length):-1}function Fh(t,e){return tt(t.getDate(),e,2)}function Ay(t,e){return tt(t.getHours(),e,2)}function Fy(t,e){return tt(t.getHours()%12||12,e,2)}function Ly(t,e){return tt(1+Se.count(Vt(t),t),e,3)}function Ih(t,e){return tt(t.getMilliseconds(),e,3)}function My(t,e){return Ih(t,e)+"000"}function Ey(t,e){return tt(t.getMonth()+1,e,2)}function Oy(t,e){return tt(t.getMinutes(),e,2)}function Iy(t,e){return tt(t.getSeconds(),e,2)}function Dy(t){var e=t.getDay();return e===0?7:e}function Ny(t,e){return tt(we.count(Vt(t)-1,t),e,2)}function Dh(t){var e=t.getDay();return e>=4||e===0?$e(t):$e.ceil(t)}function Py(t,e){return t=Dh(t),tt($e.count(Vt(t),t)+(Vt(t).getDay()===4),e,2)}function Ry(t){return t.getDay()}function $y(t,e){return tt(Kr.count(Vt(t)-1,t),e,2)}function zy(t,e){return tt(t.getFullYear()%100,e,2)}function qy(t,e){return t=Dh(t),tt(t.getFullYear()%100,e,2)}function Wy(t,e){return tt(t.getFullYear()%1e4,e,4)}function Uy(t,e){var r=t.getDay();return t=r>=4||r===0?$e(t):$e.ceil(t),tt(t.getFullYear()%1e4,e,4)}function Hy(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+tt(e/60|0,"0",2)+tt(e%60,"0",2)}function Lh(t,e){return tt(t.getUTCDate(),e,2)}function Yy(t,e){return tt(t.getUTCHours(),e,2)}function jy(t,e){return tt(t.getUTCHours()%12||12,e,2)}function Gy(t,e){return tt(1+qi.count(ie(t),t),e,3)}function Nh(t,e){return tt(t.getUTCMilliseconds(),e,3)}function Vy(t,e){return Nh(t,e)+"000"}function Xy(t,e){return tt(t.getUTCMonth()+1,e,2)}function Ky(t,e){return tt(t.getUTCMinutes(),e,2)}function Zy(t,e){return tt(t.getUTCSeconds(),e,2)}function Qy(t){var e=t.getUTCDay();return e===0?7:e}function Jy(t,e){return tt(_r.count(ie(t)-1,t),e,2)}function Ph(t){var e=t.getUTCDay();return e>=4||e===0?ze(t):ze.ceil(t)}function t_(t,e){return t=Ph(t),tt(ze.count(ie(t),t)+(ie(t).getUTCDay()===4),e,2)}function e_(t){return t.getUTCDay()}function r_(t,e){return tt(Zr.count(ie(t)-1,t),e,2)}function i_(t,e){return tt(t.getUTCFullYear()%100,e,2)}function o_(t,e){return t=Ph(t),tt(t.getUTCFullYear()%100,e,2)}function n_(t,e){return tt(t.getUTCFullYear()%1e4,e,4)}function a_(t,e){var r=t.getUTCDay();return t=r>=4||r===0?ze(t):ze.ceil(t),tt(t.getUTCFullYear()%1e4,e,4)}function s_(){return"+0000"}function Mh(){return"%"}function Eh(t){return+t}function Oh(t){return Math.floor(+t/1e3)}var Jr,tn,Rh,$h,zh;Os({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Os(t){return Jr=Es(t),tn=Jr.format,Rh=Jr.parse,$h=Jr.utcFormat,zh=Jr.utcParse,Jr}function Is(t,e){t=t.slice();var r=0,i=t.length-1,o=t[r],n=t[i],a;return n1?0:t<-1?ti:Math.acos(t)}function Ns(t){return t>=1?Yi:t<=-1?-Yi:Math.asin(t)}var Ps=Math.PI,Rs=2*Ps,br=1e-6,h_=Rs-br;function jh(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return jh;let r=10**e;return function(i){this._+=i[0];for(let o=1,n=i.length;obr)if(!(Math.abs(f*l-c*h)>br)||!n)this._append`L${this._x1=e},${this._y1=r}`;else{let p=i-a,x=o-s,_=l*l+c*c,b=p*p+x*x,w=Math.sqrt(_),v=Math.sqrt(u),L=n*Math.tan((Ps-Math.acos((_+u-b)/(2*w*v)))/2),E=L/v,I=L/w;Math.abs(E-1)>br&&this._append`L${e+E*h},${r+E*f}`,this._append`A${n},${n},0,0,${+(f*p>h*x)},${this._x1=e+I*l},${this._y1=r+I*c}`}}arc(e,r,i,o,n,a){if(e=+e,r=+r,i=+i,a=!!a,i<0)throw new Error(`negative radius: ${i}`);let s=i*Math.cos(o),l=i*Math.sin(o),c=e+s,h=r+l,f=1^a,u=a?o-n:n-o;this._x1===null?this._append`M${c},${h}`:(Math.abs(this._x1-c)>br||Math.abs(this._y1-h)>br)&&this._append`L${c},${h}`,i&&(u<0&&(u=u%Rs+Rs),u>h_?this._append`A${i},${i},0,1,${f},${e-s},${r-l}A${i},${i},0,1,${f},${this._x1=c},${this._y1=h}`:u>br&&this._append`A${i},${i},0,${+(u>=Ps)},${f},${this._x1=e+i*Math.cos(n)},${this._y1=r+i*Math.sin(n)}`)}rect(e,r,i,o){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${i=+i}v${+o}h${-i}Z`}toString(){return this._}};function Gh(){return new Tr}Gh.prototype=Tr.prototype;function rn(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let i=Math.floor(r);if(!(i>=0))throw new RangeError(`invalid digits: ${r}`);e=i}return t},()=>new Tr(e)}function p_(t){return t.innerRadius}function d_(t){return t.outerRadius}function m_(t){return t.startAngle}function g_(t){return t.endAngle}function x_(t){return t&&t.padAngle}function y_(t,e,r,i,o,n,a,s){var l=r-t,c=i-e,h=a-o,f=s-n,u=f*l-h*c;if(!(u*uB*B+F*F&&($=rt,et=T),{cx:$,cy:et,x01:-h,y01:-f,x11:$*(o/I-1),y11:et*(o/I-1)}}function __(){var t=p_,e=d_,r=ct(0),i=null,o=m_,n=g_,a=x_,s=null,l=rn(c);function c(){var h,f,u=+t.apply(this,arguments),p=+e.apply(this,arguments),x=o.apply(this,arguments)-Yi,_=n.apply(this,arguments)-Yi,b=Ds(_-x),w=_>x;if(s||(s=h=l()),pwt))s.moveTo(0,0);else if(b>ei-wt)s.moveTo(p*qe(x),p*oe(x)),s.arc(0,0,p,x,_,!w),u>wt&&(s.moveTo(u*qe(_),u*oe(_)),s.arc(0,0,u,_,x,w));else{var v=x,L=_,E=x,I=_,A=b,y=b,$=a.apply(this,arguments)/2,et=$>wt&&(i?+i.apply(this,arguments):Cr(u*u+p*p)),rt=en(Ds(p-u)/2,+r.apply(this,arguments)),T=rt,C=rt,g,B;if(et>wt){var F=Ns(et/u*oe($)),N=Ns(et/p*oe($));(A-=F*2)>wt?(F*=w?1:-1,E+=F,I-=F):(A=0,E=I=(x+_)/2),(y-=N*2)>wt?(N*=w?1:-1,v+=N,L-=N):(y=0,v=L=(x+_)/2)}var R=p*qe(v),j=p*oe(v),G=u*qe(I),Z=u*oe(I);if(rt>wt){var at=p*qe(L),Bt=p*oe(L),At=u*qe(E),Gt=u*oe(E),gt;if(bwt?C>wt?(g=on(At,Gt,R,j,p,C,w),B=on(at,Bt,G,Z,p,C,w),s.moveTo(g.cx+g.x01,g.cy+g.y01),Cwt)||!(A>wt)?s.lineTo(G,Z):T>wt?(g=on(G,Z,at,Bt,u,-T,w),B=on(R,j,At,Gt,u,-T,w),s.lineTo(g.cx+g.x01,g.cy+g.y01),Tt?1:e>=t?0:NaN}function Qh(t){return t}function b_(){var t=Qh,e=Zh,r=null,i=ct(0),o=ct(ei),n=ct(0);function a(s){var l,c=(s=nn(s)).length,h,f,u=0,p=new Array(c),x=new Array(c),_=+i.apply(this,arguments),b=Math.min(ei,Math.max(-ei,o.apply(this,arguments)-_)),w,v=Math.min(Math.abs(b)/c,n.apply(this,arguments)),L=v*(b<0?-1:1),E;for(l=0;l0&&(u+=E);for(e!=null?p.sort(function(I,A){return e(x[I],x[A])}):r!=null&&p.sort(function(I,A){return r(s[I],s[A])}),l=0,f=u?(b-c*L)/u:0;l0?E*f:0)+L,x[h]={data:s[h],index:l,value:E,startAngle:_,endAngle:w,padAngle:v};return x}return a.value=function(s){return arguments.length?(t=typeof s=="function"?s:ct(+s),a):t},a.sortValues=function(s){return arguments.length?(e=s,r=null,a):e},a.sort=function(s){return arguments.length?(r=s,e=null,a):r},a.startAngle=function(s){return arguments.length?(i=typeof s=="function"?s:ct(+s),a):i},a.endAngle=function(s){return arguments.length?(o=typeof s=="function"?s:ct(+s),a):o},a.padAngle=function(s){return arguments.length?(n=typeof s=="function"?s:ct(+s),a):n},a}function ri(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Gi(t){this._context=t}Gi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ri(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function $s(t){return new Gi(t)}var an=class{constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};function zs(t){return new an(t,!0)}function qs(t){return new an(t,!1)}function Kt(){}function Jh(t){this._context=t}Jh.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ws(t){return new Jh(t)}function tf(t){this._context=t}tf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:ri(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Us(t){return new tf(t)}function ef(t,e){this._basis=new Gi(t),this._beta=e}ef.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var i=t[0],o=e[0],n=t[r]-i,a=e[r]-o,s=-1,l;++s<=r;)l=s/r,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+l*n),this._beta*e[s]+(1-this._beta)*(o+l*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Hs=function t(e){function r(i){return e===1?new Gi(i):new ef(i,e)}return r.beta=function(i){return t(+i)},r}(.85);function ii(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function sn(t,e){this._context=t,this._k=(1-e)/6}sn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:ii(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ys=function t(e){function r(i){return new sn(i,e)}return r.tension=function(i){return t(+i)},r}(0);function ln(t,e){this._context=t,this._k=(1-e)/6}ln.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var js=function t(e){function r(i){return new ln(i,e)}return r.tension=function(i){return t(+i)},r}(0);function cn(t,e){this._context=t,this._k=(1-e)/6}cn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ii(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Gs=function t(e){function r(i){return new cn(i,e)}return r.tension=function(i){return t(+i)},r}(0);function Vi(t,e,r){var i=t._x1,o=t._y1,n=t._x2,a=t._y2;if(t._l01_a>wt){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,o=(o*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>wt){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);n=(n*c+t._x1*t._l23_2a-e*t._l12_2a)/h,a=(a*c+t._y1*t._l23_2a-r*t._l12_2a)/h}t._context.bezierCurveTo(i,o,n,a,t._x2,t._y2)}function rf(t,e){this._context=t,this._alpha=e}rf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Vs=function t(e){function r(i){return e?new rf(i,e):new sn(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function of(t,e){this._context=t,this._alpha=e}of.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Xs=function t(e){function r(i){return e?new of(i,e):new ln(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function nf(t,e){this._context=t,this._alpha=e}nf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vi(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ks=function t(e){function r(i){return e?new nf(i,e):new cn(i,0)}return r.alpha=function(i){return t(+i)},r}(.5);function af(t){this._context=t}af.prototype={areaStart:Kt,areaEnd:Kt,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Zs(t){return new af(t)}function sf(t){return t<0?-1:1}function lf(t,e,r){var i=t._x1-t._x0,o=e-t._x1,n=(t._y1-t._y0)/(i||o<0&&-0),a=(r-t._y1)/(o||i<0&&-0),s=(n*o+a*i)/(i+o);return(sf(n)+sf(a))*Math.min(Math.abs(n),Math.abs(a),.5*Math.abs(s))||0}function cf(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Qs(t,e,r){var i=t._x0,o=t._y0,n=t._x1,a=t._y1,s=(n-i)/3;t._context.bezierCurveTo(i+s,o+s*e,n-s,a-s*r,n,a)}function un(t){this._context=t}un.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Qs(this,this._t0,cf(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Qs(this,cf(this,r=lf(this,t,e)),r);break;default:Qs(this,this._t0,r=lf(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function uf(t){this._context=new hf(t)}(uf.prototype=Object.create(un.prototype)).point=function(t,e){un.prototype.point.call(this,e,t)};function hf(t){this._context=t}hf.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,i,o,n){this._context.bezierCurveTo(e,t,i,r,n,o)}};function Js(t){return new un(t)}function tl(t){return new uf(t)}function pf(t){this._context=t}pf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var i=ff(t),o=ff(e),n=0,a=1;a=0;--e)o[e]=(a[e]-o[e+1])/n[e];for(n[r-1]=(t[r]+o[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function rl(t){return new hn(t,.5)}function il(t){return new hn(t,0)}function ol(t){return new hn(t,1)}var T_={value:()=>{}};function mf(){for(var t=0,e=arguments.length,r={},i;t=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}fn.prototype=mf.prototype={constructor:fn,on:function(t,e){var r=this._,i=v_(t+"",r),o,n=-1,a=i.length;if(arguments.length<2){for(;++n0)for(var r=new Array(o),i=0,o,n;i=0&&t._call.call(void 0,e),t=t._next;--oi}function gf(){vr=(dn=Qi.now())+mn,oi=Ki=0;try{_f()}finally{oi=0,B_(),vr=0}}function w_(){var t=Qi.now(),e=t-dn;e>xf&&(mn-=e,dn=t)}function B_(){for(var t,e=pn,r,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:pn=r);Zi=t,al(i)}function al(t){if(!oi){Ki&&(Ki=clearTimeout(Ki));var e=t-vr;e>24?(t<1/0&&(Ki=setTimeout(gf,t-Qi.now()-mn)),Xi&&(Xi=clearInterval(Xi))):(Xi||(dn=Qi.now(),Xi=setInterval(w_,xf)),oi=1,yf(gf))}}function xn(t,e,r){var i=new Ji;return e=e==null?0:+e,i.restart(o=>{i.stop(),t(o+e)},e,r),i}var A_=nl("start","end","cancel","interrupt"),F_=[],Tf=0,Cf=1,_n=2,yn=3,bf=4,Cn=5,eo=6;function We(t,e,r,i,o,n){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;L_(t,r,{name:e,index:i,group:o,on:A_,tween:F_,time:n.time,delay:n.delay,duration:n.duration,ease:n.ease,timer:null,state:Tf})}function ro(t,e){var r=xt(t,e);if(r.state>Tf)throw new Error("too late; already scheduled");return r}function Ot(t,e){var r=xt(t,e);if(r.state>yn)throw new Error("too late; already running");return r}function xt(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function L_(t,e,r){var i=t.__transition,o;i[e]=r,r.timer=gn(n,0,r.time);function n(c){r.state=Cf,r.timer.restart(a,r.delay,r.time),r.delay<=c&&a(c-r.delay)}function a(c){var h,f,u,p;if(r.state!==Cf)return l();for(h in i)if(p=i[h],p.name===r.name){if(p.state===yn)return xn(a);p.state===bf?(p.state=eo,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete i[h]):+h_n&&i.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function K_(t,e,r){var i,o,n=X_(e)?ro:Ot;return function(){var a=n(this,t),s=a.on;s!==i&&(o=(i=s).copy()).on(e,r),a.on=o}}function Of(t,e){var r=this._id;return arguments.length<2?xt(this.node(),r).on.on(t):this.each(K_(r,t,e))}function Z_(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function If(){return this.on("end.remove",Z_(this._id))}function Df(t){var e=this._name,r=this._id;typeof t!="function"&&(t=sr(t));for(var i=this._groups,o=i.length,n=new Array(o),a=0;aVf(e,r).then(i=>new DOMParser().parseFromString(i,t))}var dC=ll("application/xml"),mC=ll("text/html"),gC=ll("image/svg+xml");function Ue(t,e,r){this.k=t,this.x=e,this.y=r}Ue.prototype={constructor:Ue,scale:function(t){return t===1?this:new Ue(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Ue(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var cl=new Ue(1,0,0);ul.prototype=Ue.prototype;function ul(t){for(;!t.__zoom;)if(!(t=t.parentNode))return cl;return t.__zoom}var Sn={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:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),hsl2rgb:({h:t,s:e,l:r},i)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let o=r<.5?r*(1+e):r+e-r*e,n=2*r-o;switch(i){case"r":return Sn.hue2rgb(n,o,t+.3333333333333333)*255;case"g":return Sn.hue2rgb(n,o,t)*255;case"b":return Sn.hue2rgb(n,o,t-.3333333333333333)*255}},rgb2hsl:({r:t,g:e,b:r},i)=>{t/=255,e/=255,r/=255;let o=Math.max(t,e,r),n=Math.min(t,e,r),a=(o+n)/2;if(i==="l")return a*100;if(o===n)return 0;let s=o-n,l=a>.5?s/(2-o-n):s/(o+n);if(i==="s")return l*100;switch(o){case t:return((e-r)/s+(ee>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},Zf=xC;var yC={dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Qf=yC;var _C={channel:Kf,lang:Zf,unit:Qf},q=_C;var Ae={};for(let t=0;t<=255;t++)Ae[t]=q.unit.dec2hex(t);var yt={ALL:0,RGB:1,HSL:2};var pl=class{constructor(){this.type=yt.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=yt.ALL}is(e){return this.type===e}},Jf=pl;var dl=class{constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new Jf}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=yt.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:i,l:o}=e;r===void 0&&(e.h=q.channel.rgb2hsl(e,"h")),i===void 0&&(e.s=q.channel.rgb2hsl(e,"s")),o===void 0&&(e.l=q.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:i,b:o}=e;r===void 0&&(e.r=q.channel.hsl2rgb(e,"r")),i===void 0&&(e.g=q.channel.hsl2rgb(e,"g")),o===void 0&&(e.b=q.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(yt.HSL)&&r!==void 0?r:(this._ensureHSL(),q.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(yt.RGB)&&r!==void 0?r:(this._ensureRGB(),q.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(yt.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(yt.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(yt.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(yt.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(yt.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(yt.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},tp=dl;var CC=new tp({r:0,g:0,b:0,a:0},"transparent"),He=CC;var ep={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(ep.re);if(!e)return;let r=e[1],i=parseInt(r,16),o=r.length,n=o%4===0,a=o>4,s=a?1:17,l=a?8:4,c=n?0:-1,h=a?255:15;return He.set({r:(i>>l*(c+3)&h)*s,g:(i>>l*(c+2)&h)*s,b:(i>>l*(c+1)&h)*s,a:n?(i&h)*s/255:1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`#${Ae[Math.round(e)]}${Ae[Math.round(r)]}${Ae[Math.round(i)]}${Ae[Math.round(o*255)]}`:`#${Ae[Math.round(e)]}${Ae[Math.round(r)]}${Ae[Math.round(i)]}`}},kr=ep;var wn={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(wn.hueRe);if(e){let[,r,i]=e;switch(i){case"grad":return q.channel.clamp.h(parseFloat(r)*.9);case"rad":return q.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return q.channel.clamp.h(parseFloat(r)*360)}}return q.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(wn.re);if(!r)return;let[,i,o,n,a,s]=r;return He.set({h:wn._hue2deg(i),s:q.channel.clamp.s(parseFloat(o)),l:q.channel.clamp.l(parseFloat(n)),a:a?q.channel.clamp.a(s?parseFloat(a)/100:parseFloat(a)):1},t)},stringify:t=>{let{h:e,s:r,l:i,a:o}=t;return o<1?`hsla(${q.lang.round(e)}, ${q.lang.round(r)}%, ${q.lang.round(i)}%, ${o})`:`hsl(${q.lang.round(e)}, ${q.lang.round(r)}%, ${q.lang.round(i)}%)`}},io=wn;var Bn={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=Bn.colors[t];if(e)return kr.parse(e)},stringify:t=>{let e=kr.stringify(t);for(let r in Bn.colors)if(Bn.colors[r]===e)return r}},ml=Bn;var rp={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(rp.re);if(!r)return;let[,i,o,n,a,s,l,c,h]=r;return He.set({r:q.channel.clamp.r(o?parseFloat(i)*2.55:parseFloat(i)),g:q.channel.clamp.g(a?parseFloat(n)*2.55:parseFloat(n)),b:q.channel.clamp.b(l?parseFloat(s)*2.55:parseFloat(s)),a:c?q.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{let{r:e,g:r,b:i,a:o}=t;return o<1?`rgba(${q.lang.round(e)}, ${q.lang.round(r)}, ${q.lang.round(i)}, ${q.lang.round(o)})`:`rgb(${q.lang.round(e)}, ${q.lang.round(r)}, ${q.lang.round(i)})`}},oo=rp;var bC={format:{keyword:ml,hex:kr,rgb:oo,rgba:oo,hsl:io,hsla:io},parse:t=>{if(typeof t!="string")return t;let e=kr.parse(t)||oo.parse(t)||io.parse(t)||ml.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(yt.HSL)||t.data.r===void 0?io.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?oo.stringify(t):kr.stringify(t)},_t=bC;var TC=t=>{let{r:e,g:r,b:i}=_t.parse(t),o=.2126*q.channel.toLinear(e)+.7152*q.channel.toLinear(r)+.0722*q.channel.toLinear(i);return q.lang.round(o)},ip=TC;var vC=t=>ip(t)>=.5,op=vC;var kC=t=>!op(t),Sr=kC;var SC=(t,e,r)=>{let i=_t.parse(t),o=i[e],n=q.channel.clamp[e](o+r);return o!==n&&(i[e]=n),_t.stringify(i)},An=SC;var wC=(t,e)=>An(t,"l",e),z=wC;var BC=(t,e)=>An(t,"l",-e),H=BC;var AC=(t,e)=>{let r=_t.parse(t);for(let i in e)r[i]=q.channel.clamp[i](e[i]);return _t.stringify(r)},Fn=AC;var FC=(t,e,r=0,i=1)=>{if(typeof t!="number")return Fn(t,{a:e});let o=He.set({r:q.channel.clamp.r(t),g:q.channel.clamp.g(e),b:q.channel.clamp.b(r),a:q.channel.clamp.a(i)});return _t.stringify(o)},Ye=FC;var LC=(t,e)=>q.lang.round(_t.parse(t)[e]),MC=LC;var EC=(t,e)=>{let r=_t.parse(t),i={};for(let o in e)e[o]&&(i[o]=r[o]+e[o]);return Fn(t,i)},m=EC;var OC=(t,e,r=50)=>{let{r:i,g:o,b:n,a}=_t.parse(t),{r:s,g:l,b:c,a:h}=_t.parse(e),f=r/100,u=f*2-1,p=a-h,_=((u*p===-1?u:(u+p)/(1+u*p))+1)/2,b=1-_,w=i*_+s*b,v=o*_+l*b,L=n*_+c*b,E=a*f+h*(1-f);return Ye(w,v,L,E)},np=OC;var IC=(t,e=100)=>{let r=_t.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,np(r,t,e)},M=IC;var DC=typeof global=="object"&&global&&global.Object===Object&&global,Ln=DC;var NC=typeof self=="object"&&self&&self.Object===Object&&self,PC=Ln||NC||Function("return this")(),pt=PC;var RC=pt.Symbol,ai=RC;var ap=Object.prototype,$C=ap.hasOwnProperty,zC=ap.toString,no=ai?ai.toStringTag:void 0;function qC(t){var e=$C.call(t,no),r=t[no];try{t[no]=void 0;var i=!0}catch{}var o=zC.call(t);return i&&(e?t[no]=r:delete t[no]),o}var sp=qC;var WC=Object.prototype,UC=WC.toString;function HC(t){return UC.call(t)}var lp=HC;var YC="[object Null]",jC="[object Undefined]",cp=ai?ai.toStringTag:void 0;function GC(t){return t==null?t===void 0?jC:YC:cp&&cp in Object(t)?sp(t):lp(t)}var ne=GC;function VC(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Ut=VC;var XC="[object AsyncFunction]",KC="[object Function]",ZC="[object GeneratorFunction]",QC="[object Proxy]";function JC(t){if(!Ut(t))return!1;var e=ne(t);return e==KC||e==ZC||e==XC||e==QC}var si=JC;var t1=pt["__core-js_shared__"],Mn=t1;var up=function(){var t=/[^.]+$/.exec(Mn&&Mn.keys&&Mn.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function e1(t){return!!up&&up in t}var hp=e1;var r1=Function.prototype,i1=r1.toString;function o1(t){if(t!=null){try{return i1.call(t)}catch{}try{return t+""}catch{}}return""}var Fe=o1;var n1=/[\\^$.*+?()[\]{}|]/g,a1=/^\[object .+?Constructor\]$/,s1=Function.prototype,l1=Object.prototype,c1=s1.toString,u1=l1.hasOwnProperty,h1=RegExp("^"+c1.call(u1).replace(n1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f1(t){if(!Ut(t)||hp(t))return!1;var e=si(t)?h1:a1;return e.test(Fe(t))}var fp=f1;function p1(t,e){return t?.[e]}var pp=p1;function d1(t,e){var r=pp(t,e);return fp(r)?r:void 0}var Ht=d1;var m1=Ht(Object,"create"),Le=m1;function g1(){this.__data__=Le?Le(null):{},this.size=0}var dp=g1;function x1(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var mp=x1;var y1="__lodash_hash_undefined__",_1=Object.prototype,C1=_1.hasOwnProperty;function b1(t){var e=this.__data__;if(Le){var r=e[t];return r===y1?void 0:r}return C1.call(e,t)?e[t]:void 0}var gp=b1;var T1=Object.prototype,v1=T1.hasOwnProperty;function k1(t){var e=this.__data__;return Le?e[t]!==void 0:v1.call(e,t)}var xp=k1;var S1="__lodash_hash_undefined__";function w1(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Le&&e===void 0?S1:e,this}var yp=w1;function li(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Tp=I1;function D1(t,e){var r=this.__data__,i=Ge(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}var vp=D1;function ci(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=bb}var Dn=Tb;function vb(t){return t!=null&&Dn(t.length)&&!si(t)}var Qe=vb;function kb(t){return me(t)&&Qe(t)}var Kp=kb;function Sb(){return!1}var Zp=Sb;var td=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qp=td&&typeof module=="object"&&module&&!module.nodeType&&module,wb=Qp&&Qp.exports===td,Jp=wb?pt.Buffer:void 0,Bb=Jp?Jp.isBuffer:void 0,Ab=Bb||Zp,di=Ab;var Fb="[object Object]",Lb=Function.prototype,Mb=Object.prototype,ed=Lb.toString,Eb=Mb.hasOwnProperty,Ob=ed.call(Object);function Ib(t){if(!me(t)||ne(t)!=Fb)return!1;var e=In(t);if(e===null)return!0;var r=Eb.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&ed.call(r)==Ob}var rd=Ib;var Db="[object Arguments]",Nb="[object Array]",Pb="[object Boolean]",Rb="[object Date]",$b="[object Error]",zb="[object Function]",qb="[object Map]",Wb="[object Number]",Ub="[object Object]",Hb="[object RegExp]",Yb="[object Set]",jb="[object String]",Gb="[object WeakMap]",Vb="[object ArrayBuffer]",Xb="[object DataView]",Kb="[object Float32Array]",Zb="[object Float64Array]",Qb="[object Int8Array]",Jb="[object Int16Array]",tT="[object Int32Array]",eT="[object Uint8Array]",rT="[object Uint8ClampedArray]",iT="[object Uint16Array]",oT="[object Uint32Array]",lt={};lt[Kb]=lt[Zb]=lt[Qb]=lt[Jb]=lt[tT]=lt[eT]=lt[rT]=lt[iT]=lt[oT]=!0;lt[Db]=lt[Nb]=lt[Vb]=lt[Pb]=lt[Xb]=lt[Rb]=lt[$b]=lt[zb]=lt[qb]=lt[Wb]=lt[Ub]=lt[Hb]=lt[Yb]=lt[jb]=lt[Gb]=!1;function nT(t){return me(t)&&Dn(t.length)&&!!lt[ne(t)]}var id=nT;function aT(t){return function(e){return t(e)}}var od=aT;var nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lo=nd&&typeof module=="object"&&module&&!module.nodeType&&module,sT=lo&&lo.exports===nd,Cl=sT&&Ln.process,lT=function(){try{var t=lo&&lo.require&&lo.require("util").types;return t||Cl&&Cl.binding&&Cl.binding("util")}catch{}}(),bl=lT;var ad=bl&&bl.isTypedArray,cT=ad?od(ad):id,mi=cT;function uT(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var co=uT;var hT=Object.prototype,fT=hT.hasOwnProperty;function pT(t,e,r){var i=t[e];(!(fT.call(t,e)&&je(i,r))||r===void 0&&!(e in t))&&pi(t,e,r)}var sd=pT;function dT(t,e,r,i){var o=!r;r||(r={});for(var n=-1,a=e.length;++n-1&&t%1==0&&t0){if(++e>=IT)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Td=PT;var RT=Td(bd),vd=RT;function $T(t,e){return vd(_d(t,e,Rn),t+"")}var kd=$T;function zT(t,e,r){if(!Ut(r))return!1;var i=typeof e;return(i=="number"?Qe(r)&&Nn(e,r.length):i=="string"&&e in r)?je(r[e],t):!1}var Sd=zT;function qT(t){return kd(function(e,r){var i=-1,o=r.length,n=o>1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(o--,n):void 0,a&&Sd(r[0],r[1],a)&&(n=o<3?void 0:n,o=1),e=Object(e);++i0?Fr(yi,--Zt):0,xi--,dt===10&&(xi=1,Kn--),dt}function Qt(){return dt=Zt2||Tl(dt)>3?"":" "}function jd(t,e){for(;--e&&Qt()&&!(dt<48||dt>102||dt>57&&dt<65||dt>70&&dt<97););return Qn(t,ho()+(e<6&&Je()==32&&Qt()==32))}function vl(t){for(;Qt();)switch(dt){case t:return Zt;case 34:case 39:t!==34&&t!==39&&vl(dt);break;case 40:t===41&&vl(t);break;case 92:Qt();break}return Zt}function Gd(t,e){for(;Qt()&&t+dt!==57;)if(t+dt===84&&Je()===47)break;return"/*"+Qn(e,Zt-1)+"*"+uo(t===47?t:Qt())}function Vd(t){for(;!Tl(Je());)Qt();return Qn(t,Zt)}function Zd(t){return Hd(ta("",null,null,null,[""],t=Ud(t),0,[0],t))}function ta(t,e,r,i,o,n,a,s,l){for(var c=0,h=0,f=a,u=0,p=0,x=0,_=1,b=1,w=1,v=0,L="",E=o,I=n,A=i,y=L;b;)switch(x=v,v=Qt()){case 40:if(x!=108&&Fr(y,f-1)==58){$d(y+=Vn(Jn(v),"&","&\f"),"&\f")!=-1&&(w=-1);break}case 34:case 39:case 91:y+=Jn(v);break;case 9:case 10:case 13:case 32:y+=Yd(x);break;case 92:y+=jd(ho()-1,7);continue;case 47:switch(Je()){case 42:case 47:gi(lv(Gd(Qt(),ho()),e,r),l);break;default:y+="/"}break;case 123*_:s[c++]=ae(y)*w;case 125*_:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+h:p>0&&ae(y)-f&&gi(p>32?Kd(y+";",i,r,f-1):Kd(Vn(y," ","")+";",i,r,f-2),l);break;case 59:y+=";";default:if(gi(A=Xd(y,e,r,c,h,o,s,L,E=[],I=[],f),n),v===123)if(h===0)ta(y,e,A,A,E,n,f,s,I);else switch(u===99&&Fr(y,3)===110?100:u){case 100:case 109:case 115:ta(t,A,A,i&&gi(Xd(t,A,A,0,0,o,s,L,o,E=[],f),I),o,I,f,s,i?E:I);break;default:ta(y,A,A,A,[""],I,0,s,I)}}c=h=p=0,_=w=1,L=y="",f=a;break;case 58:f=1+ae(y),p=x;default:if(_<1){if(v==123)--_;else if(v==125&&_++==0&&Wd()==125)continue}switch(y+=uo(v),v*_){case 38:w=h>0?1:(y+="\f",-1);break;case 44:s[c++]=(ae(y)-1)*w,w=1;break;case 64:Je()===45&&(y+=Jn(Qt())),u=Je(),h=f=ae(L=y+=Vd(ho())),v++;break;case 45:x===45&&ae(y)==2&&(_=0)}}return n}function Xd(t,e,r,i,o,n,a,s,l,c,h){for(var f=o-1,u=o===0?n:[""],p=Xn(u),x=0,_=0,b=0;x0?u[w]+" "+v:Vn(v,/&\f/g,u[w])))&&(l[b++]=L);return Zn(t,e,r,o===0?Yn:s,l,c,h)}function lv(t,e,r){return Zn(t,e,r,Hn,uo(qd()),Lr(t,2,-2),0)}function Kd(t,e,r,i){return Zn(t,e,r,jn,Lr(t,0,i),Lr(t,i+1,-1),i)}function ea(t,e){for(var r="",i=Xn(t),o=0;o{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Dl=function(t="fatal"){let e=Me.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Me&&(e=Me[t])):typeof t=="number"&&(e=t),Y.trace=()=>{},Y.debug=()=>{},Y.info=()=>{},Y.warn=()=>{},Y.error=()=>{},Y.fatal=()=>{},e<=Me.fatal&&(Y.fatal=console.error?console.error.bind(console,Jt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Jt("FATAL"))),e<=Me.error&&(Y.error=console.error?console.error.bind(console,Jt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Jt("ERROR"))),e<=Me.warn&&(Y.warn=console.warn?console.warn.bind(console,Jt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Jt("WARN"))),e<=Me.info&&(Y.info=console.info?console.info.bind(console,Jt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Jt("INFO"))),e<=Me.debug&&(Y.debug=console.debug?console.debug.bind(console,Jt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Jt("DEBUG"))),e<=Me.trace&&(Y.trace=console.debug?console.debug.bind(console,Jt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Jt("TRACE")))},Jt=t=>`%c${(0,mm.default)().format("ss.SSS")} : ${t} : `,ma=//gi,cv=t=>t?ym(t).replace(/\\n/g,"#br#").split("#br#"):[""],xm=t=>go.default.sanitize(t),Jd=(t,e)=>{var r;if(((r=e.flowchart)==null?void 0:r.htmlLabels)!==!1){let i=e.securityLevel;i==="antiscript"||i==="strict"?t=xm(t):i!=="loose"&&(t=ym(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=pv(t))}return t},xo=(t,e)=>t&&(e.dompurifyConfig?t=go.default.sanitize(Jd(t,e),e.dompurifyConfig).toString():t=go.default.sanitize(Jd(t,e),{FORBID_TAGS:["style"]}).toString(),t),uv=(t,e)=>typeof t=="string"?xo(t,e):t.flat().map(r=>xo(r,e)),hv=t=>ma.test(t),fv=t=>t.split(ma),pv=t=>t.replace(/#br#/g,"
"),ym=t=>t.replace(ma,"#br#"),dv=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},_m=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),mv=function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},gv=function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},Xz=function(t){let e=t.split(/(,)/),r=[];for(let i=0;i0&&i+1Math.max(0,t.split(e).length-1),xv=(t,e)=>{let r=Al(t,"~"),i=Al(e,"~");return r===1&&i===1},yv=t=>{let e=Al(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let i=[...t],o=i.indexOf("~"),n=i.lastIndexOf("~");for(;o!==-1&&n!==-1&&o!==n;)i[o]="<",i[n]=">",o=i.indexOf("~"),n=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},Nl={getRows:cv,sanitizeText:xo,sanitizeTextOrArray:uv,hasBreaks:hv,splitBreaks:fv,lineBreakRegex:ma,removeScript:xm,getUrl:dv,evaluate:_m,getMax:mv,getMin:gv},qt=(t,e)=>e?m(t,{s:-40,l:10}):m(t,{s:-40,l:-10}),ga="#ffffff",xa="#f2f2f2",_v=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||m(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||m(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||qt(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||qt(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||M(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||M(this.tertiaryColor),this.lineColor=this.lineColor||M(this.background),this.arrowheadColor=this.arrowheadColor||M(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?H(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||H(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||M(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||z(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.darkMode)for(let p=0;p{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Cv=t=>{let e=new _v;return e.calculate(t),e},bv=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=z(this.primaryColor,16),this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=M(this.background),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=z(M("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=Ye(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=H("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=H(this.sectionBkgColor,10),this.taskBorderColor=Ye(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Ye(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.secondBkg=z(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=z(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=z(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=m(this.primaryColor,{h:64}),this.fillType3=m(this.secondaryColor,{h:64}),this.fillType4=m(this.primaryColor,{h:-64}),this.fillType5=m(this.secondaryColor,{h:-64}),this.fillType6=m(this.primaryColor,{h:128}),this.fillType7=m(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330});for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Tv=t=>{let e=new bv;return e.calculate(t),e},vv=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=m(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Ye(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||H(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||H(this.tertiaryColor,40);for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},kv=t=>{let e=new vv;return e.calculate(t),e},Sv=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=z("#cde498",10),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.primaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.actorBorder=H(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||m(this.primaryColor,{h:30}),this.cScale4=this.cScale4||m(this.primaryColor,{h:60}),this.cScale5=this.cScale5||m(this.primaryColor,{h:90}),this.cScale6=this.cScale6||m(this.primaryColor,{h:120}),this.cScale7=this.cScale7||m(this.primaryColor,{h:150}),this.cScale8=this.cScale8||m(this.primaryColor,{h:210}),this.cScale9=this.cScale9||m(this.primaryColor,{h:270}),this.cScale10=this.cScale10||m(this.primaryColor,{h:300}),this.cScale11=this.cScale11||m(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||H(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||H(this.tertiaryColor,40);for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},wv=t=>{let e=new Sv;return e.calculate(t),e},Fl=class{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=z(this.contrast,55),this.background="#ffffff",this.tertiaryColor=m(this.primaryColor,{h:-160}),this.primaryBorderColor=qt(this.primaryColor,this.darkMode),this.secondaryBorderColor=qt(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=qt(this.tertiaryColor,this.darkMode),this.primaryTextColor=M(this.primaryColor),this.secondaryTextColor=M(this.secondaryColor),this.tertiaryTextColor=M(this.tertiaryColor),this.lineColor=M(this.background),this.textColor=M(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,r,i,o,n,a,s,l,c,h,f;this.secondBkg=z(this.contrast,55),this.border2=this.contrast,this.actorBorder=z(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let u=0;u{this[i]=e[i]}),this.updateColors(),r.forEach(i=>{this[i]=e[i]})}},Bv=t=>{let e=new Fl;return e.calculate(t),e},Ie={base:{getThemeVariables:Cv},dark:{getThemeVariables:Tv},default:{getThemeVariables:kv},forest:{getThemeVariables:wv},neutral:{getThemeVariables:Bv}},Ee={flowchart:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},theme:"default",maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,fontSize:16},Cm={...Ee,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Ie.default.getThemeVariables(),sequence:{...Ee.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Ee.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Ee.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Ee.pie,useWidth:984},xyChart:{...Ee.xyChart,useWidth:void 0},requirement:{...Ee.requirement,useWidth:void 0},gitGraph:{...Ee.gitGraph,useMaxWidth:!1},sankey:{...Ee.sankey,useMaxWidth:!1}},bm=(t,e="")=>Object.keys(t).reduce((r,i)=>Array.isArray(t[i])?r:typeof t[i]=="object"&&t[i]!==null?[...r,e+i,...bm(t[i],"")]:[...r,e+i],[]),Av=new Set(bm(Cm,"")),Fv=Cm,oa=t=>{if(Y.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>oa(e));return}for(let e of Object.keys(t)){if(Y.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Av.has(e)||t[e]==null){Y.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){Y.debug("sanitizing object",e),oa(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let i of r)e.includes(i)&&(Y.debug("sanitizing css option",e),t[e]=Lv(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}Y.debug("After sanitization",t)}},Lv=t=>{let e=0,r=0;for(let i of t){if(e{for(let{id:e,detector:r,loader:i}of t)km(e,r,i)},km=(t,e,r)=>{bi[t]?Y.error(`Detector with key ${t} already exists`):bi[t]={detector:e,loader:r},Y.debug(`Detector with key ${t} added${r?" with loader":""}`)},Ev=t=>bi[t].loader,Ll=(t,e,{depth:r=2,clobber:i=!1}={})=>{let o={depth:r,clobber:i};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(n=>Ll(t,n,o)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(n=>{t.includes(n)||t.push(n)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(n=>{typeof e[n]=="object"&&(t[n]===void 0||typeof t[n]=="object")?(t[n]===void 0&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Ll(t[n],e[n],{depth:r-1,clobber:i})):(i||typeof t[n]!="object"&&typeof e[n]!="object")&&(t[n]=e[n])}),t)},Dt=Ll,Ov="\u200B",Iv={curveBasis:$s,curveBasisClosed:Ws,curveBasisOpen:Us,curveBumpX:zs,curveBumpY:qs,curveBundle:Hs,curveCardinalClosed:js,curveCardinalOpen:Gs,curveCardinal:Ys,curveCatmullRomClosed:Xs,curveCatmullRomOpen:Ks,curveCatmullRom:Vs,curveLinear:ji,curveLinearClosed:Zs,curveMonotoneX:Js,curveMonotoneY:tl,curveNatural:el,curveStep:rl,curveStepAfter:ol,curveStepBefore:il},Dv=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Nv=function(t,e){let r=Sm(t,/(?:init\b)|(?:initialize\b)/),i={};if(Array.isArray(r)){let a=r.map(s=>s.args);oa(a),i=Dt(i,[...a])}else i=r.args;if(!i)return;let o=ya(t,e),n="config";return i[n]!==void 0&&(o==="flowchart-v2"&&(o="flowchart"),i[o]=i[n],delete i[n]),i},Sm=function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${Dv.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),Y.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let i,o=[];for(;(i=fo.exec(t))!==null;)if(i.index===fo.lastIndex&&fo.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){let n=i[1]?i[1]:i[2],a=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;o.push({type:n,args:a})}return o.length===0?{type:t,args:null}:o.length===1?o[0]:o}catch(r){return Y.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},Pv=function(t){return t.replace(fo,"")},Rv=function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return-1};function $v(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Iv[r]??e}function zv(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,gm.sanitizeUrl)(r):r}var qv=(t,...e)=>{let r=t.split("."),i=r.length-1,o=r[i],n=window;for(let a=0;a{r+=wm(o,e),e=o});let i=r/2;return Pl(t,i)}function Uv(t){return t.length===1?t[0]:Wv(t)}var tm=(t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},Pl=(t,e)=>{let r,i=e;for(let o of t){if(r){let n=wm(o,r);if(n=1)return{x:o.x,y:o.y};if(a>0&&a<1)return{x:tm((1-a)*r.x+a*o.x,5),y:tm((1-a)*r.y+a*o.y,5)}}}r=o}throw new Error("Could not find a suitable point for the given distance")},Hv=(t,e,r)=>{Y.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let o=Pl(e,25),n=t?10:5,a=Math.atan2(e[0].y-o.y,e[0].x-o.x),s={x:0,y:0};return s.x=Math.sin(a)*n+(e[0].x+o.x)/2,s.y=-Math.cos(a)*n+(e[0].y+o.y)/2,s};function Yv(t,e,r){let i=structuredClone(r);Y.info("our points",i),e!=="start_left"&&e!=="start_right"&&i.reverse();let o=25+t,n=Pl(i,o),a=10+t*.5,s=Math.atan2(i[0].y-n.y,i[0].x-n.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(s+Math.PI)*a+(i[0].x+n.x)/2,l.y=-Math.cos(s+Math.PI)*a+(i[0].y+n.y)/2):e==="end_right"?(l.x=Math.sin(s-Math.PI)*a+(i[0].x+n.x)/2-5,l.y=-Math.cos(s-Math.PI)*a+(i[0].y+n.y)/2-5):e==="end_left"?(l.x=Math.sin(s)*a+(i[0].x+n.x)/2-5,l.y=-Math.cos(s)*a+(i[0].y+n.y)/2-5):(l.x=Math.sin(s)*a+(i[0].x+n.x)/2,l.y=-Math.cos(s)*a+(i[0].y+n.y)/2),l}function jv(t){let e="",r="";for(let i of t)i!==void 0&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}var em=0,Gv=()=>(em++,"id-"+Math.random().toString(36).substr(2,12)+"-"+em);function Vv(t){let e="",r="0123456789abcdef",i=r.length;for(let o=0;oVv(t.length),Kv=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,text:""}},Zv=function(t,e){let r=e.text.replace(Nl.lineBreakRegex," "),[,i]=$l(e.fontSize),o=t.append("text");o.attr("x",e.x),o.attr("y",e.y),o.style("text-anchor",e.anchor),o.style("font-family",e.fontFamily),o.style("font-size",i),o.style("font-weight",e.fontWeight),o.attr("fill",e.fill),e.class!==void 0&&o.attr("class",e.class);let n=o.append("tspan");return n.attr("x",e.x+e.textMargin*2),n.attr("fill",e.fill),n.text(r),o},Qv=En((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),Nl.lineBreakRegex.test(t)))return t;let i=t.split(" "),o=[],n="";return i.forEach((a,s)=>{let l=aa(`${a} `,r),c=aa(n,r);if(l>e){let{hyphenatedStrings:u,remainingWord:p}=Jv(a,e,"-",r);o.push(n,...u),n=p}else c+l>=e?(o.push(n),n=a):n=[n,a].filter(Boolean).join(" ");s+1===i.length&&o.push(n)}),o.filter(a=>a!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Jv=En((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let o=[...t],n=[],a="";return o.forEach((s,l)=>{let c=`${a}${s}`;if(aa(c,i)>=e){let f=l+1,u=o.length===f,p=`${c}${r}`;n.push(u?c:p),a=""}else a=c}),{hyphenatedStrings:n,remainingWord:a}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function tk(t,e){return Rl(t,e).height}function aa(t,e){return Rl(t,e).width}var Rl=En((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:o=400}=e;if(!t)return{width:0,height:0};let[,n]=$l(r),a=["sans-serif",i],s=t.split(Nl.lineBreakRegex),l=[],c=Wt("body");if(!c.remove)return{width:0,height:0,lineHeight:0};let h=c.append("svg");for(let u of a){let p=0,x={width:0,height:0,lineHeight:0};for(let _ of s){let b=Kv();b.text=_||Ov;let w=Zv(h,b).style("font-size",n).style("font-weight",o).style("font-family",u),v=(w._groups||w)[0][0].getBBox();if(v.width===0&&v.height===0)throw new Error("svg element not in render tree");x.width=Math.round(Math.max(x.width,v.width)),p=Math.round(v.height),x.height+=p,x.lineHeight=Math.round(Math.max(x.lineHeight,p))}l.push(x)}h.remove();let f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),Ml=class{constructor(e=!1,r){this.count=0,this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}},ra,ek=function(t){return ra=ra||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),ra.innerHTML=t,unescape(ra.textContent)};function Bm(t){return"str"in t}var rk=(t,e,r,i)=>{var o;if(!i)return;let n=(o=t.node())==null?void 0:o.getBBox();n&&t.append("text").text(i).attr("x",n.x+n.width/2).attr("y",-r).attr("class",e)},$l=t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function Am(t,e){return Bd({},t,e)}var po={assignWithDepth:Dt,wrapLabel:Qv,calculateTextHeight:tk,calculateTextWidth:aa,calculateTextDimensions:Rl,cleanAndMerge:Am,detectInit:Nv,detectDirective:Sm,isSubstringInArray:Rv,interpolateToCurve:$v,calcLabelPosition:Uv,calcCardinalityPosition:Hv,calcTerminalLabelPosition:Yv,formatUrl:zv,getStylesFromArray:jv,generateId:Gv,random:Xv,runFunc:qv,entityDecode:ek,insertTitle:rk,parseFontSize:$l,InitIDGenerator:Ml},rm="10.6.1",Ti=Object.freeze(Fv),Yt=Dt({},Ti),Fm,vi=[],mo=Dt({},Ti),_a=(t,e)=>{let r=Dt({},t),i={};for(let o of e)Em(o),i=Dt(i,o);if(r=Dt(r,i),i.theme&&i.theme in Ie){let o=Dt({},Fm),n=Dt(o.themeVariables||{},i.themeVariables);r.theme&&r.theme in Ie&&(r.themeVariables=Ie[r.theme].getThemeVariables(n))}return mo=r,Om(mo),mo},ik=t=>(Yt=Dt({},Ti),Yt=Dt(Yt,t),t.theme&&Ie[t.theme]&&(Yt.themeVariables=Ie[t.theme].getThemeVariables(t.themeVariables)),_a(Yt,vi),Yt),ok=t=>{Fm=Dt({},t)},nk=t=>(Yt=Dt(Yt,t),_a(Yt,vi),Yt),Lm=()=>Dt({},Yt),Mm=t=>(Om(t),Dt(mo,t),xe()),xe=()=>Dt({},mo),Em=t=>{t&&(["secure",...Yt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(Y.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&Em(t[e])}))},ak=t=>{oa(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),vi.push(t),_a(Yt,vi)},sa=(t=Yt)=>{vi=[],_a(t,vi)},sk={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},im={},lk=t=>{im[t]||(Y.warn(sk[t]),im[t]=!0)},Om=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&lk("LAZY_LOAD_DEPRECATED")},Im="c4",ck=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),uk=async()=>{let{diagram:t}=await import("./c4Diagram-817c8e44-DEM7FJ4Q.min.js");return{id:Im,diagram:t}},hk={id:Im,detector:ck,loader:uk},fk=hk,Dm="flowchart",pk=(t,e)=>{var r,i;return((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},dk=async()=>{let{diagram:t}=await import("./flowDiagram-61eb444c-S7V4ZUD5.min.js");return{id:Dm,diagram:t}},mk={id:Dm,detector:pk,loader:dk},gk=mk,Nm="flowchart-v2",xk=(t,e)=>{var r,i,o;return((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"||((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((o=e?.flowchart)==null?void 0:o.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},yk=async()=>{let{diagram:t}=await import("./flowDiagram-v2-2f8f667a-QXWUVY6B.min.js");return{id:Nm,diagram:t}},_k={id:Nm,detector:xk,loader:yk},Ck=_k,Pm="er",bk=t=>/^\s*erDiagram/.test(t),Tk=async()=>{let{diagram:t}=await import("./erDiagram-9cfc3649-YLLW2FE4.min.js");return{id:Pm,diagram:t}},vk={id:Pm,detector:bk,loader:Tk},kk=vk,Rm="gitGraph",Sk=t=>/^\s*gitGraph/.test(t),wk=async()=>{let{diagram:t}=await import("./gitGraphDiagram-6b463803-STHEHXBB.min.js");return{id:Rm,diagram:t}},Bk={id:Rm,detector:Sk,loader:wk},Ak=Bk,$m="gantt",Fk=t=>/^\s*gantt/.test(t),Lk=async()=>{let{diagram:t}=await import("./ganttDiagram-db6931fb-2YH7L6GA.min.js");return{id:$m,diagram:t}},Mk={id:$m,detector:Fk,loader:Lk},Ek=Mk,zm="info",Ok=t=>/^\s*info/.test(t),Ik=async()=>{let{diagram:t}=await import("./infoDiagram-a336098b-BUO4526A.min.js");return{id:zm,diagram:t}},Dk={id:zm,detector:Ok,loader:Ik},qm="pie",Nk=t=>/^\s*pie/.test(t),Pk=async()=>{let{diagram:t}=await import("./pieDiagram-a5166659-D5OB26DI.min.js");return{id:qm,diagram:t}},Rk={id:qm,detector:Nk,loader:Pk},Wm="quadrantChart",$k=t=>/^\s*quadrantChart/.test(t),zk=async()=>{let{diagram:t}=await import("./quadrantDiagram-6c355bbc-72UBHSWW.min.js");return{id:Wm,diagram:t}},qk={id:Wm,detector:$k,loader:zk},Wk=qk,Um="xychart",Uk=t=>/^\s*xychart-beta/.test(t),Hk=async()=>{let{diagram:t}=await import("./xychartDiagram-f746c04c-4VQWTKKE.min.js");return{id:Um,diagram:t}},Yk={id:Um,detector:Uk,loader:Hk},jk=Yk,Hm="requirement",Gk=t=>/^\s*requirement(Diagram)?/.test(t),Vk=async()=>{let{diagram:t}=await import("./requirementDiagram-4038b16c-AE4CLIVN.min.js");return{id:Hm,diagram:t}},Xk={id:Hm,detector:Gk,loader:Vk},Kk=Xk,Ym="sequence",Zk=t=>/^\s*sequenceDiagram/.test(t),Qk=async()=>{let{diagram:t}=await import("./sequenceDiagram-465a088a-SRYNR4EQ.min.js");return{id:Ym,diagram:t}},Jk={id:Ym,detector:Zk,loader:Qk},tS=Jk,jm="class",eS=(t,e)=>{var r;return((r=e?.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},rS=async()=>{let{diagram:t}=await import("./classDiagram-48ab76fb-DDANGYBP.min.js");return{id:jm,diagram:t}},iS={id:jm,detector:eS,loader:rS},oS=iS,Gm="classDiagram",nS=(t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e?.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},aS=async()=>{let{diagram:t}=await import("./classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js");return{id:Gm,diagram:t}},sS={id:Gm,detector:nS,loader:aS},lS=sS,Vm="state",cS=(t,e)=>{var r;return((r=e?.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},uS=async()=>{let{diagram:t}=await import("./stateDiagram-b620d43f-JKLORD4W.min.js");return{id:Vm,diagram:t}},hS={id:Vm,detector:cS,loader:uS},fS=hS,Xm="stateDiagram",pS=(t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e?.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},dS=async()=>{let{diagram:t}=await import("./stateDiagram-v2-2671c3d1-TFICO4HL.min.js");return{id:Xm,diagram:t}},mS={id:Xm,detector:pS,loader:dS},gS=mS,Km="journey",xS=t=>/^\s*journey/.test(t),yS=async()=>{let{diagram:t}=await import("./journeyDiagram-deae3313-3I2YX5JS.min.js");return{id:Km,diagram:t}},_S={id:Km,detector:xS,loader:yS},CS=_S,bS=function(t,e){for(let r of e)t.attr(r[0],r[1])},TS=function(t,e,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},Zm=function(t,e,r,i){let o=TS(e,r,i);bS(t,o)},vS=function(t,e,r,i){let o=e.node().getBBox(),n=o.width,a=o.height;Y.info(`SVG bounds: ${n}x${a}`,o);let s=0,l=0;Y.info(`Graph bounds: ${s}x${l}`,t),s=n+r*2,l=a+r*2,Y.info(`Calculated bounds: ${s}x${l}`),Zm(e,l,s,i);let c=`${o.x-r} ${o.y-r} ${o.width+2*r} ${o.height+2*r}`;e.attr("viewBox",c)},ia={},kS=(t,e,r)=>{let i="";return t in ia&&ia[t]?i=ia[t](r):Y.warn(`No theme found for ${t}`),` & { +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),Y.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let i,o=[];for(;(i=fo.exec(t))!==null;)if(i.index===fo.lastIndex&&fo.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){let n=i[1]?i[1]:i[2],a=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;o.push({type:n,args:a})}return o.length===0?{type:t,args:null}:o.length===1?o[0]:o}catch(r){return Y.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},Pv=function(t){return t.replace(fo,"")},Rv=function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return-1};function $v(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Iv[r]??e}function zv(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,gm.sanitizeUrl)(r):r}var qv=(t,...e)=>{let r=t.split("."),i=r.length-1,o=r[i],n=window;for(let a=0;a{r+=wm(o,e),e=o});let i=r/2;return Pl(t,i)}function Uv(t){return t.length===1?t[0]:Wv(t)}var tm=(t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},Pl=(t,e)=>{let r,i=e;for(let o of t){if(r){let n=wm(o,r);if(n=1)return{x:o.x,y:o.y};if(a>0&&a<1)return{x:tm((1-a)*r.x+a*o.x,5),y:tm((1-a)*r.y+a*o.y,5)}}}r=o}throw new Error("Could not find a suitable point for the given distance")},Hv=(t,e,r)=>{Y.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let o=Pl(e,25),n=t?10:5,a=Math.atan2(e[0].y-o.y,e[0].x-o.x),s={x:0,y:0};return s.x=Math.sin(a)*n+(e[0].x+o.x)/2,s.y=-Math.cos(a)*n+(e[0].y+o.y)/2,s};function Yv(t,e,r){let i=structuredClone(r);Y.info("our points",i),e!=="start_left"&&e!=="start_right"&&i.reverse();let o=25+t,n=Pl(i,o),a=10+t*.5,s=Math.atan2(i[0].y-n.y,i[0].x-n.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(s+Math.PI)*a+(i[0].x+n.x)/2,l.y=-Math.cos(s+Math.PI)*a+(i[0].y+n.y)/2):e==="end_right"?(l.x=Math.sin(s-Math.PI)*a+(i[0].x+n.x)/2-5,l.y=-Math.cos(s-Math.PI)*a+(i[0].y+n.y)/2-5):e==="end_left"?(l.x=Math.sin(s)*a+(i[0].x+n.x)/2-5,l.y=-Math.cos(s)*a+(i[0].y+n.y)/2-5):(l.x=Math.sin(s)*a+(i[0].x+n.x)/2,l.y=-Math.cos(s)*a+(i[0].y+n.y)/2),l}function jv(t){let e="",r="";for(let i of t)i!==void 0&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}var em=0,Gv=()=>(em++,"id-"+Math.random().toString(36).substr(2,12)+"-"+em);function Vv(t){let e="",r="0123456789abcdef",i=r.length;for(let o=0;oVv(t.length),Kv=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,text:""}},Zv=function(t,e){let r=e.text.replace(Nl.lineBreakRegex," "),[,i]=$l(e.fontSize),o=t.append("text");o.attr("x",e.x),o.attr("y",e.y),o.style("text-anchor",e.anchor),o.style("font-family",e.fontFamily),o.style("font-size",i),o.style("font-weight",e.fontWeight),o.attr("fill",e.fill),e.class!==void 0&&o.attr("class",e.class);let n=o.append("tspan");return n.attr("x",e.x+e.textMargin*2),n.attr("fill",e.fill),n.text(r),o},Qv=En((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),Nl.lineBreakRegex.test(t)))return t;let i=t.split(" "),o=[],n="";return i.forEach((a,s)=>{let l=aa(`${a} `,r),c=aa(n,r);if(l>e){let{hyphenatedStrings:u,remainingWord:p}=Jv(a,e,"-",r);o.push(n,...u),n=p}else c+l>=e?(o.push(n),n=a):n=[n,a].filter(Boolean).join(" ");s+1===i.length&&o.push(n)}),o.filter(a=>a!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),Jv=En((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let o=[...t],n=[],a="";return o.forEach((s,l)=>{let c=`${a}${s}`;if(aa(c,i)>=e){let f=l+1,u=o.length===f,p=`${c}${r}`;n.push(u?c:p),a=""}else a=c}),{hyphenatedStrings:n,remainingWord:a}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function tk(t,e){return Rl(t,e).height}function aa(t,e){return Rl(t,e).width}var Rl=En((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:o=400}=e;if(!t)return{width:0,height:0};let[,n]=$l(r),a=["sans-serif",i],s=t.split(Nl.lineBreakRegex),l=[],c=Wt("body");if(!c.remove)return{width:0,height:0,lineHeight:0};let h=c.append("svg");for(let u of a){let p=0,x={width:0,height:0,lineHeight:0};for(let _ of s){let b=Kv();b.text=_||Ov;let w=Zv(h,b).style("font-size",n).style("font-weight",o).style("font-family",u),v=(w._groups||w)[0][0].getBBox();if(v.width===0&&v.height===0)throw new Error("svg element not in render tree");x.width=Math.round(Math.max(x.width,v.width)),p=Math.round(v.height),x.height+=p,x.lineHeight=Math.round(Math.max(x.lineHeight,p))}l.push(x)}h.remove();let f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),Ml=class{constructor(e=!1,r){this.count=0,this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}},ra,ek=function(t){return ra=ra||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),ra.innerHTML=t,unescape(ra.textContent)};function Bm(t){return"str"in t}var rk=(t,e,r,i)=>{var o;if(!i)return;let n=(o=t.node())==null?void 0:o.getBBox();n&&t.append("text").text(i).attr("x",n.x+n.width/2).attr("y",-r).attr("class",e)},$l=t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function Am(t,e){return Bd({},t,e)}var po={assignWithDepth:Dt,wrapLabel:Qv,calculateTextHeight:tk,calculateTextWidth:aa,calculateTextDimensions:Rl,cleanAndMerge:Am,detectInit:Nv,detectDirective:Sm,isSubstringInArray:Rv,interpolateToCurve:$v,calcLabelPosition:Uv,calcCardinalityPosition:Hv,calcTerminalLabelPosition:Yv,formatUrl:zv,getStylesFromArray:jv,generateId:Gv,random:Xv,runFunc:qv,entityDecode:ek,insertTitle:rk,parseFontSize:$l,InitIDGenerator:Ml},rm="10.6.1",Ti=Object.freeze(Fv),Yt=Dt({},Ti),Fm,vi=[],mo=Dt({},Ti),_a=(t,e)=>{let r=Dt({},t),i={};for(let o of e)Em(o),i=Dt(i,o);if(r=Dt(r,i),i.theme&&i.theme in Ie){let o=Dt({},Fm),n=Dt(o.themeVariables||{},i.themeVariables);r.theme&&r.theme in Ie&&(r.themeVariables=Ie[r.theme].getThemeVariables(n))}return mo=r,Om(mo),mo},ik=t=>(Yt=Dt({},Ti),Yt=Dt(Yt,t),t.theme&&Ie[t.theme]&&(Yt.themeVariables=Ie[t.theme].getThemeVariables(t.themeVariables)),_a(Yt,vi),Yt),ok=t=>{Fm=Dt({},t)},nk=t=>(Yt=Dt(Yt,t),_a(Yt,vi),Yt),Lm=()=>Dt({},Yt),Mm=t=>(Om(t),Dt(mo,t),xe()),xe=()=>Dt({},mo),Em=t=>{t&&(["secure",...Yt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(Y.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&Em(t[e])}))},ak=t=>{oa(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),vi.push(t),_a(Yt,vi)},sa=(t=Yt)=>{vi=[],_a(t,vi)},sk={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},im={},lk=t=>{im[t]||(Y.warn(sk[t]),im[t]=!0)},Om=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&lk("LAZY_LOAD_DEPRECATED")},Im="c4",ck=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),uk=async()=>{let{diagram:t}=await import("./c4Diagram-817c8e44-SGFOBFRD.min.js");return{id:Im,diagram:t}},hk={id:Im,detector:ck,loader:uk},fk=hk,Dm="flowchart",pk=(t,e)=>{var r,i;return((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},dk=async()=>{let{diagram:t}=await import("./flowDiagram-61eb444c-W2MZ7QST.min.js");return{id:Dm,diagram:t}},mk={id:Dm,detector:pk,loader:dk},gk=mk,Nm="flowchart-v2",xk=(t,e)=>{var r,i,o;return((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"||((i=e?.flowchart)==null?void 0:i.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((o=e?.flowchart)==null?void 0:o.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},yk=async()=>{let{diagram:t}=await import("./flowDiagram-v2-2f8f667a-WVVXSXHH.min.js");return{id:Nm,diagram:t}},_k={id:Nm,detector:xk,loader:yk},Ck=_k,Pm="er",bk=t=>/^\s*erDiagram/.test(t),Tk=async()=>{let{diagram:t}=await import("./erDiagram-9cfc3649-NX6WFSGQ.min.js");return{id:Pm,diagram:t}},vk={id:Pm,detector:bk,loader:Tk},kk=vk,Rm="gitGraph",Sk=t=>/^\s*gitGraph/.test(t),wk=async()=>{let{diagram:t}=await import("./gitGraphDiagram-6b463803-XW36YSNI.min.js");return{id:Rm,diagram:t}},Bk={id:Rm,detector:Sk,loader:wk},Ak=Bk,$m="gantt",Fk=t=>/^\s*gantt/.test(t),Lk=async()=>{let{diagram:t}=await import("./ganttDiagram-db6931fb-KM4XNDUI.min.js");return{id:$m,diagram:t}},Mk={id:$m,detector:Fk,loader:Lk},Ek=Mk,zm="info",Ok=t=>/^\s*info/.test(t),Ik=async()=>{let{diagram:t}=await import("./infoDiagram-a336098b-M3EGNS5K.min.js");return{id:zm,diagram:t}},Dk={id:zm,detector:Ok,loader:Ik},qm="pie",Nk=t=>/^\s*pie/.test(t),Pk=async()=>{let{diagram:t}=await import("./pieDiagram-a5166659-EQCDURPM.min.js");return{id:qm,diagram:t}},Rk={id:qm,detector:Nk,loader:Pk},Wm="quadrantChart",$k=t=>/^\s*quadrantChart/.test(t),zk=async()=>{let{diagram:t}=await import("./quadrantDiagram-6c355bbc-H5XRRV3H.min.js");return{id:Wm,diagram:t}},qk={id:Wm,detector:$k,loader:zk},Wk=qk,Um="xychart",Uk=t=>/^\s*xychart-beta/.test(t),Hk=async()=>{let{diagram:t}=await import("./xychartDiagram-f746c04c-RVX2Y5TN.min.js");return{id:Um,diagram:t}},Yk={id:Um,detector:Uk,loader:Hk},jk=Yk,Hm="requirement",Gk=t=>/^\s*requirement(Diagram)?/.test(t),Vk=async()=>{let{diagram:t}=await import("./requirementDiagram-4038b16c-35KSP34O.min.js");return{id:Hm,diagram:t}},Xk={id:Hm,detector:Gk,loader:Vk},Kk=Xk,Ym="sequence",Zk=t=>/^\s*sequenceDiagram/.test(t),Qk=async()=>{let{diagram:t}=await import("./sequenceDiagram-465a088a-72KISVBJ.min.js");return{id:Ym,diagram:t}},Jk={id:Ym,detector:Zk,loader:Qk},tS=Jk,jm="class",eS=(t,e)=>{var r;return((r=e?.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},rS=async()=>{let{diagram:t}=await import("./classDiagram-48ab76fb-2NS2GWUH.min.js");return{id:jm,diagram:t}},iS={id:jm,detector:eS,loader:rS},oS=iS,Gm="classDiagram",nS=(t,e)=>{var r;return/^\s*classDiagram/.test(t)&&((r=e?.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},aS=async()=>{let{diagram:t}=await import("./classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js");return{id:Gm,diagram:t}},sS={id:Gm,detector:nS,loader:aS},lS=sS,Vm="state",cS=(t,e)=>{var r;return((r=e?.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},uS=async()=>{let{diagram:t}=await import("./stateDiagram-b620d43f-6XMSQQAT.min.js");return{id:Vm,diagram:t}},hS={id:Vm,detector:cS,loader:uS},fS=hS,Xm="stateDiagram",pS=(t,e)=>{var r;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((r=e?.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},dS=async()=>{let{diagram:t}=await import("./stateDiagram-v2-2671c3d1-GBFY3N5Z.min.js");return{id:Xm,diagram:t}},mS={id:Xm,detector:pS,loader:dS},gS=mS,Km="journey",xS=t=>/^\s*journey/.test(t),yS=async()=>{let{diagram:t}=await import("./journeyDiagram-deae3313-2YUPEA7J.min.js");return{id:Km,diagram:t}},_S={id:Km,detector:xS,loader:yS},CS=_S,bS=function(t,e){for(let r of e)t.attr(r[0],r[1])},TS=function(t,e,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},Zm=function(t,e,r,i){let o=TS(e,r,i);bS(t,o)},vS=function(t,e,r,i){let o=e.node().getBBox(),n=o.width,a=o.height;Y.info(`SVG bounds: ${n}x${a}`,o);let s=0,l=0;Y.info(`Graph bounds: ${s}x${l}`,t),s=n+r*2,l=a+r*2,Y.info(`Calculated bounds: ${s}x${l}`),Zm(e,l,s,i);let c=`${o.x-r} ${o.y-r} ${o.width+2*r} ${o.height+2*r}`;e.attr("viewBox",c)},ia={},kS=(t,e,r)=>{let i="";return t in ia&&ia[t]?i=ia[t](r):Y.warn(`No theme found for ${t}`),` & { font-family: ${r.fontFamily}; font-size: ${r.fontSize}; fill: ${r.textColor} @@ -57,7 +57,7 @@ import{b as za,d as qa}from"./chunk-P42HNYSU.min.js";var Tc=za((Wa,Ua)=>{(functi ${e} `},SS=(t,e)=>{e!==void 0&&(ia[t]=e)},wS=kS,zl="",ql="",Wl="",Ul=t=>xo(t,xe()),BS=()=>{zl="",Wl="",ql=""},AS=t=>{zl=Ul(t).replace(/^\s+/g,"")},FS=()=>zl,LS=t=>{Wl=Ul(t).replace(/\n\s+/g,` `)},MS=()=>Wl,ES=t=>{ql=Ul(t)},OS=()=>ql,IS=Object.freeze(Object.defineProperty({__proto__:null,clear:BS,getAccDescription:MS,getAccTitle:FS,getDiagramTitle:OS,setAccDescription:LS,setAccTitle:AS,setDiagramTitle:ES},Symbol.toStringTag,{value:"Module"})),DS=Y,NS=Dl,Hl=xe,tq=Mm,eq=Ti,PS=t=>xo(t,Hl()),RS=vS,$S=()=>IS,la={},ca=(t,e,r)=>{var i;if(la[t])throw new Error(`Diagram ${t} already registered.`);la[t]=e,r&&km(t,r),SS(t,e.styles),(i=e.injectUtils)==null||i.call(e,DS,NS,Hl,PS,RS,$S(),()=>{})},Yl=t=>{if(t in la)return la[t];throw new El(t)},El=class extends Error{constructor(e){super(`Diagram ${e} not found.`)}},zS=t=>{var e;let{securityLevel:r}=Hl(),i=Wt("body");if(r==="sandbox"){let a=((e=Wt(`#i${t}`).node())==null?void 0:e.contentDocument)??document;i=Wt(a.body)}return i.select(`#${t}`)},qS=(t,e,r)=>{Y.debug(`renering svg for syntax error -`);let i=zS(e);i.attr("viewBox","0 0 2412 512"),Zm(i,100,512,!0);let o=i.append("g");o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},Qm={draw:qS},WS=Qm,US={db:{},renderer:Qm,parser:{parser:{yy:{}},parse:()=>{}}},HS=US,Jm="flowchart-elk",YS=(t,e)=>{var r;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="elk")},jS=async()=>{let{diagram:t}=await import("./flowchart-elk-definition-e097735e-ML73PEN2.min.js");return{id:Jm,diagram:t}},GS={id:Jm,detector:YS,loader:jS},VS=GS,tg="timeline",XS=t=>/^\s*timeline/.test(t),KS=async()=>{let{diagram:t}=await import("./timeline-definition-732a2638-CQETYKGJ.min.js");return{id:tg,diagram:t}},ZS={id:tg,detector:XS,loader:KS},QS=ZS,eg="mindmap",JS=t=>/^\s*mindmap/.test(t),tw=async()=>{let{diagram:t}=await import("./mindmap-definition-617cf8dd-VAOL4CGI.min.js");return{id:eg,diagram:t}},ew={id:eg,detector:JS,loader:tw},rw=ew,rg="sankey",iw=t=>/^\s*sankey-beta/.test(t),ow=async()=>{let{diagram:t}=await import("./sankeyDiagram-6db3d513-B6X2KUV4.min.js");return{id:rg,diagram:t}},nw={id:rg,detector:iw,loader:ow},aw=nw,om=!1,jl=()=>{om||(om=!0,ca("error",HS,t=>t.toLowerCase().trim()==="error"),ca("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},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},t=>t.toLowerCase().trimStart().startsWith("---")),vm(fk,lS,oS,kk,Ek,Dk,Rk,Kk,tS,VS,Ck,gk,rw,QS,Ak,gS,fS,CS,Wk,aw,jk))},ua=class{constructor(e,r={}){this.text=e,this.metadata=r,this.type="graph",this.text+=` +`);let i=zS(e);i.attr("viewBox","0 0 2412 512"),Zm(i,100,512,!0);let o=i.append("g");o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},Qm={draw:qS},WS=Qm,US={db:{},renderer:Qm,parser:{parser:{yy:{}},parse:()=>{}}},HS=US,Jm="flowchart-elk",YS=(t,e)=>{var r;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((r=e?.flowchart)==null?void 0:r.defaultRenderer)==="elk")},jS=async()=>{let{diagram:t}=await import("./flowchart-elk-definition-e097735e-EIOOWBCS.min.js");return{id:Jm,diagram:t}},GS={id:Jm,detector:YS,loader:jS},VS=GS,tg="timeline",XS=t=>/^\s*timeline/.test(t),KS=async()=>{let{diagram:t}=await import("./timeline-definition-732a2638-NYHTUS3Z.min.js");return{id:tg,diagram:t}},ZS={id:tg,detector:XS,loader:KS},QS=ZS,eg="mindmap",JS=t=>/^\s*mindmap/.test(t),tw=async()=>{let{diagram:t}=await import("./mindmap-definition-617cf8dd-4PM2AKSZ.min.js");return{id:eg,diagram:t}},ew={id:eg,detector:JS,loader:tw},rw=ew,rg="sankey",iw=t=>/^\s*sankey-beta/.test(t),ow=async()=>{let{diagram:t}=await import("./sankeyDiagram-6db3d513-UAUVVQE6.min.js");return{id:rg,diagram:t}},nw={id:rg,detector:iw,loader:ow},aw=nw,om=!1,jl=()=>{om||(om=!0,ca("error",HS,t=>t.toLowerCase().trim()==="error"),ca("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},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},t=>t.toLowerCase().trimStart().startsWith("---")),vm(fk,lS,oS,kk,Ek,Dk,Rk,Kk,tS,VS,Ck,gk,rw,QS,Ak,gS,fS,CS,Wk,aw,jk))},ua=class{constructor(e,r={}){this.text=e,this.metadata=r,this.type="graph",this.text+=` `;let i=xe();try{this.type=ya(e,i)}catch(n){this.type="error",this.detectError=n}let o=Yl(this.type);Y.debug("Type "+this.type),this.db=o.db,this.renderer=o.renderer,this.parser=o.parser,this.parser.parser.yy=this.db,this.init=o.init,this.parse()}parse(){var e,r,i,o,n;if(this.detectError)throw this.detectError;(r=(e=this.db).clear)==null||r.call(e);let a=xe();(i=this.init)==null||i.call(this,a),this.metadata.title&&((n=(o=this.db).setDiagramTitle)==null||n.call(o,this.metadata.title)),this.parser.parse(this.text)}async render(e,r){await this.renderer.draw(this.text,e,r,this)}getParser(){return this.parser}getType(){return this.type}},Gl=async(t,e={})=>{let r=ya(t,xe());try{Yl(r)}catch{let o=Ev(r);if(!o)throw new na(`Diagram ${r} not found.`);let{id:n,diagram:a}=await o();ca(n,a)}return new ua(t,e)},Ol=[],rq=t=>{Ol.push(t)},sw=()=>{Ol.forEach(t=>{t()}),Ol=[]},lw="graphics-document document";function cw(t,e){t.attr("role",lw),e!==""&&t.attr("aria-roledescription",e)}function uw(t,e,r,i){if(t.insert!==void 0){if(r){let o=`chart-desc-${i}`;t.attr("aria-describedby",o),t.insert("desc",":first-child").attr("id",o).text(r)}if(e){let o=`chart-title-${i}`;t.attr("aria-labelledby",o),t.insert("title",":first-child").attr("id",o).text(e)}}}var hw=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();function ig(t){return typeof t>"u"||t===null}function fw(t){return typeof t=="object"&&t!==null}function pw(t){return Array.isArray(t)?t:ig(t)?[]:[t]}function dw(t,e){var r,i,o,n;if(e)for(n=Object.keys(e),r=0,i=n.length;rs&&(n=" ... ",e=i-s+n.length),r-i>s&&(a=" ...",r=i+s-a.length),{str:n+t.slice(e,r).replace(/\t/g,"\u2192")+a,pos:i-e+n.length}}function Sl(t,e){return zt.repeat(" ",e-t.length)+t}function vw(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],o=[],n,a=-1;n=r.exec(t.buffer);)o.push(n.index),i.push(n.index+n[0].length),t.position<=n.index&&a<0&&(a=i.length-2);a<0&&(a=i.length-1);var s="",l,c,h=Math.min(t.line+e.linesAfter,o.length).toString().length,f=e.maxLength-(e.indent+h+3);for(l=1;l<=e.linesBefore&&!(a-l<0);l++)c=kl(t.buffer,i[a-l],o[a-l],t.position-(i[a]-i[a-l]),f),s=zt.repeat(" ",e.indent)+Sl((t.line-l+1).toString(),h)+" | "+c.str+` @@ -94,4 +94,4 @@ mermaid/dist/mermaid-934d9bea.js: * Wait for document loaded before starting the execution *) */ -//# sourceMappingURL=chunk-JUXSCBYR.min.js.map +//# sourceMappingURL=chunk-YICCS3KT.min.js.map diff --git a/docs/public/chunk-JUXSCBYR.min.js.map b/docs/public/chunk-YICCS3KT.min.js.map similarity index 87% rename from docs/public/chunk-JUXSCBYR.min.js.map rename to docs/public/chunk-YICCS3KT.min.js.map index 12b16bf5..a5ed20ea 100644 --- a/docs/public/chunk-JUXSCBYR.min.js.map +++ b/docs/public/chunk-YICCS3KT.min.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../../node_modules/dayjs/dayjs.min.js", "../../node_modules/@braintree/sanitize-url/dist/index.js", "../../node_modules/dompurify/src/utils.js", "../../node_modules/dompurify/src/tags.js", "../../node_modules/dompurify/src/attrs.js", "../../node_modules/dompurify/src/regexp.js", "../../node_modules/dompurify/src/purify.js", "../../node_modules/ts-dedent/src/index.ts", "../../node_modules/d3-array/src/max.js", "../../node_modules/d3-array/src/min.js", "../../node_modules/d3-array/src/ascending.js", "../../node_modules/d3-array/src/descending.js", "../../node_modules/d3-array/src/bisector.js", "../../node_modules/d3-array/src/number.js", "../../node_modules/d3-array/src/bisect.js", "../../node_modules/internmap/src/index.js", "../../node_modules/d3-array/src/ticks.js", "../../node_modules/d3-array/src/range.js", "../../node_modules/d3-axis/src/identity.js", "../../node_modules/d3-axis/src/axis.js", "../../node_modules/d3-selection/src/selector.js", "../../node_modules/d3-selection/src/selection/select.js", "../../node_modules/d3-selection/src/array.js", "../../node_modules/d3-selection/src/selectorAll.js", "../../node_modules/d3-selection/src/selection/selectAll.js", "../../node_modules/d3-selection/src/matcher.js", "../../node_modules/d3-selection/src/selection/selectChild.js", "../../node_modules/d3-selection/src/selection/selectChildren.js", "../../node_modules/d3-selection/src/selection/filter.js", "../../node_modules/d3-selection/src/selection/sparse.js", "../../node_modules/d3-selection/src/selection/enter.js", "../../node_modules/d3-selection/src/constant.js", "../../node_modules/d3-selection/src/selection/data.js", "../../node_modules/d3-selection/src/selection/exit.js", "../../node_modules/d3-selection/src/selection/join.js", "../../node_modules/d3-selection/src/selection/merge.js", "../../node_modules/d3-selection/src/selection/order.js", "../../node_modules/d3-selection/src/selection/sort.js", "../../node_modules/d3-selection/src/selection/call.js", "../../node_modules/d3-selection/src/selection/nodes.js", "../../node_modules/d3-selection/src/selection/node.js", "../../node_modules/d3-selection/src/selection/size.js", "../../node_modules/d3-selection/src/selection/empty.js", "../../node_modules/d3-selection/src/selection/each.js", "../../node_modules/d3-selection/src/namespaces.js", "../../node_modules/d3-selection/src/namespace.js", "../../node_modules/d3-selection/src/selection/attr.js", "../../node_modules/d3-selection/src/window.js", "../../node_modules/d3-selection/src/selection/style.js", "../../node_modules/d3-selection/src/selection/property.js", "../../node_modules/d3-selection/src/selection/classed.js", "../../node_modules/d3-selection/src/selection/text.js", "../../node_modules/d3-selection/src/selection/html.js", "../../node_modules/d3-selection/src/selection/raise.js", "../../node_modules/d3-selection/src/selection/lower.js", "../../node_modules/d3-selection/src/creator.js", "../../node_modules/d3-selection/src/selection/append.js", "../../node_modules/d3-selection/src/selection/insert.js", "../../node_modules/d3-selection/src/selection/remove.js", "../../node_modules/d3-selection/src/selection/clone.js", "../../node_modules/d3-selection/src/selection/datum.js", "../../node_modules/d3-selection/src/selection/on.js", "../../node_modules/d3-selection/src/selection/dispatch.js", "../../node_modules/d3-selection/src/selection/iterator.js", "../../node_modules/d3-selection/src/selection/index.js", "../../node_modules/d3-selection/src/select.js", "../../node_modules/d3-selection/src/selectAll.js", "../../node_modules/d3-color/src/define.js", "../../node_modules/d3-color/src/color.js", "../../node_modules/d3-color/src/math.js", "../../node_modules/d3-color/src/lab.js", "../../node_modules/d3-interpolate/src/constant.js", "../../node_modules/d3-interpolate/src/color.js", "../../node_modules/d3-interpolate/src/hcl.js", "../../node_modules/d3-interpolate/src/basis.js", "../../node_modules/d3-interpolate/src/basisClosed.js", "../../node_modules/d3-interpolate/src/rgb.js", "../../node_modules/d3-interpolate/src/numberArray.js", "../../node_modules/d3-interpolate/src/array.js", "../../node_modules/d3-interpolate/src/date.js", "../../node_modules/d3-interpolate/src/number.js", "../../node_modules/d3-interpolate/src/object.js", "../../node_modules/d3-interpolate/src/string.js", "../../node_modules/d3-interpolate/src/value.js", "../../node_modules/d3-interpolate/src/round.js", "../../node_modules/d3-interpolate/src/transform/decompose.js", "../../node_modules/d3-interpolate/src/transform/parse.js", "../../node_modules/d3-interpolate/src/transform/index.js", "../../node_modules/d3-scale/src/init.js", "../../node_modules/d3-scale/src/ordinal.js", "../../node_modules/d3-scale/src/band.js", "../../node_modules/d3-scale/src/constant.js", "../../node_modules/d3-scale/src/number.js", "../../node_modules/d3-scale/src/continuous.js", "../../node_modules/d3-format/src/formatDecimal.js", "../../node_modules/d3-format/src/exponent.js", "../../node_modules/d3-format/src/formatGroup.js", "../../node_modules/d3-format/src/formatNumerals.js", "../../node_modules/d3-format/src/formatSpecifier.js", "../../node_modules/d3-format/src/formatTrim.js", "../../node_modules/d3-format/src/formatPrefixAuto.js", "../../node_modules/d3-format/src/formatRounded.js", "../../node_modules/d3-format/src/formatTypes.js", "../../node_modules/d3-format/src/identity.js", "../../node_modules/d3-format/src/locale.js", "../../node_modules/d3-format/src/defaultLocale.js", "../../node_modules/d3-format/src/precisionFixed.js", "../../node_modules/d3-format/src/precisionPrefix.js", "../../node_modules/d3-format/src/precisionRound.js", "../../node_modules/d3-scale/src/tickFormat.js", "../../node_modules/d3-scale/src/linear.js", "../../node_modules/d3-time/src/interval.js", "../../node_modules/d3-time/src/millisecond.js", "../../node_modules/d3-time/src/second.js", "../../node_modules/d3-time/src/minute.js", "../../node_modules/d3-time/src/hour.js", "../../node_modules/d3-time/src/day.js", "../../node_modules/d3-time/src/week.js", "../../node_modules/d3-time/src/month.js", "../../node_modules/d3-time/src/year.js", "../../node_modules/d3-time/src/ticks.js", "../../node_modules/d3-time-format/src/locale.js", "../../node_modules/d3-time-format/src/defaultLocale.js", "../../node_modules/d3-scale/src/nice.js", "../../node_modules/d3-scale/src/time.js", "../../node_modules/d3-scale-chromatic/src/colors.js", "../../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js", "../../node_modules/d3-shape/src/constant.js", "../../node_modules/d3-shape/src/math.js", "../../node_modules/d3-path/src/path.js", "../../node_modules/d3-shape/src/path.js", "../../node_modules/d3-shape/src/arc.js", "../../node_modules/d3-shape/src/curve/linear.js", "../../node_modules/d3-shape/src/array.js", "../../node_modules/d3-shape/src/point.js", "../../node_modules/d3-shape/src/line.js", "../../node_modules/d3-shape/src/descending.js", "../../node_modules/d3-shape/src/identity.js", "../../node_modules/d3-shape/src/pie.js", "../../node_modules/d3-shape/src/curve/basis.js", "../../node_modules/d3-shape/src/curve/bump.js", "../../node_modules/d3-shape/src/noop.js", "../../node_modules/d3-shape/src/curve/basisClosed.js", "../../node_modules/d3-shape/src/curve/basisOpen.js", "../../node_modules/d3-shape/src/curve/bundle.js", "../../node_modules/d3-shape/src/curve/cardinal.js", "../../node_modules/d3-shape/src/curve/cardinalClosed.js", "../../node_modules/d3-shape/src/curve/cardinalOpen.js", "../../node_modules/d3-shape/src/curve/catmullRom.js", "../../node_modules/d3-shape/src/curve/catmullRomClosed.js", "../../node_modules/d3-shape/src/curve/catmullRomOpen.js", "../../node_modules/d3-shape/src/curve/linearClosed.js", "../../node_modules/d3-shape/src/curve/monotone.js", "../../node_modules/d3-shape/src/curve/natural.js", "../../node_modules/d3-shape/src/curve/step.js", "../../node_modules/d3-dispatch/src/dispatch.js", "../../node_modules/d3-timer/src/timer.js", "../../node_modules/d3-timer/src/timeout.js", "../../node_modules/d3-transition/src/transition/schedule.js", "../../node_modules/d3-transition/src/interrupt.js", "../../node_modules/d3-transition/src/selection/interrupt.js", "../../node_modules/d3-transition/src/transition/tween.js", "../../node_modules/d3-transition/src/transition/interpolate.js", "../../node_modules/d3-transition/src/transition/attr.js", "../../node_modules/d3-transition/src/transition/attrTween.js", "../../node_modules/d3-transition/src/transition/delay.js", "../../node_modules/d3-transition/src/transition/duration.js", "../../node_modules/d3-transition/src/transition/ease.js", "../../node_modules/d3-transition/src/transition/easeVarying.js", "../../node_modules/d3-transition/src/transition/filter.js", "../../node_modules/d3-transition/src/transition/merge.js", "../../node_modules/d3-transition/src/transition/on.js", "../../node_modules/d3-transition/src/transition/remove.js", "../../node_modules/d3-transition/src/transition/select.js", "../../node_modules/d3-transition/src/transition/selectAll.js", "../../node_modules/d3-transition/src/transition/selection.js", "../../node_modules/d3-transition/src/transition/style.js", "../../node_modules/d3-transition/src/transition/styleTween.js", "../../node_modules/d3-transition/src/transition/text.js", "../../node_modules/d3-transition/src/transition/textTween.js", "../../node_modules/d3-transition/src/transition/transition.js", "../../node_modules/d3-transition/src/transition/end.js", "../../node_modules/d3-transition/src/transition/index.js", "../../node_modules/d3-ease/src/cubic.js", "../../node_modules/d3-transition/src/selection/transition.js", "../../node_modules/d3-transition/src/selection/index.js", "../../node_modules/d3-brush/src/brush.js", "../../node_modules/d3-fetch/src/text.js", "../../node_modules/d3-fetch/src/xml.js", "../../node_modules/d3-zoom/src/transform.js", "../../node_modules/khroma/dist/utils/channel.js", "../../node_modules/khroma/dist/utils/lang.js", "../../node_modules/khroma/dist/utils/unit.js", "../../node_modules/khroma/dist/utils/index.js", "../../node_modules/khroma/dist/constants.js", "../../node_modules/khroma/dist/channels/type.js", "../../node_modules/khroma/dist/channels/index.js", "../../node_modules/khroma/dist/channels/reusable.js", "../../node_modules/khroma/dist/color/hex.js", "../../node_modules/khroma/dist/color/hsl.js", "../../node_modules/khroma/dist/color/keyword.js", "../../node_modules/khroma/dist/color/rgb.js", "../../node_modules/khroma/dist/color/index.js", "../../node_modules/khroma/dist/methods/luminance.js", "../../node_modules/khroma/dist/methods/is_light.js", "../../node_modules/khroma/dist/methods/is_dark.js", "../../node_modules/khroma/dist/methods/adjust_channel.js", "../../node_modules/khroma/dist/methods/lighten.js", "../../node_modules/khroma/dist/methods/darken.js", "../../node_modules/khroma/dist/methods/change.js", "../../node_modules/khroma/dist/methods/rgba.js", "../../node_modules/khroma/dist/methods/channel.js", "../../node_modules/khroma/dist/methods/adjust.js", "../../node_modules/khroma/dist/methods/mix.js", "../../node_modules/khroma/dist/methods/invert.js", "../../node_modules/lodash-es/_freeGlobal.js", "../../node_modules/lodash-es/_root.js", "../../node_modules/lodash-es/_Symbol.js", "../../node_modules/lodash-es/_getRawTag.js", "../../node_modules/lodash-es/_objectToString.js", "../../node_modules/lodash-es/_baseGetTag.js", "../../node_modules/lodash-es/isObject.js", "../../node_modules/lodash-es/isFunction.js", "../../node_modules/lodash-es/_coreJsData.js", "../../node_modules/lodash-es/_isMasked.js", "../../node_modules/lodash-es/_toSource.js", "../../node_modules/lodash-es/_baseIsNative.js", "../../node_modules/lodash-es/_getValue.js", "../../node_modules/lodash-es/_getNative.js", "../../node_modules/lodash-es/_nativeCreate.js", "../../node_modules/lodash-es/_hashClear.js", "../../node_modules/lodash-es/_hashDelete.js", "../../node_modules/lodash-es/_hashGet.js", "../../node_modules/lodash-es/_hashHas.js", "../../node_modules/lodash-es/_hashSet.js", "../../node_modules/lodash-es/_Hash.js", "../../node_modules/lodash-es/_listCacheClear.js", "../../node_modules/lodash-es/eq.js", "../../node_modules/lodash-es/_assocIndexOf.js", "../../node_modules/lodash-es/_listCacheDelete.js", "../../node_modules/lodash-es/_listCacheGet.js", "../../node_modules/lodash-es/_listCacheHas.js", "../../node_modules/lodash-es/_listCacheSet.js", "../../node_modules/lodash-es/_ListCache.js", "../../node_modules/lodash-es/_Map.js", "../../node_modules/lodash-es/_mapCacheClear.js", "../../node_modules/lodash-es/_isKeyable.js", "../../node_modules/lodash-es/_getMapData.js", "../../node_modules/lodash-es/_mapCacheDelete.js", "../../node_modules/lodash-es/_mapCacheGet.js", "../../node_modules/lodash-es/_mapCacheHas.js", "../../node_modules/lodash-es/_mapCacheSet.js", "../../node_modules/lodash-es/_MapCache.js", "../../node_modules/lodash-es/memoize.js", "../../node_modules/lodash-es/_stackClear.js", "../../node_modules/lodash-es/_stackDelete.js", "../../node_modules/lodash-es/_stackGet.js", "../../node_modules/lodash-es/_stackHas.js", "../../node_modules/lodash-es/_stackSet.js", "../../node_modules/lodash-es/_Stack.js", "../../node_modules/lodash-es/_defineProperty.js", "../../node_modules/lodash-es/_baseAssignValue.js", "../../node_modules/lodash-es/_assignMergeValue.js", "../../node_modules/lodash-es/_createBaseFor.js", "../../node_modules/lodash-es/_baseFor.js", "../../node_modules/lodash-es/_cloneBuffer.js", "../../node_modules/lodash-es/_Uint8Array.js", "../../node_modules/lodash-es/_cloneArrayBuffer.js", "../../node_modules/lodash-es/_cloneTypedArray.js", "../../node_modules/lodash-es/_copyArray.js", "../../node_modules/lodash-es/_baseCreate.js", "../../node_modules/lodash-es/_overArg.js", "../../node_modules/lodash-es/_getPrototype.js", "../../node_modules/lodash-es/_isPrototype.js", "../../node_modules/lodash-es/_initCloneObject.js", "../../node_modules/lodash-es/isObjectLike.js", "../../node_modules/lodash-es/_baseIsArguments.js", "../../node_modules/lodash-es/isArguments.js", "../../node_modules/lodash-es/isArray.js", "../../node_modules/lodash-es/isLength.js", "../../node_modules/lodash-es/isArrayLike.js", "../../node_modules/lodash-es/isArrayLikeObject.js", "../../node_modules/lodash-es/stubFalse.js", "../../node_modules/lodash-es/isBuffer.js", "../../node_modules/lodash-es/isPlainObject.js", "../../node_modules/lodash-es/_baseIsTypedArray.js", "../../node_modules/lodash-es/_baseUnary.js", "../../node_modules/lodash-es/_nodeUtil.js", "../../node_modules/lodash-es/isTypedArray.js", "../../node_modules/lodash-es/_safeGet.js", "../../node_modules/lodash-es/_assignValue.js", "../../node_modules/lodash-es/_copyObject.js", "../../node_modules/lodash-es/_baseTimes.js", "../../node_modules/lodash-es/_isIndex.js", "../../node_modules/lodash-es/_arrayLikeKeys.js", "../../node_modules/lodash-es/_nativeKeysIn.js", "../../node_modules/lodash-es/_baseKeysIn.js", "../../node_modules/lodash-es/keysIn.js", "../../node_modules/lodash-es/toPlainObject.js", "../../node_modules/lodash-es/_baseMergeDeep.js", "../../node_modules/lodash-es/_baseMerge.js", "../../node_modules/lodash-es/identity.js", "../../node_modules/lodash-es/_apply.js", "../../node_modules/lodash-es/_overRest.js", "../../node_modules/lodash-es/constant.js", "../../node_modules/lodash-es/_baseSetToString.js", "../../node_modules/lodash-es/_shortOut.js", "../../node_modules/lodash-es/_setToString.js", "../../node_modules/lodash-es/_baseRest.js", "../../node_modules/lodash-es/_isIterateeCall.js", "../../node_modules/lodash-es/_createAssigner.js", "../../node_modules/lodash-es/merge.js", "../../node_modules/lodash-es/_nativeKeys.js", "../../node_modules/lodash-es/_baseKeys.js", "../../node_modules/lodash-es/_DataView.js", "../../node_modules/lodash-es/_Promise.js", "../../node_modules/lodash-es/_Set.js", "../../node_modules/lodash-es/_WeakMap.js", "../../node_modules/lodash-es/_getTag.js", "../../node_modules/lodash-es/isEmpty.js", "../../node_modules/mermaid/dist/mermaid-934d9bea.js", "../../node_modules/stylis/src/Enum.js", "../../node_modules/stylis/src/Utility.js", "../../node_modules/stylis/src/Tokenizer.js", "../../node_modules/stylis/src/Parser.js", "../../node_modules/stylis/src/Serializer.js"], "sourcesContent": ["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|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,M={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(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n return str.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n var sanitizedUrl = decodeHtmlCharacters(url || \"\")\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return \"about:blank\";\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return \"about:blank\";\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n", "const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nexport function unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/* Add properties to a lookup table */\nexport function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ?? stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nexport function clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n newObject[property] = value;\n }\n\n return newObject;\n}\n\n/* This method automatically checks if the prop is function\n * or getter and behaves accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n};\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n", "import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n", "import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n", "import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n} from './utils.js';\n\nconst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n const originalDocument = window.document;\n const currentScript = originalDocument.currentScript;\n\n let { document } = window;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? (PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE);\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPACES' in cfg\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAFE_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS =\n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONTENTS' in cfg\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS =\n 'FORBID_TAGS' in cfg\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR =\n 'FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [...TAGS.text]);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, TAGS.svg);\n addToSet(ALL_SVG_TAGS, TAGS.svgFilters);\n addToSet(ALL_SVG_TAGS, TAGS.svgDisallowed);\n\n const ALL_MATHML_TAGS = addToSet({}, TAGS.mathMl);\n addToSet(ALL_MATHML_TAGS, TAGS.mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n const _createIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n null,\n false\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'object'\n ? object instanceof Node\n : object &&\n typeof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n (!_isNode(currentNode.content) ||\n !_isNode(currentNode.content.firstElementChild)) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n )\n return false;\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n )\n return false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(\n cloneNode(childNodes[i], true),\n getNextSibling(currentNode)\n );\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR, ' ');\n content = stringReplace(content, ERB_EXPR, ' ');\n content = stringReplace(content, TMPLIT_EXPR, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_basicCustomElementTest(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n const _basicCustomElementTest = function (tagName) {\n return tagName.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n let attr;\n let value;\n let lcName;\n let l;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n const { name, namespaceURI } = attr;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR, ' ');\n value = stringReplace(value, ERB_EXPR, ' ');\n value = stringReplace(value, TMPLIT_EXPR, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode;\n const shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body;\n let importedNode;\n let currentNode;\n let returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n", "export function dedent(\n templ: TemplateStringsArray | string,\n ...values: unknown[]\n): string {\n let strings = Array.from(typeof templ === 'string' ? [templ] : templ);\n\n // 1. Remove trailing whitespace.\n strings[strings.length - 1] = strings[strings.length - 1].replace(\n /\\r?\\n([\\t ]*)$/,\n '',\n );\n\n // 2. Find all line breaks to determine the highest common indentation level.\n const indentLengths = strings.reduce((arr, str) => {\n const matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n if (matches) {\n return arr.concat(\n matches.map((match) => match.match(/[\\t ]/g)?.length ?? 0),\n );\n }\n return arr;\n }, []);\n\n // 3. Remove the common indentation from all strings.\n if (indentLengths.length) {\n const pattern = new RegExp(`\\n[\\t ]{${Math.min(...indentLengths)}}`, 'g');\n\n strings = strings.map((str) => str.replace(pattern, '\\n'));\n }\n\n // 4. Remove leading whitespace.\n strings[0] = strings[0].replace(/^\\r?\\n/, '');\n\n // 5. Perform interpolation.\n let string = strings[0];\n\n values.forEach((value, i) => {\n // 5.1 Read current indentation level\n const endentations = string.match(/(?:^|\\n)( *)$/)\n const endentation = endentations ? endentations[1] : ''\n let indentedValue = value\n // 5.2 Add indentation to values with multiline strings\n if (typeof value === 'string' && value.includes('\\n')) {\n indentedValue = String(value)\n .split('\\n')\n .map((str, i) => {\n return i === 0 ? str : `${endentation}${str}`\n })\n .join('\\n');\n }\n\n string += indentedValue + strings[i + 1];\n });\n\n return string;\n}\n\nexport default dedent;\n", "export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n", "export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n", "export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n", "import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can\u2019t do this\n // for a comparator (except for specific, known comparators) because we can\u2019t\n // tell if the comparator is symmetric, and an asymmetric comparator can\u2019t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n", "export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n", "import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n", "export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n", "const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n", "export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n", "export default function(x) {\n return x;\n}\n", "import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n", "function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don\u2019t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n", "function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n", "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n", "export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n", "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n", "export default function(update) {\n return new Array(update.length);\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n", "export default function(x) {\n return function() {\n return x;\n };\n}\n", "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don\u2019t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn\u2019t worried about \u201Clive\u201D collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don\u2019t; we\u2019d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n", "export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n", "export default function() {\n return Array.from(this);\n}\n", "export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n", "export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n", "export default function() {\n return !this.node();\n}\n", "export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n", "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n", "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n", "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n", "export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n", "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n", "function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n", "function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n", "function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n", "function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n", "function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n", "function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n", "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n", "import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n", "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n", "function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n", "function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n", "export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n", "function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n", "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n", "export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n", "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n", "import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n", "import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n", "export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n", "export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n", "export default x => () => x;\n", "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n", "import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n", "export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n", "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n", "export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n", "import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n", "export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n", "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n", "import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n", "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n", "import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n", "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n", "import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n", "import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n", "export default function constants(x) {\n return function() {\n return x;\n };\n}\n", "export default function number(x) {\n return +x;\n}\n", "import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n", "export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, \u00B1Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n", "export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n", "export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n", "// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n", "// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n", "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n", "import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n", "export default function(x) {\n return x;\n}\n", "import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\u00B5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"\u2212\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer \u201Cvalue\u201D part that can be\n // grouped, and fractional or exponential \u201Csuffix\u201D part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n", "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n", "import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n", "import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n", "import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n", "const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n", "import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n", "import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n", "import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n", "import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n", "import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n", "import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n", "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n", "export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n", "import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n", "export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n", "import colors from \"../colors.js\";\n\nexport default colors(\"4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab\");\n", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We\u2019re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n", "import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n", "import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 \u2265 r0, da1 \u2265 da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it\u2019s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector\u2019s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it\u2019s a circular sector?\n // Or perhaps it\u2019s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector\u2019s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n", "function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n", "export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n", "export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n", "import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n", "export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n", "export default function(d) {\n return d;\n}\n", "import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n", "import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n", "export default function() {}\n", "import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n", "import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n", "import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n", "function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic B\u00E9zier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n", "function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n", "function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n", "var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n", "var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n", "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n", "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n", "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n", "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n", "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n", "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n", "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n", "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n", "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n", "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n", "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n", "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n", "function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n", "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n", "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n", "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n", "function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n", "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n", "function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n", "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n", "import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n", "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n", "export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n", "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n", "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name \u201C__brush\u201D rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n", "function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n", "import text from \"./text.js\";\n\nfunction parser(type) {\n return (input, init) => text(input, init)\n .then(text => (new DOMParser).parseFromString(text, type));\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n", "export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n", "/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n", "/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n", "/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n", "/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n", "/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n", "/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n", "/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n", "/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n", "/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n", "/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\n", "/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n", "/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n", "/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst channel = (color, channel) => {\n return _.lang.round(Color.parse(color)[channel]);\n};\n/* EXPORT */\nexport default channel;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n", "/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n", "import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n", "import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n", "import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n", "import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n", "import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n", "import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n", "import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n", "import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n", "import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n", "import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n", "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n", "import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n", "import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n", "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n", "import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n", "import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n", "import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n", "import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n", "import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n", "import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n", "import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n", "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n", "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n", "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n", "import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n", "import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n", "import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n", "import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n", "/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n", "import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n", "import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n", "import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n", "import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n", "/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n", "import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n", "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n", "import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n", "import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n", "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n", "import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n", "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n", "import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n", "import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n", "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n", "import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n", "import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n", "import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n", "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n", "import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n", "import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n", "/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n", "import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n", "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n", "import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n", "/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n", "import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n", "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n", "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n", "import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n", "import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n", "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n", "/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n", "import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n", "/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n", "import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n", "/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n", "import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n", "import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n", "import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n", "import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n", "import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n", "import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n", "import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n", "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n", "import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n", "import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n", "import { dedent } from \"ts-dedent\";\nimport dayjs from \"dayjs\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from \"d3\";\nimport DOMPurify from \"dompurify\";\nimport { adjust, invert, darken, lighten, isDark, rgba } from \"khroma\";\nimport memoize from \"lodash-es/memoize.js\";\nimport merge$1 from \"lodash-es/merge.js\";\nimport { serialize, compile, stringify } from \"stylis\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\nconst LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nconst log$1 = {\n trace: (..._args) => {\n },\n debug: (..._args) => {\n },\n info: (..._args) => {\n },\n warn: (..._args) => {\n },\n error: (..._args) => {\n },\n fatal: (..._args) => {\n }\n};\nconst setLogLevel$1 = function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n level = level.toLowerCase();\n if (level in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log$1.trace = () => {\n };\n log$1.debug = () => {\n };\n log$1.info = () => {\n };\n log$1.warn = () => {\n };\n log$1.error = () => {\n };\n log$1.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log$1.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log$1.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log$1.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log$1.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log$1.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log$1.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n};\nconst format = (level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n};\nconst lineBreakRegex = //gi;\nconst getRows = (s) => {\n if (!s) {\n return [\"\"];\n }\n const str2 = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str2.split(\"#br#\");\n};\nconst removeScript = (txt) => {\n return DOMPurify.sanitize(txt);\n};\nconst sanitizeMore = (text, config2) => {\n var _a;\n if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(//g, \">\");\n text = text.replace(/=/g, \"=\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n};\nconst sanitizeText$2 = (text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n};\nconst sanitizeTextOrArray = (a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText$2(a, config2);\n }\n return a.flat().map((x) => sanitizeText$2(x, config2));\n};\nconst hasBreaks = (text) => {\n return lineBreakRegex.test(text);\n};\nconst splitBreaks = (text) => {\n return text.split(lineBreakRegex);\n};\nconst placeholderToBreak = (s) => {\n return s.replace(/#br#/g, \"
\");\n};\nconst breakToPlaceholder = (s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n};\nconst getUrl = (useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replaceAll(/\\(/g, \"\\\\(\");\n url = url.replaceAll(/\\)/g, \"\\\\)\");\n }\n return url;\n};\nconst evaluate = (val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true;\nconst getMax = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n};\nconst getMin = function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n};\nconst parseGenericTypes = function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n};\nconst countOccurrence = (string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n};\nconst shouldCombineSets = (previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n};\nconst processSet = (input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n};\nconst common$1 = {\n getRows,\n sanitizeText: sanitizeText$2,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\nconst mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\nconst oldAttributeBackgroundColorOdd = \"#ffffff\";\nconst oldAttributeBackgroundColorEven = \"#f2f2f2\";\nlet Theme$4 = class Theme {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || \"grey\";\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$4 = (userOverrides) => {\n const theme2 = new Theme$4();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$3 = class Theme2 {\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten(this.primaryColor, 16);\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten(invert(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#81B1DB\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten(this.secondaryColor, 20);\n this.git1 = lighten(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2);\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$3 = (userOverrides) => {\n const theme2 = new Theme$3();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$2 = class Theme3 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#e8e8e8\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken(invert(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$2 = (userOverrides) => {\n const theme2 = new Theme$2();\n theme2.calculate(userOverrides);\n return theme2;\n};\nlet Theme$1 = class Theme4 {\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"grey\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nconst getThemeVariables$1 = (userOverrides) => {\n const theme2 = new Theme$1();\n theme2.calculate(userOverrides);\n return theme2;\n};\nclass Theme5 {\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this[\"cScaleLabel0\"] = this[\"cScaleLabel0\"] || this.cScale1;\n this[\"cScaleLabel2\"] = this[\"cScaleLabel2\"] || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n this.taskBorderColor = darken(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background,\n titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor,\n xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor,\n xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor,\n xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor,\n xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor,\n yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor,\n yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor,\n yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor,\n yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor,\n plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n}\nconst getThemeVariables = (userOverrides) => {\n const theme2 = new Theme5();\n theme2.calculate(userOverrides);\n return theme2;\n};\nconst theme = {\n base: {\n getThemeVariables: getThemeVariables$4\n },\n dark: {\n getThemeVariables: getThemeVariables$3\n },\n default: {\n getThemeVariables: getThemeVariables$2\n },\n forest: {\n getThemeVariables: getThemeVariables$1\n },\n neutral: {\n getThemeVariables\n }\n};\nconst defaultConfigJson = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ]\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"theme\": \"default\",\n \"maxTextSize\": 5e4,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\"\n ],\n \"deterministicIds\": false,\n \"fontSize\": 16\n};\nconst config = {\n ...defaultConfigJson,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: theme[\"default\"].getThemeVariables(),\n sequence: {\n ...defaultConfigJson.sequence,\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n },\n noteFont: function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n },\n actorFont: function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }\n },\n gantt: {\n ...defaultConfigJson.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...defaultConfigJson.c4,\n useWidth: void 0,\n personFont: function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n },\n external_personFont: function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n },\n systemFont: function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n },\n external_systemFont: function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n },\n system_dbFont: function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n },\n external_system_dbFont: function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n },\n system_queueFont: function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n },\n external_system_queueFont: function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n },\n containerFont: function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n },\n external_containerFont: function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n },\n container_dbFont: function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n },\n external_container_dbFont: function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n },\n container_queueFont: function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n },\n external_container_queueFont: function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n },\n componentFont: function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n },\n external_componentFont: function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n },\n component_dbFont: function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n },\n external_component_dbFont: function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n },\n component_queueFont: function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n },\n external_component_queueFont: function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n },\n boundaryFont: function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n },\n messageFont: function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }\n },\n pie: {\n ...defaultConfigJson.pie,\n useWidth: 984\n },\n xyChart: {\n ...defaultConfigJson.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...defaultConfigJson.requirement,\n useWidth: void 0\n },\n gitGraph: {\n ...defaultConfigJson.gitGraph,\n // TODO: This is a temporary override for `gitGraph`, since every other\n // diagram does have `useMaxWidth`, but instead sets it to `true`.\n // Should we set this to `true` instead?\n useMaxWidth: false\n },\n sankey: {\n ...defaultConfigJson.sankey,\n // this is false, unlike every other diagram (other than gitGraph)\n // TODO: can we make this default to `true` instead?\n useMaxWidth: false\n }\n};\nconst keyify = (obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []);\nconst configKeys = new Set(keyify(config, \"\"));\nconst defaultConfig$2 = config;\nconst sanitizeDirective = (args) => {\n log$1.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log$1.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log$1.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log$1.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log$1.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if ((val == null ? void 0 : val.match) && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log$1.debug(\"After sanitization\", args);\n};\nconst sanitizeCss = (str2) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str2) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str2;\n};\nconst frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nconst directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst anyCommentRegex = /\\s*%%.*\\n/gm;\nclass UnknownDiagramError extends Error {\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n}\nconst detectors = {};\nconst detectType = function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector: detector2 }] of Object.entries(detectors)) {\n const diagram2 = detector2(text, config2);\n if (diagram2) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n};\nconst registerLazyLoadedDiagrams = (...diagrams2) => {\n for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) {\n addDetector(id2, detector2, loader2);\n }\n};\nconst addDetector = (key, detector2, loader2) => {\n if (detectors[key]) {\n log$1.error(`Detector with key ${key} already exists`);\n } else {\n detectors[key] = { detector: detector2, loader: loader2 };\n }\n log$1.debug(`Detector with key ${key} added${loader2 ? \" with loader\" : \"\"}`);\n};\nconst getDiagramLoader = (key) => {\n return detectors[key].loader;\n};\nconst assignWithDepth = (dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\nconst assignWithDepth$1 = assignWithDepth;\nconst ZERO_WIDTH_SPACE = \"\u200B\";\nconst d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nconst directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nconst detectInit = function(text, config2) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init2) => init2.args);\n sanitizeDirective(args);\n results = assignWithDepth$1(results, [...args]);\n } else {\n results = inits.args;\n }\n if (!results) {\n return;\n }\n let type2 = detectType(text, config2);\n const prop = \"config\";\n if (results[prop] !== void 0) {\n if (type2 === \"flowchart-v2\") {\n type2 = \"flowchart\";\n }\n results[type2] = results[prop];\n delete results[prop];\n }\n return results;\n};\nconst detectDirective = function(text, type2 = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log$1.debug(\n `Detecting diagram directive${type2 !== null ? \" type:\" + type2 : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directiveRegex.exec(text)) !== null) {\n if (match.index === directiveRegex.lastIndex) {\n directiveRegex.lastIndex++;\n }\n if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {\n const type22 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type22, args });\n }\n }\n if (result.length === 0) {\n return { type: text, args: null };\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log$1.error(\n `ERROR: ${error.message} - Unable to parse directive type: '${type2}' based on the text: '${text}'`\n );\n return { type: void 0, args: null };\n }\n};\nconst removeDirectives = function(text) {\n return text.replace(directiveRegex, \"\");\n};\nconst isSubstringInArray = function(str2, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str2)) {\n return i;\n }\n }\n return -1;\n};\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] ?? defaultCurve;\n}\nfunction formatUrl(linkStr, config2) {\n const url = linkStr.trim();\n if (!url) {\n return void 0;\n }\n if (config2.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n}\nconst runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n log$1.error(`Function name: ${functionName} not found in window`);\n return;\n }\n }\n obj[fnName](...params);\n};\nfunction distance(p1, p2) {\n if (!p1 || !p2) {\n return 0;\n }\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n const remainingDistance = totalDistance / 2;\n return calculatePoint(points, remainingDistance);\n}\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\nconst roundNumber = (num, precision = 2) => {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n};\nconst calculatePoint = (points, distanceToTraverse) => {\n let prevPoint = void 0;\n let remainingDistance = distanceToTraverse;\n for (const point of points) {\n if (prevPoint) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n return prevPoint;\n }\n if (distanceRatio >= 1) {\n return { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n return {\n x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),\n y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)\n };\n }\n }\n }\n prevPoint = point;\n }\n throw new Error(\"Could not find a suitable point for the given distance\");\n};\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n log$1.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n const points = structuredClone(_points);\n log$1.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points.reverse();\n }\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n } else if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n } else if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n } else {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n }\n return cardinalityPosition;\n}\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\nlet cnt = 0;\nconst generateId = () => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n};\nfunction makeRandomHex(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\nconst random = (options) => {\n return makeRandomHex(options.length);\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0,\n text: \"\"\n };\n};\nconst drawSimpleText = function(elem, textData) {\n const nText = textData.text.replace(common$1.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n};\nconst wrapLabel = memoize(\n (label, maxWidth, config2) => {\n if (!label) {\n return label;\n }\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"
\" },\n config2\n );\n if (common$1.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \");\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config2);\n const nextLineLength = calculateTextWidth(nextLine, config2);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config2);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config2.joinWith);\n },\n (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}`\n);\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config2) => {\n config2 = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config2\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config2);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nfunction calculateTextHeight(text, config2) {\n return calculateTextDimensions(text, config2).height;\n}\nfunction calculateTextWidth(text, config2) {\n return calculateTextDimensions(text, config2).width;\n}\nconst calculateTextDimensions = memoize(\n (text, config2) => {\n const { fontSize = 12, fontFamily = \"Arial\", fontWeight = 400 } = config2;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common$1.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cHeight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cHeight = Math.round(bBox.height);\n dim.height += cHeight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config2) => `${text}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`\n);\nclass InitIDGenerator {\n constructor(deterministic = false, seed) {\n this.count = 0;\n this.count = seed ? seed.length : 0;\n this.next = deterministic ? () => this.count++ : () => Date.now();\n }\n}\nlet decoder;\nconst entityDecode = function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n};\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\nconst insertTitle = (parent, cssClass, titleTopMargin, title) => {\n var _a;\n if (!title) {\n return;\n }\n const bounds = (_a = parent.node()) == null ? void 0 : _a.getBBox();\n if (!bounds) {\n return;\n }\n parent.append(\"text\").text(title).attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n};\nconst parseFontSize = (fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize ?? \"\", 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n};\nfunction cleanAndMerge(defaultData, data) {\n return merge$1({}, defaultData, data);\n}\nconst utils = {\n assignWithDepth: assignWithDepth$1,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n cleanAndMerge,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n insertTitle,\n parseFontSize,\n InitIDGenerator\n};\nconst version = \"10.6.1\";\nconst defaultConfig$1 = Object.freeze(defaultConfig$2);\nlet siteConfig = assignWithDepth$1({}, defaultConfig$1);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth$1({}, defaultConfig$1);\nconst updateCurrentConfig = (siteCfg, _directives) => {\n let cfg = assignWithDepth$1({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);\n }\n cfg = assignWithDepth$1(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {\n const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);\n const themeVariables = assignWithDepth$1(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in theme) {\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n};\nconst setSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1({}, defaultConfig$1);\n siteConfig = assignWithDepth$1(siteConfig, conf);\n if (conf.theme && theme[conf.theme]) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst saveConfigFromInitialize = (conf) => {\n configFromInitialize = assignWithDepth$1({}, conf);\n};\nconst updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth$1(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\nconst getSiteConfig = () => {\n return assignWithDepth$1({}, siteConfig);\n};\nconst setConfig$1 = (conf) => {\n checkConfig(conf);\n assignWithDepth$1(currentConfig, conf);\n return getConfig$1();\n};\nconst getConfig$1 = () => {\n return assignWithDepth$1({}, currentConfig);\n};\nconst sanitize = (options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log$1.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n};\nconst addDirective = (directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && (!directive.themeVariables || !directive.themeVariables.fontFamily)) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\nconst reset = (config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n};\nconst ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nconst issuedWarnings = {};\nconst issueWarning = (warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log$1.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n};\nconst checkConfig = (config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n};\nconst id$k = \"c4\";\nconst detector$k = (txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n};\nconst loader$l = async () => {\n const { diagram: diagram2 } = await import(\"./c4Diagram-817c8e44.js\");\n return { id: id$k, diagram: diagram2 };\n};\nconst plugin$i = {\n id: id$k,\n detector: detector$k,\n loader: loader$l\n};\nconst c4 = plugin$i;\nconst id$j = \"flowchart\";\nconst detector$j = (txt, config2) => {\n var _a, _b;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n};\nconst loader$k = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-61eb444c.js\");\n return { id: id$j, diagram: diagram2 };\n};\nconst plugin$h = {\n id: id$j,\n detector: detector$j,\n loader: loader$k\n};\nconst flowchart = plugin$h;\nconst id$i = \"flowchart-v2\";\nconst detector$i = (txt, config2) => {\n var _a, _b, _c;\n if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"dagre-d3\" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === \"elk\") {\n return false;\n }\n if (/^\\s*graph/.test(txt) && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n};\nconst loader$j = async () => {\n const { diagram: diagram2 } = await import(\"./flowDiagram-v2-2f8f667a.js\");\n return { id: id$i, diagram: diagram2 };\n};\nconst plugin$g = {\n id: id$i,\n detector: detector$i,\n loader: loader$j\n};\nconst flowchartV2 = plugin$g;\nconst id$h = \"er\";\nconst detector$h = (txt) => {\n return /^\\s*erDiagram/.test(txt);\n};\nconst loader$i = async () => {\n const { diagram: diagram2 } = await import(\"./erDiagram-9cfc3649.js\");\n return { id: id$h, diagram: diagram2 };\n};\nconst plugin$f = {\n id: id$h,\n detector: detector$h,\n loader: loader$i\n};\nconst er = plugin$f;\nconst id$g = \"gitGraph\";\nconst detector$g = (txt) => {\n return /^\\s*gitGraph/.test(txt);\n};\nconst loader$h = async () => {\n const { diagram: diagram2 } = await import(\"./gitGraphDiagram-6b463803.js\");\n return { id: id$g, diagram: diagram2 };\n};\nconst plugin$e = {\n id: id$g,\n detector: detector$g,\n loader: loader$h\n};\nconst git = plugin$e;\nconst id$f = \"gantt\";\nconst detector$f = (txt) => {\n return /^\\s*gantt/.test(txt);\n};\nconst loader$g = async () => {\n const { diagram: diagram2 } = await import(\"./ganttDiagram-db6931fb.js\");\n return { id: id$f, diagram: diagram2 };\n};\nconst plugin$d = {\n id: id$f,\n detector: detector$f,\n loader: loader$g\n};\nconst gantt = plugin$d;\nconst id$e = \"info\";\nconst detector$e = (txt) => {\n return /^\\s*info/.test(txt);\n};\nconst loader$f = async () => {\n const { diagram: diagram2 } = await import(\"./infoDiagram-a336098b.js\");\n return { id: id$e, diagram: diagram2 };\n};\nconst info = {\n id: id$e,\n detector: detector$e,\n loader: loader$f\n};\nconst id$d = \"pie\";\nconst detector$d = (txt) => {\n return /^\\s*pie/.test(txt);\n};\nconst loader$e = async () => {\n const { diagram: diagram2 } = await import(\"./pieDiagram-a5166659.js\");\n return { id: id$d, diagram: diagram2 };\n};\nconst pie = {\n id: id$d,\n detector: detector$d,\n loader: loader$e\n};\nconst id$c = \"quadrantChart\";\nconst detector$c = (txt) => {\n return /^\\s*quadrantChart/.test(txt);\n};\nconst loader$d = async () => {\n const { diagram: diagram2 } = await import(\"./quadrantDiagram-6c355bbc.js\");\n return { id: id$c, diagram: diagram2 };\n};\nconst plugin$c = {\n id: id$c,\n detector: detector$c,\n loader: loader$d\n};\nconst quadrantChart = plugin$c;\nconst id$b = \"xychart\";\nconst detector$b = (txt) => {\n return /^\\s*xychart-beta/.test(txt);\n};\nconst loader$c = async () => {\n const { diagram: diagram2 } = await import(\"./xychartDiagram-f746c04c.js\");\n return { id: id$b, diagram: diagram2 };\n};\nconst plugin$b = {\n id: id$b,\n detector: detector$b,\n loader: loader$c\n};\nconst xychart = plugin$b;\nconst id$a = \"requirement\";\nconst detector$a = (txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n};\nconst loader$b = async () => {\n const { diagram: diagram2 } = await import(\"./requirementDiagram-4038b16c.js\");\n return { id: id$a, diagram: diagram2 };\n};\nconst plugin$a = {\n id: id$a,\n detector: detector$a,\n loader: loader$b\n};\nconst requirement = plugin$a;\nconst id$9 = \"sequence\";\nconst detector$9 = (txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n};\nconst loader$a = async () => {\n const { diagram: diagram2 } = await import(\"./sequenceDiagram-465a088a.js\");\n return { id: id$9, diagram: diagram2 };\n};\nconst plugin$9 = {\n id: id$9,\n detector: detector$9,\n loader: loader$a\n};\nconst sequence = plugin$9;\nconst id$8 = \"class\";\nconst detector$8 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n};\nconst loader$9 = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-48ab76fb.js\");\n return { id: id$8, diagram: diagram2 };\n};\nconst plugin$8 = {\n id: id$8,\n detector: detector$8,\n loader: loader$9\n};\nconst classDiagram = plugin$8;\nconst id$7 = \"classDiagram\";\nconst detector$7 = (txt, config2) => {\n var _a;\n if (/^\\s*classDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n};\nconst loader$8 = async () => {\n const { diagram: diagram2 } = await import(\"./classDiagram-v2-8ecb0bfc.js\");\n return { id: id$7, diagram: diagram2 };\n};\nconst plugin$7 = {\n id: id$7,\n detector: detector$7,\n loader: loader$8\n};\nconst classDiagramV2 = plugin$7;\nconst id$6 = \"state\";\nconst detector$6 = (txt, config2) => {\n var _a;\n if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n};\nconst loader$7 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-b620d43f.js\");\n return { id: id$6, diagram: diagram2 };\n};\nconst plugin$6 = {\n id: id$6,\n detector: detector$6,\n loader: loader$7\n};\nconst state = plugin$6;\nconst id$5 = \"stateDiagram\";\nconst detector$5 = (txt, config2) => {\n var _a;\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === \"dagre-wrapper\") {\n return true;\n }\n return false;\n};\nconst loader$6 = async () => {\n const { diagram: diagram2 } = await import(\"./stateDiagram-v2-2671c3d1.js\");\n return { id: id$5, diagram: diagram2 };\n};\nconst plugin$5 = {\n id: id$5,\n detector: detector$5,\n loader: loader$6\n};\nconst stateV2 = plugin$5;\nconst id$4 = \"journey\";\nconst detector$4 = (txt) => {\n return /^\\s*journey/.test(txt);\n};\nconst loader$5 = async () => {\n const { diagram: diagram2 } = await import(\"./journeyDiagram-deae3313.js\");\n return { id: id$4, diagram: diagram2 };\n};\nconst plugin$4 = {\n id: id$4,\n detector: detector$4,\n loader: loader$5\n};\nconst journey = plugin$4;\nconst d3Attrs = function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n};\nconst calculateSvgSizeAttrs = function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n};\nconst configureSvgSize = function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n};\nconst setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log$1.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log$1.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n};\nconst themes = {};\nconst getStyles = (type2, userStyles, options) => {\n let diagramStyles = \"\";\n if (type2 in themes && themes[type2]) {\n diagramStyles = themes[type2](options);\n } else {\n log$1.warn(`No theme found for ${type2}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n};\nconst addStylesForDiagram = (type2, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type2] = diagramTheme;\n }\n};\nconst getStyles$1 = getStyles;\nlet accTitle = \"\";\nlet diagramTitle = \"\";\nlet accDescription = \"\";\nconst sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1());\nconst clear = () => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n};\nconst setAccTitle = (txt) => {\n accTitle = sanitizeText$1(txt).replace(/^\\s+/g, \"\");\n};\nconst getAccTitle = () => accTitle;\nconst setAccDescription = (txt) => {\n accDescription = sanitizeText$1(txt).replace(/\\n\\s+/g, \"\\n\");\n};\nconst getAccDescription = () => accDescription;\nconst setDiagramTitle = (txt) => {\n diagramTitle = sanitizeText$1(txt);\n};\nconst getDiagramTitle = () => diagramTitle;\nconst commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n clear,\n getAccDescription,\n getAccTitle,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst log = log$1;\nconst setLogLevel = setLogLevel$1;\nconst getConfig = getConfig$1;\nconst setConfig = setConfig$1;\nconst defaultConfig = defaultConfig$1;\nconst sanitizeText = (text) => sanitizeText$2(text, getConfig());\nconst setupGraphViewbox = setupGraphViewbox$1;\nconst getCommonDb = () => {\n return commonDb;\n};\nconst diagrams = {};\nconst registerDiagram = (id2, diagram2, detector2) => {\n var _a;\n if (diagrams[id2]) {\n throw new Error(`Diagram ${id2} already registered.`);\n }\n diagrams[id2] = diagram2;\n if (detector2) {\n addDetector(id2, detector2);\n }\n addStylesForDiagram(id2, diagram2.styles);\n (_a = diagram2.injectUtils) == null ? void 0 : _a.call(\n diagram2,\n log,\n setLogLevel,\n getConfig,\n sanitizeText,\n setupGraphViewbox,\n getCommonDb(),\n () => {\n }\n );\n};\nconst getDiagram = (name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n};\nclass DiagramNotFoundError extends Error {\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n}\nconst selectSvgElement = (id2) => {\n var _a;\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id2}`);\n const doc = ((_a = sandboxElement.node()) == null ? void 0 : _a.contentDocument) ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id2}`);\n return svg;\n};\nconst draw = (_text, id2, version2) => {\n log$1.debug(\"renering svg for syntax error\\n\");\n const svg = selectSvgElement(id2);\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n const g = svg.append(\"g\");\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"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\"\n );\n g.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\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version2}`);\n};\nconst renderer = { draw };\nconst errorRenderer = renderer;\nconst diagram = {\n db: {},\n renderer,\n parser: {\n parser: { yy: {} },\n parse: () => {\n return;\n }\n }\n};\nconst errorDiagram = diagram;\nconst id$3 = \"flowchart-elk\";\nconst detector$3 = (txt, config2) => {\n var _a;\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*flowchart|graph/.test(txt) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === \"elk\"\n ) {\n return true;\n }\n return false;\n};\nconst loader$4 = async () => {\n const { diagram: diagram2 } = await import(\"./flowchart-elk-definition-e097735e.js\");\n return { id: id$3, diagram: diagram2 };\n};\nconst plugin$3 = {\n id: id$3,\n detector: detector$3,\n loader: loader$4\n};\nconst flowchartElk = plugin$3;\nconst id$2 = \"timeline\";\nconst detector$2 = (txt) => {\n return /^\\s*timeline/.test(txt);\n};\nconst loader$3 = async () => {\n const { diagram: diagram2 } = await import(\"./timeline-definition-732a2638.js\");\n return { id: id$2, diagram: diagram2 };\n};\nconst plugin$2 = {\n id: id$2,\n detector: detector$2,\n loader: loader$3\n};\nconst timeline = plugin$2;\nconst id$1 = \"mindmap\";\nconst detector$1 = (txt) => {\n return /^\\s*mindmap/.test(txt);\n};\nconst loader$2 = async () => {\n const { diagram: diagram2 } = await import(\"./mindmap-definition-617cf8dd.js\");\n return { id: id$1, diagram: diagram2 };\n};\nconst plugin$1 = {\n id: id$1,\n detector: detector$1,\n loader: loader$2\n};\nconst mindmap = plugin$1;\nconst id = \"sankey\";\nconst detector = (txt) => {\n return /^\\s*sankey-beta/.test(txt);\n};\nconst loader$1 = async () => {\n const { diagram: diagram2 } = await import(\"./sankeyDiagram-6db3d513.js\");\n return { id, diagram: diagram2 };\n};\nconst plugin = {\n id,\n detector,\n loader: loader$1\n};\nconst sankey = plugin;\nlet hasLoadedDiagrams = false;\nconst addDiagrams = () => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: () => {\n }\n },\n styles: {},\n // should never be used\n renderer: {\n draw: () => {\n }\n },\n parser: {\n parser: { yy: {} },\n parse: () => {\n throw new Error(\n \"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\"\n );\n }\n },\n init: () => null\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n registerLazyLoadedDiagrams(\n c4,\n classDiagramV2,\n classDiagram,\n er,\n gantt,\n info,\n pie,\n requirement,\n sequence,\n flowchartElk,\n flowchartV2,\n flowchart,\n mindmap,\n timeline,\n git,\n stateV2,\n state,\n journey,\n quadrantChart,\n sankey,\n xychart\n );\n};\nclass Diagram {\n constructor(text, metadata = {}) {\n this.text = text;\n this.metadata = metadata;\n this.type = \"graph\";\n this.text += \"\\n\";\n const cnf = getConfig$1();\n try {\n this.type = detectType(text, cnf);\n } catch (e) {\n this.type = \"error\";\n this.detectError = e;\n }\n const diagram2 = getDiagram(this.type);\n log$1.debug(\"Type \" + this.type);\n this.db = diagram2.db;\n this.renderer = diagram2.renderer;\n this.parser = diagram2.parser;\n this.parser.parser.yy = this.db;\n this.init = diagram2.init;\n this.parse();\n }\n parse() {\n var _a, _b, _c, _d, _e;\n if (this.detectError) {\n throw this.detectError;\n }\n (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);\n const config2 = getConfig$1();\n (_c = this.init) == null ? void 0 : _c.call(this, config2);\n if (this.metadata.title) {\n (_e = (_d = this.db).setDiagramTitle) == null ? void 0 : _e.call(_d, this.metadata.title);\n }\n this.parser.parse(this.text);\n }\n async render(id2, version2) {\n await this.renderer.draw(this.text, id2, version2, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n}\nconst getDiagramFromText = async (text, metadata = {}) => {\n const type2 = detectType(text, getConfig$1());\n try {\n getDiagram(type2);\n } catch (error) {\n const loader2 = getDiagramLoader(type2);\n if (!loader2) {\n throw new UnknownDiagramError(`Diagram ${type2} not found.`);\n }\n const { id: id2, diagram: diagram2 } = await loader2();\n registerDiagram(id2, diagram2);\n }\n return new Diagram(text, metadata);\n};\nlet interactionFunctions = [];\nconst addFunction = (func) => {\n interactionFunctions.push(func);\n};\nconst attachFunctions = () => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n};\nconst SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\nconst cleanupComments = (text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n};\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence2) {\n if (Array.isArray(sequence2))\n return sequence2;\n else if (isNothing(sequence2))\n return [];\n return [sequence2];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark)\n return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\u2192\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer)\n return null;\n if (!options.maxLength)\n options.maxLength = 79;\n if (typeof options.indent !== \"number\")\n options.indent = 1;\n if (typeof options.linesBefore !== \"number\")\n options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\")\n options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0)\n foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length)\n break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit)\n implicit = implicit.concat(definition.implicit);\n if (definition.explicit)\n explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null)\n return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function() {\n return \"~\";\n },\n lowercase: function() {\n return \"null\";\n },\n uppercase: function() {\n return \"NULL\";\n },\n camelcase: function() {\n return \"Null\";\n },\n empty: function() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null)\n return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\nfunction resolveYamlInteger(data) {\n if (data === null)\n return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max)\n return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max)\n return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (ch !== \"0\" && ch !== \"1\")\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isHexCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isOctCode(data.charCodeAt(index)))\n return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\")\n return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\")\n continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\")\n return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\")\n sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\")\n return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\")\n return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\")\n return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\")\n return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */\n hexadecimal: function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null)\n return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null)\n return false;\n if (YAML_DATE_REGEXP.exec(data) !== null)\n return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)\n return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null)\n match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null)\n throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\")\n delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta)\n date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null)\n return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64)\n continue;\n if (code < 0)\n return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null)\n return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\")\n return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey)\n pairHasKey = true;\n else\n return false;\n }\n }\n if (!pairHasKey)\n return false;\n if (objectKeys.indexOf(pairKey) === -1)\n objectKeys.push(pairKey);\n else\n return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null)\n return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\")\n return false;\n keys = Object.keys(pair);\n if (keys.length !== 1)\n return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null)\n return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null)\n return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null)\n return false;\n }\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"\u0085\" : c === 95 ? \"\u00A0\" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\nfunction generateError(state2, message) {\n var mark = {\n name: state2.filename,\n buffer: state2.input.slice(0, -1),\n // omit trailing \\0\n position: state2.position,\n line: state2.line,\n column: state2.position - state2.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state2, message) {\n throw generateError(state2, message);\n}\nfunction throwWarning(state2, message) {\n if (state2.onWarning) {\n state2.onWarning.call(null, generateError(state2, message));\n }\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state2, name, args) {\n var match, major, minor;\n if (state2.version !== null) {\n throwError(state2, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state2, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state2, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state2, \"unacceptable YAML version of the document\");\n }\n state2.version = args[0];\n state2.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state2, \"unsupported YAML version of the document\");\n }\n },\n TAG: function handleTagDirective(state2, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state2, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state2, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state2.tagMap, handle)) {\n throwError(state2, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state2, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state2, \"tag prefix is malformed: \" + prefix);\n }\n state2.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state2, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state2.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state2, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state2, \"the stream contains non-printable characters\");\n }\n state2.result += _result;\n }\n}\nfunction mergeMappings(state2, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state2, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state2, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state2, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state2, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state2.line = startLine || state2.line;\n state2.lineStart = startLineStart || state2.lineStart;\n state2.position = startPos || state2.position;\n throwError(state2, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state2) {\n var ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 10) {\n state2.position++;\n } else if (ch === 13) {\n state2.position++;\n if (state2.input.charCodeAt(state2.position) === 10) {\n state2.position++;\n }\n } else {\n throwError(state2, \"a line break is expected\");\n }\n state2.line += 1;\n state2.lineStart = state2.position;\n state2.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state2, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state2.firstTabInLine === -1) {\n state2.firstTabInLine = state2.position;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state2);\n ch = state2.input.charCodeAt(state2.position);\n lineBreaks++;\n state2.lineIndent = 0;\n while (ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) {\n throwWarning(state2, \"deficient indentation\");\n }\n return lineBreaks;\n}\nfunction testDocumentSeparator(state2) {\n var _position = state2.position, ch;\n ch = state2.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state2.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\nfunction writeFoldedLines(state2, count) {\n if (count === 1) {\n state2.result += \" \";\n } else if (count > 1) {\n state2.result += common.repeat(\"\\n\", count - 1);\n }\n}\nfunction readPlainScalar(state2, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state2.input.charCodeAt(state2.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state2.line;\n _lineStart = state2.lineStart;\n _lineIndent = state2.lineIndent;\n skipSeparationSpace(state2, false, -1);\n if (state2.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state2.input.charCodeAt(state2.position);\n continue;\n } else {\n state2.position = captureEnd;\n state2.line = _line;\n state2.lineStart = _lineStart;\n state2.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state2, captureStart, captureEnd, false);\n writeFoldedLines(state2, state2.line - _line);\n captureStart = captureEnd = state2.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state2.position + 1;\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, captureEnd, false);\n if (state2.result) {\n return true;\n }\n state2.kind = _kind;\n state2.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state2, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 39) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 39) {\n captureStart = state2.position;\n state2.position++;\n captureEnd = state2.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state2, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 34) {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n state2.position++;\n captureStart = captureEnd = state2.position;\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state2, captureStart, state2.position, true);\n state2.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state2, captureStart, state2.position, true);\n ch = state2.input.charCodeAt(++state2.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state2, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state2.result += simpleEscapeMap[ch];\n state2.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state2.input.charCodeAt(++state2.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state2, \"expected hexadecimal character\");\n }\n }\n state2.result += charFromCodepoint(hexResult);\n state2.position++;\n } else {\n throwError(state2, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state2.position;\n } else if (is_EOL(ch)) {\n captureSegment(state2, captureStart, captureEnd, true);\n writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));\n captureStart = captureEnd = state2.position;\n } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n throwError(state2, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state2.position++;\n captureEnd = state2.position;\n }\n }\n throwError(state2, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state2, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(++state2.position);\n while (ch !== 0) {\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === terminator) {\n state2.position++;\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = isMapping ? \"mapping\" : \"sequence\";\n state2.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state2, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state2, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state2.input.charCodeAt(state2.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state2.position++;\n skipSeparationSpace(state2, true, nodeIndent);\n }\n }\n _line = state2.line;\n _lineStart = state2.lineStart;\n _pos = state2.position;\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state2.tag;\n keyNode = state2.result;\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if ((isExplicitPair || state2.line === _line) && ch === 58) {\n isPair = true;\n ch = state2.input.charCodeAt(++state2.position);\n skipSeparationSpace(state2, true, nodeIndent);\n composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state2.result;\n }\n if (isMapping) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state2, true, nodeIndent);\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 44) {\n readNext = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n readNext = false;\n }\n }\n throwError(state2, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state2, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state2.kind = \"scalar\";\n state2.result = \"\";\n while (ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state2, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state2, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state2, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state2);\n state2.lineIndent = 0;\n ch = state2.input.charCodeAt(state2.position);\n while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) {\n state2.lineIndent++;\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (!detectedIndent && state2.lineIndent > textIndent) {\n textIndent = state2.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state2.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state2.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state2.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state2.result += \" \";\n }\n } else {\n state2.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state2.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state2.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n captureSegment(state2, captureStart, state2.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state2, nodeIndent) {\n var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state2.input.charCodeAt(state2.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state2.position++;\n if (skipSeparationSpace(state2, true, -1)) {\n if (state2.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state2.input.charCodeAt(state2.position);\n continue;\n }\n }\n _line = state2.line;\n composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state2.result);\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a sequence entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"sequence\";\n state2.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state2, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state2.firstTabInLine !== -1)\n return false;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = _result;\n }\n ch = state2.input.charCodeAt(state2.position);\n while (ch !== 0) {\n if (!atExplicitKey && state2.firstTabInLine !== -1) {\n state2.position = state2.firstTabInLine;\n throwError(state2, \"tab characters must not be used in indentation\");\n }\n following = state2.input.charCodeAt(state2.position + 1);\n _line = state2.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state2, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state2.position += 1;\n ch = following;\n } else {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state2.line === _line) {\n ch = state2.input.charCodeAt(state2.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 58) {\n ch = state2.input.charCodeAt(++state2.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state2, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state2.tag;\n keyNode = state2.result;\n } else if (detected) {\n throwError(state2, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state2, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state2.tag = _tag;\n state2.anchor = _anchor;\n return true;\n }\n }\n if (state2.line === _line || state2.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state2.line;\n _keyLineStart = state2.lineStart;\n _keyPos = state2.position;\n }\n if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state2.result;\n } else {\n valueNode = state2.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n }\n if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state2, \"bad indentation of a mapping entry\");\n } else if (state2.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state2.tag = _tag;\n state2.anchor = _anchor;\n state2.kind = \"mapping\";\n state2.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state2) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 33)\n return false;\n if (state2.tag !== null) {\n throwError(state2, \"duplication of a tag property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state2.input.charCodeAt(++state2.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state2.position;\n if (isVerbatim) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && ch !== 62);\n if (state2.position < state2.length) {\n tagName = state2.input.slice(_position, state2.position);\n ch = state2.input.charCodeAt(++state2.position);\n } else {\n throwError(state2, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state2.input.slice(_position - 1, state2.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state2, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state2.position + 1;\n } else {\n throwError(state2, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state2.input.charCodeAt(++state2.position);\n }\n tagName = state2.input.slice(_position, state2.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state2, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state2, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state2, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state2.tag = tagName;\n } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) {\n state2.tag = state2.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state2.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state2.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state2, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\nfunction readAnchorProperty(state2) {\n var _position, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 38)\n return false;\n if (state2.anchor !== null) {\n throwError(state2, \"duplication of an anchor property\");\n }\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an anchor node must contain at least one character\");\n }\n state2.anchor = state2.input.slice(_position, state2.position);\n return true;\n}\nfunction readAlias(state2) {\n var _position, alias, ch;\n ch = state2.input.charCodeAt(state2.position);\n if (ch !== 42)\n return false;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (state2.position === _position) {\n throwError(state2, \"name of an alias node must contain at least one character\");\n }\n alias = state2.input.slice(_position, state2.position);\n if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) {\n throwError(state2, 'unidentified alias \"' + alias + '\"');\n }\n state2.result = state2.anchorMap[alias];\n skipSeparationSpace(state2, true, -1);\n return true;\n}\nfunction composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state2.listener !== null) {\n state2.listener(\"open\", state2);\n }\n state2.tag = null;\n state2.anchor = null;\n state2.kind = null;\n state2.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state2) || readAnchorProperty(state2)) {\n if (skipSeparationSpace(state2, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state2.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state2.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state2.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state2.position - state2.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state2)) {\n hasContent = true;\n if (state2.tag !== null || state2.anchor !== null) {\n throwError(state2, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state2.tag === null) {\n state2.tag = \"?\";\n }\n }\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent);\n }\n }\n if (state2.tag === null) {\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n } else if (state2.tag === \"?\") {\n if (state2.result !== null && state2.kind !== \"scalar\") {\n throwError(state2, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state2.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state2.implicitTypes[typeIndex];\n if (type2.resolve(state2.result)) {\n state2.result = type2.construct(state2.result);\n state2.tag = type2.tag;\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n break;\n }\n }\n } else if (state2.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || \"fallback\"], state2.tag)) {\n type2 = state2.typeMap[state2.kind || \"fallback\"][state2.tag];\n } else {\n type2 = null;\n typeList = state2.typeMap.multi[state2.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state2, \"unknown tag !<\" + state2.tag + \">\");\n }\n if (state2.result !== null && type2.kind !== state2.kind) {\n throwError(state2, \"unacceptable node kind for !<\" + state2.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state2.kind + '\"');\n }\n if (!type2.resolve(state2.result, state2.tag)) {\n throwError(state2, \"cannot resolve a node with !<\" + state2.tag + \"> explicit tag\");\n } else {\n state2.result = type2.construct(state2.result, state2.tag);\n if (state2.anchor !== null) {\n state2.anchorMap[state2.anchor] = state2.result;\n }\n }\n }\n if (state2.listener !== null) {\n state2.listener(\"close\", state2);\n }\n return state2.tag !== null || state2.anchor !== null || hasContent;\n}\nfunction readDocument(state2) {\n var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state2.version = null;\n state2.checkLineBreaks = state2.legacy;\n state2.tagMap = /* @__PURE__ */ Object.create(null);\n state2.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {\n skipSeparationSpace(state2, true, -1);\n ch = state2.input.charCodeAt(state2.position);\n if (state2.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state2.input.charCodeAt(++state2.position);\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveName = state2.input.slice(_position, state2.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state2, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n if (ch === 35) {\n do {\n ch = state2.input.charCodeAt(++state2.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch))\n break;\n _position = state2.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state2.input.charCodeAt(++state2.position);\n }\n directiveArgs.push(state2.input.slice(_position, state2.position));\n }\n if (ch !== 0)\n readLineBreak(state2);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state2, directiveName, directiveArgs);\n } else {\n throwWarning(state2, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state2, true, -1);\n if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n } else if (hasDirectives) {\n throwError(state2, \"directives end mark is expected\");\n }\n composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state2, true, -1);\n if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) {\n throwWarning(state2, \"non-ASCII line breaks are interpreted as content\");\n }\n state2.documents.push(state2.result);\n if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {\n if (state2.input.charCodeAt(state2.position) === 46) {\n state2.position += 3;\n skipSeparationSpace(state2, true, -1);\n }\n return;\n }\n if (state2.position < state2.length - 1) {\n throwError(state2, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state2 = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state2.position = nullpos;\n throwError(state2, \"null byte is not allowed in input\");\n }\n state2.input += \"\\0\";\n while (state2.input.charCodeAt(state2.position) === 32) {\n state2.lineIndent += 1;\n state2.position += 1;\n }\n while (state2.position < state2.length - 1) {\n readDocument(state2);\n }\n return state2.documents;\n}\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar JSON_SCHEMA = json;\nvar load = loader.load;\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\nconst cleanupText = (code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n};\nconst processFrontmatter = (code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config: config2 = {} } = metadata;\n if (displayMode) {\n if (!config2.gantt) {\n config2.gantt = {};\n }\n config2.gantt.displayMode = displayMode;\n }\n return { title, config: config2, text };\n};\nconst processDirectives = (code) => {\n const initDirective = utils.detectInit(code) ?? {};\n const wrapDirectives = utils.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type: type2 }) => {\n });\n } else if ((wrapDirectives == null ? void 0 : wrapDirectives.type) === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n};\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config2 = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config: config2\n };\n}\nconst MAX_TEXTLENGTH = 5e4;\nconst MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nconst SECURITY_LVL_SANDBOX = \"sandbox\";\nconst SECURITY_LVL_LOOSE = \"loose\";\nconst XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nconst XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nconst XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nconst IFRAME_WIDTH = \"100%\";\nconst IFRAME_HEIGHT = \"100%\";\nconst IFRAME_STYLES = \"border:0;margin:0;\";\nconst IFRAME_BODY_STYLE = \"margin:0\";\nconst IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nconst IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nconst DOMPURIFY_TAGS = [\"foreignobject\"];\nconst DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\nasync function parse$1(text, parseOptions) {\n addDiagrams();\n text = processAndSetConfigs(text).code;\n try {\n await getDiagramFromText(text);\n } catch (error) {\n if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {\n return false;\n }\n throw error;\n }\n return true;\n}\nconst encodeEntities = function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"\uFB02\u00B0\u00B0\" + innerTxt + \"\u00B6\u00DF\";\n } else {\n return \"\uFB02\u00B0\" + innerTxt + \"\u00B6\u00DF\";\n }\n });\n return txt;\n};\nconst decodeEntities = function(text) {\n return text.replace(/\uFB02\u00B0\u00B0/g, \"&#\").replace(/\uFB02\u00B0/g, \"&\").replace(/\u00B6\u00DF/g, \";\");\n};\nconst cssImportantStyles = (cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n};\nconst createCssStyles = (config2, classDefs = {}) => {\n var _a;\n let cssStyles = \"\";\n if (config2.themeCSS !== void 0) {\n cssStyles += `\n${config2.themeCSS}`;\n }\n if (config2.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config2.fontFamily}}`;\n }\n if (config2.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;\n }\n if (!isEmpty(classDefs)) {\n const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels);\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n for (const classId in classDefs) {\n const styleClassDef = classDefs[classId];\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(styleClassDef.id, \"tspan\", styleClassDef.textStyles);\n }\n }\n }\n return cssStyles;\n};\nconst createUserStyles = (config2, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config2, classDefs);\n const allStyles = getStyles$1(graphType, userCSSstyles, config2.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n};\nconst cleanUpSvgCode = (svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/
/g, \"
\");\n return cleanedUpSvg;\n};\nconst putIntoIFrame = (svgCode = \"\", svgElement) => {\n var _a, _b;\n const height = ((_b = (_a = svgElement == null ? void 0 : svgElement.viewBox) == null ? void 0 : _a.baseVal) == null ? void 0 : _b.height) ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = btoa('' + svgCode + \"\");\n return ``;\n};\nconst appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id2).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n};\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\nconst removeExistingElements = (doc, id2, divId, iFrameId) => {\n var _a, _b, _c;\n (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();\n (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();\n (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();\n};\nconst render$1 = async function(id2, text, svgContainingElement) {\n var _a, _b, _c, _d, _e, _f;\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config2 = getConfig$1();\n log$1.debug(config2);\n if (text.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id2;\n const iFrameID = \"i\" + id2;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id2;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n let root = select(\"body\");\n const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config2.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id2, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id2, enclosingDivID);\n }\n text = encodeEntities(text);\n let diag;\n let parseEncounteredException;\n try {\n diag = await getDiagramFromText(text, { title: processed.title });\n } catch (error) {\n diag = new Diagram(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = (_b = (_a = diag.renderer).getClasses) == null ? void 0 : _b.call(_a, text, diag);\n const rules = createUserStyles(config2, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id2, version, diag);\n } catch (e) {\n errorRenderer.draw(text, id2, version);\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = (_d = (_c = diag.db).getAccTitle) == null ? void 0 : _d.call(_c);\n const a11yDescr = (_f = (_e = diag.db).getAccDescription) == null ? void 0 : _f.call(_e);\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id2}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log$1.debug(\"config.arrowMarkerAbsolute\", config2.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n return {\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n};\nfunction initialize$1(options = {}) {\n var _a;\n if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if ((options == null ? void 0 : options.theme) && options.theme in theme) {\n options.themeVariables = theme[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = theme.default.getThemeVariables(options.themeVariables);\n }\n const config2 = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel$1(config2.logLevel);\n addDiagrams();\n}\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\nconst mermaidAPI = Object.freeze({\n render: render$1,\n parse: parse$1,\n getDiagramFromText,\n initialize: initialize$1,\n getConfig: getConfig$1,\n setConfig: setConfig$1,\n getSiteConfig,\n updateSiteConfig,\n reset: () => {\n reset();\n },\n globalReset: () => {\n reset(defaultConfig$1);\n },\n defaultConfig: defaultConfig$1\n});\nsetLogLevel$1(getConfig$1().logLevel);\nreset(getConfig$1());\nconst loadRegisteredDiagrams = async () => {\n log$1.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => {\n if (loader2) {\n try {\n getDiagram(key);\n } catch (error) {\n try {\n const { diagram: diagram2, id: id2 } = await loader2();\n registerDiagram(id2, diagram2, detector2);\n } catch (err) {\n log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log$1.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log$1.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n};\nconst handleError = (error, errors, parseError) => {\n log$1.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n};\nconst run = async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log$1.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log$1.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n};\nconst runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log$1.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log$1.debug(`Found ${nodesToProcess.length} diagrams`);\n if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) {\n log$1.debug(\"Start On Load: \" + (conf == null ? void 0 : conf.startOnLoad));\n mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad });\n }\n const idGenerator = new utils.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log$1.info(\"Rendering diagram: \" + element.id);\n /*! Check if previously processed */\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id2 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, \"
\");\n const init2 = utils.detectInit(txt);\n if (init2) {\n log$1.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render(id2, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id2);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n};\nconst initialize = function(config2) {\n mermaidAPI.initialize(config2);\n};\nconst init = async function(config2, nodes, callback) {\n log$1.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config2) {\n initialize(config2);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n};\nconst registerExternalDiagrams = async (diagrams2, {\n lazyLoad = true\n} = {}) => {\n registerLazyLoadedDiagrams(...diagrams2);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n};\nconst contentLoaded = function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log$1.error(\"Mermaid failed to initialize\", err));\n }\n }\n};\nif (typeof document !== \"undefined\") {\n /*!\n * Wait for document loaded before starting the execution\n */\n window.addEventListener(\"load\", contentLoaded, false);\n}\nconst setParseErrorHandler = function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n};\nconst executionQueue = [];\nlet executionQueueRunning = false;\nconst executeQueue = async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log$1.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n};\nconst parse = async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst render = (id2, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = () => new Promise((res, rej) => {\n mermaidAPI.render(id2, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n var _a;\n log$1.error(\"Error parsing\", e);\n (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);\n rej(e);\n reject(e);\n }\n );\n });\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n};\nconst mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse,\n render,\n init,\n run,\n registerExternalDiagrams,\n initialize,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType\n};\nexport {\n defaultConfig$2 as A,\n cleanAndMerge as B,\n parseFontSize as C,\n getThemeVariables$2 as D,\n getConfig$1 as E,\n addFunction as F,\n generateId as G,\n lineBreakRegex as H,\n defaultConfig as I,\n decodeEntities as J,\n commonDb as K,\n mermaid as L,\n ZERO_WIDTH_SPACE as Z,\n getAccDescription as a,\n setAccDescription as b,\n getConfig as c,\n sanitizeText$2 as d,\n common$1 as e,\n assignWithDepth$1 as f,\n getAccTitle as g,\n calculateTextWidth as h,\n configureSvgSize as i,\n calculateTextHeight as j,\n getStylesFromArray as k,\n log$1 as l,\n evaluate as m,\n interpolateToCurve as n,\n setupGraphViewbox$1 as o,\n setConfig as p,\n setDiagramTitle as q,\n getDiagramTitle as r,\n setAccTitle as s,\n clear as t,\n utils as u,\n parseGenericTypes as v,\n wrapLabel as w,\n random as x,\n setupGraphViewbox as y,\n selectSvgElement as z\n};\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n", "import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n"], - "mappings": "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U,WACxB,OAAO9C,EAAQiD,EAAKH,KAAN,CAEjB,CAEDH,EAAS1D,EAAe0D,CAAD,CACxB,CAEQQ,SAAAA,EAAcX,EAAS,CAC9BY,eAAQC,KAAK,qBAAsBb,CAAnC,EACO,IACR,CAED,OAAOW,CACR,CC5HM,IAAMG,GAAOlE,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KArHyB,CAAD,EAyHbmE,EAAMnE,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OA3CwB,CAAD,EA8CZoE,EAAapE,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cAzB+B,CAAD,EAgCnBqE,EAAgBrE,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KAtBkC,CAAD,EAyBtBsE,EAAStE,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aA9B2B,CAAD,EAmCfuE,EAAmBvE,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MAfqC,CAAD,EAkBzBwE,EAAOxE,EAAO,CAAC,OAAD,CAAD,ECrRbkE,EAAOlE,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,QACA,MA7GyB,CAAD,EAgHbmE,EAAMnE,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,YAtLwB,CAAD,EAyLZsE,EAAStE,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,OArD2B,CAAD,EAwDfyE,EAAMzE,EAAO,CACxB,aACA,SACA,cACA,YACA,aALwB,CA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", + "mappings": "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U,WACxB,OAAO9C,EAAQiD,EAAKH,KAAN,CAEjB,CAEDH,EAAS1D,EAAe0D,CAAD,CACxB,CAEQQ,SAAAA,EAAcX,EAAS,CAC9BY,eAAQC,KAAK,qBAAsBb,CAAnC,EACO,IACR,CAED,OAAOW,CACR,CC5HM,IAAMG,GAAOlE,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,KArHyB,CAAD,EAyHbmE,EAAMnE,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,OA3CwB,CAAD,EA8CZoE,EAAapE,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,cAzB+B,CAAD,EAgCnBqE,EAAgBrE,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,KAtBkC,CAAD,EAyBtBsE,EAAStE,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,aA9B2B,CAAD,EAmCfuE,EAAmBvE,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,MAfqC,CAAD,EAkBzBwE,EAAOxE,EAAO,CAAC,OAAD,CAAD,ECrRbkE,EAAOlE,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,QACA,MA7GyB,CAAD,EAgHbmE,EAAMnE,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,YAtLwB,CAAD,EAyLZsE,EAAStE,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,OArD2B,CAAD,EAwDfyE,EAAMzE,EAAO,CACxB,aACA,SACA,cACA,YACA,aALwB,CA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", "names": ["require_dayjs_min", "__commonJSMin", "exports", "module", "n", "r", "i", "s", "u", "a", "o", "f", "c", "d", "l", "$", "y", "M", "t", "e", "m", "g", "D", "p", "_", "S", "w", "O", "h", "v", "T", "require_dist", "__commonJSMin", "exports", "invalidProtocolRegex", "htmlEntitiesRegex", "htmlCtrlEntityRegex", "ctrlCharactersRegex", "urlSchemeRegex", "relativeFirstCharacters", "isRelativeUrlWithoutProtocol", "url", "decodeHtmlCharacters", "str", "match", "dec", "sanitizeUrl", "sanitizedUrl", "urlSchemeParseResults", "urlScheme", "entries", "setPrototypeOf", "isFrozen", "getPrototypeOf", "getOwnPropertyDescriptor", "Object", "freeze", "seal", "create", "apply", "construct", "Reflect", "fun", "thisValue", "args", "x", "Func", "arrayForEach", "unapply", "Array", "prototype", "forEach", "arrayPop", "pop", "arrayPush", "push", "stringToLowerCase", "String", "toLowerCase", "stringToString", "toString", "stringMatch", "match", "stringReplace", "replace", "stringIndexOf", "indexOf", "stringTrim", "trim", "regExpTest", "RegExp", "test", "typeErrorCreate", "unconstruct", "TypeError", "func", "thisArg", "_len", "_key", "_len2", "_key2", "addToSet", "set", "array", "transformCaseFunc", "_transformCaseFunc", "l", "length", "element", "lcElement", "clone", "object", "newObject", "property", "value", "lookupGetter", "prop", "desc", "get", "fallbackValue", "console", "warn", "html", "svg", "svgFilters", "svgDisallowed", "mathMl", "mathMlDisallowed", "text", "xml", "MUSTACHE_EXPR", "ERB_EXPR", "TMPLIT_EXPR", "DATA_ATTR", "ARIA_ATTR", "IS_ALLOWED_URI", "IS_SCRIPT_OR_DATA", "ATTR_WHITESPACE", "DOCTYPE_NAME", "getGlobal", "window", "_createTrustedTypesPolicy", "trustedTypes", "purifyHostElement", "createPolicy", "suffix", "ATTR_NAME", "hasAttribute", "getAttribute", "policyName", "createHTML", "createScriptURL", "scriptUrl", "createDOMPurify", "DOMPurify", "root", "version", "VERSION", "removed", "document", "nodeType", "isSupported", "originalDocument", "currentScript", "DocumentFragment", "HTMLTemplateElement", "Node", "Element", "NodeFilter", "NamedNodeMap", "MozNamedAttrMap", "HTMLFormElement", "DOMParser", "ElementPrototype", "cloneNode", "getNextSibling", "getChildNodes", "getParentNode", "template", "createElement", "content", "ownerDocument", "trustedTypesPolicy", "emptyHTML", "implementation", "createNodeIterator", "createDocumentFragment", "getElementsByTagName", "importNode", "hooks", "createHTMLDocument", "undefined", "EXPRESSIONS", "ALLOWED_TAGS", "DEFAULT_ALLOWED_TAGS", "TAGS", "ALLOWED_ATTR", "DEFAULT_ALLOWED_ATTR", "ATTRS", "CUSTOM_ELEMENT_HANDLING", "tagNameCheck", "writable", "configurable", "enumerable", "attributeNameCheck", "allowCustomizedBuiltInElements", "FORBID_TAGS", "FORBID_ATTR", "ALLOW_ARIA_ATTR", "ALLOW_DATA_ATTR", "ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR", "SAFE_FOR_TEMPLATES", "WHOLE_DOCUMENT", "SET_CONFIG", "FORCE_BODY", "RETURN_DOM", "RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE", "SANITIZE_DOM", "SANITIZE_NAMED_PROPS", "SANITIZE_NAMED_PROPS_PREFIX", "KEEP_CONTENT", "IN_PLACE", "USE_PROFILES", "FORBID_CONTENTS", "DEFAULT_FORBID_CONTENTS", "DATA_URI_TAGS", "DEFAULT_DATA_URI_TAGS", "URI_SAFE_ATTRIBUTES", "DEFAULT_URI_SAFE_ATTRIBUTES", "MATHML_NAMESPACE", "SVG_NAMESPACE", "HTML_NAMESPACE", "NAMESPACE", "IS_EMPTY_INPUT", "ALLOWED_NAMESPACES", "DEFAULT_ALLOWED_NAMESPACES", "PARSER_MEDIA_TYPE", "SUPPORTED_PARSER_MEDIA_TYPES", "DEFAULT_PARSER_MEDIA_TYPE", "CONFIG", "formElement", "isRegexOrFunction", "testValue", "Function", "_parseConfig", "cfg", "ADD_URI_SAFE_ATTR", "ADD_DATA_URI_TAGS", "ALLOWED_URI_REGEXP", "ADD_TAGS", "ADD_ATTR", "table", "tbody", "TRUSTED_TYPES_POLICY", "MATHML_TEXT_INTEGRATION_POINTS", "HTML_INTEGRATION_POINTS", "COMMON_SVG_AND_HTML_ELEMENTS", "ALL_SVG_TAGS", "ALL_MATHML_TAGS", "_checkValidNamespace", "parent", "tagName", "namespaceURI", "parentTagName", "Boolean", "_forceRemove", "node", "parentNode", "removeChild", "remove", "_removeAttribute", "name", "attribute", "getAttributeNode", "from", "removeAttribute", "setAttribute", "_initDocument", "dirty", "doc", "leadingWhitespace", "matches", "dirtyPayload", "parseFromString", "documentElement", "createDocument", "innerHTML", "body", "insertBefore", "createTextNode", "childNodes", "call", "_createIterator", "SHOW_ELEMENT", "SHOW_COMMENT", "SHOW_TEXT", "_isClobbered", "elm", "nodeName", "textContent", "attributes", "hasChildNodes", "_isNode", "_executeHook", "entryPoint", "currentNode", "data", "hook", "_sanitizeElements", "allowedTags", "firstElementChild", "_basicCustomElementTest", "childCount", "i", "_isValidAttribute", "lcTag", "lcName", "_sanitizeAttributes", "attr", "hookEvent", "attrName", "attrValue", "keepAttr", "allowedAttributes", "forceKeepAttr", "getAttributeType", "setAttributeNS", "_sanitizeShadowDOM", "fragment", "shadowNode", "shadowIterator", "nextNode", "sanitize", "importedNode", "returnNode", "appendChild", "firstChild", "nodeIterator", "shadowroot", "shadowrootmode", "serializedHTML", "outerHTML", "doctype", "setConfig", "clearConfig", "isValidAttribute", "tag", "addHook", "hookFunction", "removeHook", "removeHooks", "removeAllHooks", "purify", "dedent", "templ", "values", "_i", "strings", "indentLengths", "arr", "str", "matches", "match", "_a", "_b", "pattern_1", "string", "value", "i", "endentations", "endentation", "indentedValue", "max", "values", "valueof", "value", "index", "min", "values", "valueof", "value", "index", "ascending", "a", "b", "descending", "a", "b", "bisector", "f", "compare1", "compare2", "delta", "ascending", "d", "x", "descending", "zero", "left", "a", "lo", "hi", "mid", "right", "center", "i", "number", "x", "ascendingBisect", "bisector", "ascending", "bisectRight", "bisectLeft", "bisectCenter", "number", "bisect_default", "InternMap", "entries", "key", "keyof", "value", "intern_get", "intern_set", "intern_delete", "intern_get", "_intern", "_key", "value", "key", "intern_set", "intern_delete", "keyof", "e10", "e5", "e2", "tickSpec", "start", "stop", "count", "step", "power", "error", "factor", "i1", "i2", "inc", "ticks", "reverse", "n", "i", "tickIncrement", "tickStep", "range", "start", "stop", "step", "n", "identity_default", "x", "top", "right", "bottom", "left", "epsilon", "translateX", "x", "translateY", "y", "number", "scale", "d", "center", "offset", "entering", "axis", "orient", "tickArguments", "tickValues", "tickFormat", "tickSizeInner", "tickSizeOuter", "tickPadding", "k", "transform", "context", "values", "format", "identity_default", "spacing", "range", "range0", "range1", "position", "selection", "path", "tick", "tickExit", "tickEnter", "line", "text", "p", "_", "axisTop", "axisBottom", "scale", "axis", "bottom", "none", "selector_default", "selector", "select_default", "select", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "Selection", "array", "x", "empty", "selectorAll_default", "selector", "arrayAll", "select", "array", "selectAll_default", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "Selection", "matcher_default", "selector", "childMatcher", "node", "find", "childFind", "match", "childFirst", "selectChild_default", "childMatcher", "filter", "children", "childrenFilter", "match", "selectChildren_default", "childMatcher", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Selection", "sparse_default", "update", "enter_default", "Selection", "sparse_default", "EnterNode", "parent", "datum", "child", "next", "selector", "constant_default", "x", "bindIndex", "parent", "group", "enter", "update", "exit", "data", "i", "node", "groupLength", "dataLength", "EnterNode", "bindKey", "key", "nodeByKeyValue", "keyValues", "keyValue", "datum", "data_default", "value", "bind", "parents", "groups", "constant_default", "m", "j", "arraylike", "enterGroup", "updateGroup", "exitGroup", "i0", "i1", "previous", "next", "Selection", "exit_default", "Selection", "sparse_default", "join_default", "onenter", "onupdate", "onexit", "enter", "update", "exit", "merge_default", "context", "selection", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Selection", "order_default", "groups", "j", "m", "group", "i", "next", "node", "sort_default", "compare", "ascending", "compareNode", "a", "b", "groups", "m", "sortgroups", "j", "group", "n", "sortgroup", "node", "i", "Selection", "call_default", "callback", "nodes_default", "node_default", "groups", "j", "m", "group", "i", "node", "size_default", "size", "node", "empty_default", "each_default", "callback", "groups", "j", "m", "group", "i", "n", "node", "xhtml", "namespaces_default", "namespace_default", "name", "prefix", "i", "namespaces_default", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "value", "attrConstantNS", "attrFunction", "v", "attrFunctionNS", "attr_default", "namespace_default", "node", "window_default", "node", "styleRemove", "name", "styleConstant", "value", "priority", "styleFunction", "v", "style_default", "styleValue", "node", "window_default", "propertyRemove", "name", "propertyConstant", "value", "propertyFunction", "v", "property_default", "classArray", "string", "classList", "node", "ClassList", "name", "i", "classedAdd", "names", "list", "n", "classedRemove", "classedTrue", "classedFalse", "classedFunction", "value", "classed_default", "textRemove", "textConstant", "value", "textFunction", "v", "text_default", "htmlRemove", "htmlConstant", "value", "htmlFunction", "v", "html_default", "raise", "raise_default", "lower", "lower_default", "creatorInherit", "name", "document", "uri", "xhtml", "creatorFixed", "fullname", "creator_default", "namespace_default", "append_default", "name", "create", "creator_default", "constantNull", "insert_default", "name", "before", "create", "creator_default", "select", "selector_default", "remove", "parent", "remove_default", "selection_cloneShallow", "clone", "parent", "selection_cloneDeep", "clone_default", "deep", "datum_default", "value", "contextListener", "listener", "event", "parseTypenames", "typenames", "t", "name", "onRemove", "typename", "on", "j", "m", "o", "onAdd", "value", "options", "on_default", "i", "dispatchEvent", "node", "type", "params", "window", "window_default", "event", "dispatchConstant", "dispatchFunction", "dispatch_default", "iterator_default", "groups", "j", "m", "group", "i", "node", "root", "Selection", "groups", "parents", "selection", "selection_selection", "select_default", "selectAll_default", "selectChild_default", "selectChildren_default", "filter_default", "data_default", "enter_default", "exit_default", "join_default", "merge_default", "order_default", "sort_default", "call_default", "nodes_default", "node_default", "size_default", "empty_default", "each_default", "attr_default", "style_default", "property_default", "classed_default", "text_default", "html_default", "raise_default", "lower_default", "append_default", "insert_default", "remove_default", "clone_default", "datum_default", "on_default", "dispatch_default", "iterator_default", "selection_default", "select_default", "selector", "Selection", "root", "selectAll_default", "selector", "Selection", "array", "root", "define_default", "constructor", "factory", "prototype", "extend", "parent", "definition", "key", "Color", "darker", "brighter", "reI", "reN", "reP", "reHex", "reRgbInteger", "reRgbPercent", "reRgbaInteger", "reRgbaPercent", "reHslPercent", "reHslaPercent", "named", "define_default", "color", "channels", "color_formatHex", "color_formatHex8", "color_formatHsl", "color_formatRgb", "hslConvert", "format", "m", "l", "rgbn", "Rgb", "rgba", "hsla", "n", "r", "g", "b", "a", "rgbConvert", "o", "rgb", "opacity", "extend", "k", "clampi", "clampa", "rgb_formatHex", "rgb_formatHex8", "rgb_formatRgb", "hex", "value", "h", "s", "Hsl", "min", "max", "hsl", "m2", "m1", "hsl2rgb", "clamph", "clampt", "radians", "degrees", "K", "Xn", "Yn", "Zn", "t0", "t1", "t2", "t3", "labConvert", "o", "Lab", "Hcl", "hcl2lab", "Rgb", "rgbConvert", "r", "rgb2lrgb", "g", "b", "y", "xyz2lab", "x", "z", "lab", "l", "a", "b", "opacity", "labConvert", "Lab", "define_default", "extend", "Color", "k", "K", "y", "x", "z", "Xn", "lab2xyz", "Yn", "Zn", "Rgb", "lrgb2rgb", "xyz2lab", "t3", "t2", "t0", "t1", "rgb2lrgb", "hclConvert", "o", "Hcl", "h", "degrees", "hcl", "h", "c", "l", "opacity", "hclConvert", "Hcl", "hcl2lab", "o", "Lab", "radians", "define_default", "extend", "Color", "k", "K", "constant_default", "x", "linear", "a", "d", "t", "exponential", "b", "y", "hue", "constant_default", "gamma", "nogamma", "hcl", "hue", "start", "end", "h", "c", "nogamma", "l", "opacity", "t", "hcl_default", "hclLong", "basis", "t1", "v0", "v1", "v2", "v3", "t2", "t3", "basis_default", "values", "n", "t", "basisClosed_default", "values", "n", "t", "v0", "v1", "v2", "v3", "basis", "rgb_default", "rgbGamma", "y", "color", "gamma", "rgb", "start", "end", "r", "g", "b", "opacity", "nogamma", "t", "rgbSpline", "spline", "colors", "n", "i", "rgbBasis", "basis_default", "rgbBasisClosed", "basisClosed_default", "numberArray_default", "a", "b", "n", "c", "i", "t", "isNumberArray", "x", "genericArray", "a", "b", "nb", "na", "x", "c", "i", "value_default", "t", "date_default", "a", "b", "d", "t", "number_default", "a", "b", "t", "object_default", "a", "b", "i", "c", "k", "value_default", "t", "reA", "reB", "zero", "b", "one", "t", "string_default", "a", "bi", "am", "bm", "bs", "i", "q", "number_default", "o", "value_default", "a", "b", "t", "c", "constant_default", "number_default", "color", "rgb_default", "string_default", "date_default", "isNumberArray", "numberArray_default", "genericArray", "object_default", "round_default", "a", "b", "t", "degrees", "identity", "decompose_default", "a", "b", "c", "d", "e", "f", "scaleX", "scaleY", "skewX", "svgNode", "parseCss", "value", "m", "identity", "decompose_default", "parseSvg", "interpolateTransform", "parse", "pxComma", "pxParen", "degParen", "pop", "s", "translate", "xa", "ya", "xb", "yb", "q", "i", "number_default", "rotate", "a", "b", "skewX", "scale", "t", "n", "o", "interpolateTransformCss", "parseCss", "interpolateTransformSvg", "parseSvg", "initRange", "domain", "range", "implicit", "ordinal", "index", "InternMap", "domain", "range", "unknown", "scale", "d", "i", "_", "value", "initRange", "band", "scale", "ordinal", "domain", "ordinalRange", "r0", "r1", "step", "bandwidth", "round", "paddingInner", "paddingOuter", "align", "rescale", "n", "reverse", "start", "stop", "values", "range", "i", "_", "initRange", "constants", "x", "number", "x", "unit", "identity", "x", "normalize", "a", "b", "constants", "clamper", "t", "bimap", "domain", "range", "interpolate", "d0", "d1", "r0", "r1", "polymap", "j", "d", "r", "i", "bisect_default", "copy", "source", "target", "transformer", "value_default", "transform", "untransform", "unknown", "clamp", "piecewise", "output", "input", "rescale", "n", "scale", "y", "number_default", "_", "number", "round_default", "u", "continuous", "formatDecimal_default", "x", "formatDecimalParts", "p", "i", "coefficient", "exponent_default", "x", "formatDecimalParts", "formatGroup_default", "grouping", "thousands", "value", "width", "i", "t", "j", "g", "length", "formatNumerals_default", "numerals", "value", "i", "re", "formatSpecifier", "specifier", "match", "FormatSpecifier", "formatTrim_default", "s", "out", "n", "i", "i0", "i1", "prefixExponent", "formatPrefixAuto_default", "x", "p", "d", "formatDecimalParts", "coefficient", "exponent", "i", "n", "formatRounded_default", "x", "p", "d", "formatDecimalParts", "coefficient", "exponent", "formatTypes_default", "x", "p", "formatDecimal_default", "formatRounded_default", "formatPrefixAuto_default", "identity_default", "x", "map", "prefixes", "locale_default", "locale", "group", "identity_default", "formatGroup_default", "currencyPrefix", "currencySuffix", "decimal", "numerals", "formatNumerals_default", "percent", "minus", "nan", "newFormat", "specifier", "formatSpecifier", "fill", "align", "sign", "symbol", "zero", "width", "comma", "precision", "trim", "type", "formatTypes_default", "prefix", "suffix", "formatType", "maybeSuffix", "format", "value", "valuePrefix", "valueSuffix", "i", "n", "c", "valueNegative", "formatTrim_default", "prefixExponent", "length", "padding", "formatPrefix", "f", "e", "exponent_default", "k", "locale", "format", "formatPrefix", "defaultLocale", "definition", "locale_default", "precisionFixed_default", "step", "exponent_default", "precisionPrefix_default", "step", "value", "exponent_default", "precisionRound_default", "step", "max", "exponent_default", "tickFormat", "start", "stop", "count", "specifier", "step", "tickStep", "precision", "formatSpecifier", "value", "precisionPrefix_default", "formatPrefix", "precisionRound_default", "precisionFixed_default", "format", "linearish", "scale", "domain", "count", "d", "ticks", "specifier", "tickFormat", "i0", "i1", "start", "stop", "prestep", "step", "maxIter", "tickIncrement", "linear", "continuous", "copy", "initRange", "t0", "t1", "timeInterval", "floori", "offseti", "count", "field", "interval", "date", "d0", "d1", "step", "start", "stop", "range", "previous", "test", "end", "d", "millisecond", "timeInterval", "date", "step", "start", "end", "k", "milliseconds", "second", "timeInterval", "date", "step", "start", "end", "seconds", "timeMinute", "timeInterval", "date", "step", "start", "end", "timeMinutes", "utcMinute", "utcMinutes", "timeHour", "timeInterval", "date", "step", "start", "end", "timeHours", "utcHour", "utcHours", "timeDay", "timeInterval", "date", "step", "start", "end", "timeDays", "utcDay", "utcDays", "unixDay", "unixDays", "timeWeekday", "i", "timeInterval", "date", "step", "start", "end", "timeSunday", "timeMonday", "timeTuesday", "timeWednesday", "timeThursday", "timeFriday", "timeSaturday", "timeSundays", "timeMondays", "timeTuesdays", "timeWednesdays", "timeThursdays", "timeFridays", "timeSaturdays", "utcWeekday", "utcSunday", "utcMonday", "utcTuesday", "utcWednesday", "utcThursday", "utcFriday", "utcSaturday", "utcSundays", "utcMondays", "utcTuesdays", "utcWednesdays", "utcThursdays", "utcFridays", "utcSaturdays", "timeMonth", "timeInterval", "date", "step", "start", "end", "timeMonths", "utcMonth", "utcMonths", "timeYear", "timeInterval", "date", "step", "start", "end", "k", "timeYears", "utcYear", "utcYears", "ticker", "year", "month", "week", "day", "hour", "minute", "tickIntervals", "second", "ticks", "start", "stop", "count", "reverse", "interval", "tickInterval", "target", "i", "bisector", "step", "tickStep", "millisecond", "t", "utcTicks", "utcTickInterval", "utcYear", "utcMonth", "utcSunday", "unixDay", "utcHour", "utcMinute", "timeTicks", "timeTickInterval", "timeYear", "timeMonth", "timeSunday", "timeDay", "timeHour", "timeMinute", "localDate", "d", "date", "utcDate", "newDate", "y", "m", "formatLocale", "locale", "locale_dateTime", "locale_date", "locale_time", "locale_periods", "locale_weekdays", "locale_shortWeekdays", "locale_months", "locale_shortMonths", "periodRe", "formatRe", "periodLookup", "formatLookup", "weekdayRe", "weekdayLookup", "shortWeekdayRe", "shortWeekdayLookup", "monthRe", "monthLookup", "shortMonthRe", "shortMonthLookup", "formats", "formatShortWeekday", "formatWeekday", "formatShortMonth", "formatMonth", "formatDayOfMonth", "formatMicroseconds", "formatYearISO", "formatFullYearISO", "formatHour24", "formatHour12", "formatDayOfYear", "formatMilliseconds", "formatMonthNumber", "formatMinutes", "formatPeriod", "formatQuarter", "formatUnixTimestamp", "formatUnixTimestampSeconds", "formatSeconds", "formatWeekdayNumberMonday", "formatWeekNumberSunday", "formatWeekNumberISO", "formatWeekdayNumberSunday", "formatWeekNumberMonday", "formatYear", "formatFullYear", "formatZone", "formatLiteralPercent", "utcFormats", "formatUTCShortWeekday", "formatUTCWeekday", "formatUTCShortMonth", "formatUTCMonth", "formatUTCDayOfMonth", "formatUTCMicroseconds", "formatUTCYearISO", "formatUTCFullYearISO", "formatUTCHour24", "formatUTCHour12", "formatUTCDayOfYear", "formatUTCMilliseconds", "formatUTCMonthNumber", "formatUTCMinutes", "formatUTCPeriod", "formatUTCQuarter", "formatUTCSeconds", "formatUTCWeekdayNumberMonday", "formatUTCWeekNumberSunday", "formatUTCWeekNumberISO", "formatUTCWeekdayNumberSunday", "formatUTCWeekNumberMonday", "formatUTCYear", "formatUTCFullYear", "formatUTCZone", "parses", "parseShortWeekday", "parseWeekday", "parseShortMonth", "parseMonth", "parseLocaleDateTime", "parseDayOfMonth", "parseMicroseconds", "parseYear", "parseFullYear", "parseHour24", "parseDayOfYear", "parseMilliseconds", "parseMonthNumber", "parseMinutes", "parsePeriod", "parseQuarter", "parseUnixTimestamp", "parseUnixTimestampSeconds", "parseSeconds", "parseWeekdayNumberMonday", "parseWeekNumberSunday", "parseWeekNumberISO", "parseWeekdayNumberSunday", "parseWeekNumberMonday", "parseLocaleDate", "parseLocaleTime", "parseZone", "parseLiteralPercent", "newFormat", "specifier", "string", "i", "j", "n", "c", "pad", "format", "pads", "newParse", "Z", "parseSpecifier", "week", "day", "utcMonday", "utcDay", "timeMonday", "timeDay", "parse", "f", "p", "numberRe", "percentRe", "requoteRe", "value", "fill", "width", "sign", "length", "requote", "s", "names", "name", "timeYear", "timeSunday", "dISO", "timeThursday", "z", "utcYear", "dow", "utcSunday", "UTCdISO", "utcThursday", "locale", "timeFormat", "timeParse", "utcFormat", "utcParse", "defaultLocale", "definition", "formatLocale", "nice", "domain", "interval", "i0", "i1", "x0", "x1", "t", "date", "number", "calendar", "ticks", "tickInterval", "year", "month", "week", "day", "hour", "minute", "second", "format", "scale", "continuous", "invert", "domain", "formatMillisecond", "formatSecond", "formatMinute", "formatHour", "formatDay", "formatWeek", "formatMonth", "formatYear", "tickFormat", "y", "_", "interval", "d", "count", "specifier", "nice", "copy", "time", "initRange", "timeTicks", "timeTickInterval", "timeYear", "timeMonth", "timeSunday", "timeDay", "timeHour", "timeMinute", "timeFormat", "colors_default", "specifier", "n", "colors", "Tableau10_default", "colors_default", "constant_default", "x", "abs", "atan2", "cos", "max", "min", "sin", "sqrt", "epsilon", "pi", "halfPi", "tau", "acos", "x", "asin", "pi", "tau", "epsilon", "tauEpsilon", "append", "strings", "i", "n", "appendRound", "digits", "d", "k", "Path", "x", "y", "x1", "y1", "x2", "y2", "r", "x0", "y0", "x21", "y21", "x01", "y01", "l01_2", "x20", "y20", "l21_2", "l20_2", "l21", "l01", "l", "t01", "t21", "a0", "a1", "ccw", "dx", "dy", "cw", "da", "w", "h", "path", "withPath", "shape", "digits", "_", "d", "Path", "arcInnerRadius", "d", "arcOuterRadius", "arcStartAngle", "arcEndAngle", "arcPadAngle", "intersect", "x0", "y0", "x1", "y1", "x2", "y2", "x3", "y3", "x10", "y10", "x32", "y32", "t", "epsilon", "cornerTangents", "r1", "rc", "cw", "x01", "y01", "lo", "sqrt", "ox", "oy", "x11", "y11", "x00", "y00", "dx", "dy", "d2", "r", "D", "max", "cx0", "cy0", "cx1", "cy1", "dx0", "dy0", "dx1", "dy1", "arc_default", "innerRadius", "outerRadius", "cornerRadius", "constant_default", "padRadius", "startAngle", "endAngle", "padAngle", "context", "path", "withPath", "arc", "buffer", "r0", "a0", "halfPi", "a1", "da", "abs", "tau", "cos", "sin", "a01", "a11", "a00", "a10", "da0", "da1", "ap", "rp", "min", "rc0", "rc1", "t0", "t1", "p0", "asin", "p1", "oc", "pi", "ax", "ay", "bx", "by", "kc", "acos", "lc", "atan2", "a", "_", "Linear", "context", "x", "y", "linear_default", "slice", "array_default", "x", "x", "p", "y", "line_default", "x", "y", "defined", "constant_default", "context", "curve", "linear_default", "output", "path", "withPath", "line", "data", "i", "n", "array_default", "d", "defined0", "buffer", "_", "descending_default", "a", "b", "identity_default", "d", "pie_default", "value", "identity_default", "sortValues", "descending_default", "sort", "startAngle", "constant_default", "endAngle", "tau", "padAngle", "pie", "data", "i", "n", "array_default", "j", "k", "sum", "index", "arcs", "a0", "da", "a1", "p", "pa", "v", "_", "point", "that", "x", "y", "Basis", "context", "basis_default", "Bump", "context", "x", "y", "bumpX", "context", "Bump", "bumpY", "noop_default", "BasisClosed", "context", "noop_default", "x", "y", "point", "basisClosed_default", "BasisOpen", "context", "x", "y", "x0", "y0", "point", "basisOpen_default", "Bundle", "context", "beta", "Basis", "x", "y", "j", "x0", "y0", "dx", "dy", "i", "t", "bundle_default", "custom", "bundle", "point", "that", "x", "y", "Cardinal", "context", "tension", "cardinal_default", "custom", "cardinal", "CardinalClosed", "context", "tension", "noop_default", "x", "y", "point", "cardinalClosed_default", "custom", "cardinal", "CardinalOpen", "context", "tension", "x", "y", "point", "cardinalOpen_default", "custom", "cardinal", "point", "that", "x", "y", "x1", "y1", "x2", "y2", "epsilon", "a", "n", "b", "m", "CatmullRom", "context", "alpha", "x23", "y23", "catmullRom_default", "custom", "catmullRom", "Cardinal", "CatmullRomClosed", "context", "alpha", "noop_default", "x", "y", "x23", "y23", "point", "catmullRomClosed_default", "custom", "catmullRom", "CardinalClosed", "CatmullRomOpen", "context", "alpha", "x", "y", "x23", "y23", "point", "catmullRomOpen_default", "custom", "catmullRom", "CardinalOpen", "LinearClosed", "context", "noop_default", "x", "y", "linearClosed_default", "sign", "x", "slope3", "that", "x2", "y2", "h0", "h1", "s0", "s1", "p", "slope2", "t", "h", "point", "t0", "t1", "x0", "y0", "x1", "y1", "dx", "MonotoneX", "context", "y", "MonotoneY", "ReflectContext", "monotoneX", "monotoneY", "Natural", "context", "x", "y", "n", "px", "controlPoints", "py", "i0", "i1", "i", "m", "a", "b", "r", "natural_default", "Step", "context", "t", "x", "y", "x1", "step_default", "stepBefore", "stepAfter", "noop", "dispatch", "i", "n", "_", "t", "Dispatch", "parseTypenames", "typenames", "types", "name", "typename", "callback", "T", "get", "set", "copy", "type", "that", "args", "c", "dispatch_default", "frame", "timeout", "interval", "pokeDelay", "taskHead", "taskTail", "clockLast", "clockNow", "clockSkew", "clock", "setFrame", "f", "now", "clearNow", "Timer", "timer", "callback", "delay", "time", "sleep", "t", "timerFlush", "wake", "nap", "poke", "t0", "t1", "t2", "timeout_default", "callback", "delay", "time", "t", "Timer", "elapsed", "emptyOn", "dispatch_default", "emptyTween", "CREATED", "SCHEDULED", "STARTING", "STARTED", "RUNNING", "ENDING", "ENDED", "schedule_default", "node", "name", "id", "index", "group", "timing", "schedules", "create", "init", "schedule", "get", "set", "self", "tween", "timer", "elapsed", "start", "i", "j", "n", "o", "stop", "timeout_default", "tick", "t", "interrupt_default", "node", "name", "schedules", "schedule", "active", "empty", "i", "STARTING", "ENDING", "ENDED", "interrupt_default", "name", "tweenRemove", "id", "name", "tween0", "tween1", "schedule", "set", "tween", "i", "n", "tweenFunction", "value", "t", "tween_default", "get", "tweenValue", "transition", "node", "interpolate_default", "a", "b", "c", "number_default", "color", "rgb_default", "string_default", "attrRemove", "name", "attrRemoveNS", "fullname", "attrConstant", "interpolate", "value1", "string00", "string1", "interpolate0", "string0", "attrConstantNS", "attrFunction", "value", "string10", "attrFunctionNS", "attr_default", "namespace_default", "interpolateTransformSvg", "interpolate_default", "tweenValue", "attrInterpolate", "name", "i", "t", "attrInterpolateNS", "fullname", "attrTweenNS", "value", "t0", "i0", "tween", "attrTween", "attrTween_default", "key", "namespace_default", "delayFunction", "id", "value", "init", "delayConstant", "delay_default", "get", "durationFunction", "id", "value", "set", "durationConstant", "duration_default", "get", "easeConstant", "id", "value", "set", "ease_default", "get", "easeVarying", "id", "value", "v", "set", "easeVarying_default", "filter_default", "match", "matcher_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "i", "Transition", "merge_default", "transition", "groups0", "groups1", "m0", "m1", "m", "merges", "j", "group0", "group1", "n", "merge", "node", "i", "Transition", "start", "name", "t", "i", "onFunction", "id", "listener", "on0", "on1", "sit", "init", "set", "schedule", "on", "on_default", "get", "removeFunction", "id", "parent", "i", "remove_default", "select_default", "select", "name", "id", "selector_default", "groups", "m", "subgroups", "j", "group", "n", "subgroup", "node", "subnode", "i", "schedule_default", "get", "Transition", "selectAll_default", "select", "name", "id", "selectorAll_default", "groups", "m", "subgroups", "parents", "j", "group", "n", "node", "i", "children", "child", "inherit", "get", "k", "l", "schedule_default", "Transition", "Selection", "selection_default", "styleNull", "name", "interpolate", "string00", "string10", "interpolate0", "string0", "styleValue", "string1", "styleRemove", "styleConstant", "value1", "styleFunction", "value", "styleMaybeRemove", "id", "on0", "on1", "listener0", "key", "event", "remove", "schedule", "set", "on", "listener", "style_default", "priority", "interpolateTransformCss", "interpolate_default", "tweenValue", "styleInterpolate", "name", "i", "priority", "t", "styleTween", "value", "i0", "tween", "styleTween_default", "key", "textConstant", "value", "textFunction", "value1", "text_default", "tweenValue", "textInterpolate", "i", "t", "textTween", "value", "t0", "i0", "tween", "textTween_default", "key", "transition_default", "name", "id0", "id1", "newId", "groups", "m", "j", "group", "n", "node", "i", "inherit", "get", "schedule_default", "Transition", "end_default", "on0", "on1", "that", "id", "size", "resolve", "reject", "cancel", "end", "schedule", "set", "on", "id", "Transition", "groups", "parents", "name", "transition", "selection_default", "newId", "selection_prototype", "select_default", "selectAll_default", "filter_default", "merge_default", "transition_default", "on_default", "attr_default", "attrTween_default", "style_default", "styleTween_default", "text_default", "textTween_default", "remove_default", "tween_default", "delay_default", "duration_default", "ease_default", "easeVarying_default", "end_default", "cubicInOut", "defaultTiming", "cubicInOut", "inherit", "node", "id", "timing", "transition_default", "name", "Transition", "newId", "now", "groups", "m", "j", "group", "n", "i", "schedule_default", "selection_default", "interrupt_default", "transition_default", "abs", "max", "min", "number1", "e", "number2", "X", "type", "x", "xy", "Y", "y", "XY", "type", "responseText", "response", "text_default", "input", "init", "parser", "type", "input", "init", "text_default", "text", "xml_default", "html", "svg", "Transform", "k", "x", "y", "point", "location", "identity", "transform", "node", "Channel", "r", "g", "b", "h", "s", "l", "a", "c", "n", "p", "q", "t", "channel", "max", "min", "d", "channel_default", "Lang", "number", "lower", "upper", "lang_default", "Unit", "dec", "hex", "unit_default", "Utils", "channel_default", "lang_default", "unit_default", "utils_default", "DEC2HEX", "i", "utils_default", "TYPE", "Type", "TYPE", "type", "type_default", "Channels", "data", "color", "type_default", "TYPE", "h", "s", "l", "utils_default", "g", "b", "r", "a", "channels_default", "channels", "channels_default", "reusable_default", "Hex", "color", "match", "hex", "dec", "length", "hasAlpha", "isFullLength", "multiplier", "bits", "bitsOffset", "mask", "reusable_default", "channels", "r", "g", "b", "a", "DEC2HEX", "hex_default", "HSL", "hue", "match", "number", "unit", "utils_default", "color", "charCode", "h", "s", "l", "isAlphaPercentage", "reusable_default", "channels", "a", "hsl_default", "Keyword", "color", "hex", "hex_default", "channels", "name", "keyword_default", "RGB", "color", "charCode", "match", "r", "isRedPercentage", "g", "isGreenPercentage", "b", "isBluePercentage", "a", "isAlphaPercentage", "reusable_default", "utils_default", "channels", "rgb_default", "Color", "keyword_default", "hex_default", "rgb_default", "hsl_default", "color", "channels", "TYPE", "color_default", "luminance", "color", "r", "g", "b", "color_default", "utils_default", "luminance_default", "isLight", "color", "luminance_default", "is_light_default", "isDark", "color", "is_light_default", "is_dark_default", "adjustChannel", "color", "channel", "amount", "channels", "color_default", "amountCurrent", "amountNext", "utils_default", "adjust_channel_default", "lighten", "color", "amount", "adjust_channel_default", "lighten_default", "darken", "color", "amount", "adjust_channel_default", "darken_default", "change", "color", "channels", "ch", "color_default", "c", "utils_default", "change_default", "rgba", "r", "g", "b", "a", "change_default", "channels", "reusable_default", "utils_default", "color_default", "rgba_default", "channel", "color", "utils_default", "color_default", "channel_default", "adjust", "color", "channels", "ch", "color_default", "changes", "c", "change_default", "adjust_default", "mix", "color1", "color2", "weight", "r1", "g1", "b1", "a1", "color_default", "r2", "g2", "b2", "a2", "weightScale", "weightNormalized", "alphaDelta", "weight1", "weight2", "r", "g", "b", "a", "rgba_default", "mix_default", "invert", "color", "weight", "inverse", "color_default", "mix_default", "invert_default", "freeGlobal", "freeGlobal_default", "freeSelf", "root", "freeGlobal_default", "root_default", "Symbol", "root_default", "Symbol_default", "objectProto", "hasOwnProperty", "nativeObjectToString", "symToStringTag", "Symbol_default", "getRawTag", "value", "isOwn", "tag", "unmasked", "result", "getRawTag_default", "objectProto", "nativeObjectToString", "objectToString", "value", "objectToString_default", "nullTag", "undefinedTag", "symToStringTag", "Symbol_default", "baseGetTag", "value", "getRawTag_default", "objectToString_default", "baseGetTag_default", "isObject", "value", "type", "isObject_default", "asyncTag", "funcTag", "genTag", "proxyTag", "isFunction", "value", "isObject_default", "tag", "baseGetTag_default", "isFunction_default", "coreJsData", "root_default", "coreJsData_default", "maskSrcKey", "uid", "coreJsData_default", "isMasked", "func", "isMasked_default", "funcProto", "funcToString", "toSource", "func", "toSource_default", "reRegExpChar", "reIsHostCtor", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "reIsNative", "baseIsNative", "value", "isObject_default", "isMasked_default", "pattern", "isFunction_default", "toSource_default", "baseIsNative_default", "getValue", "object", "key", "getValue_default", "getNative", "object", "key", "value", "getValue_default", "baseIsNative_default", "getNative_default", "nativeCreate", "getNative_default", "nativeCreate_default", "hashClear", "nativeCreate_default", "hashClear_default", "hashDelete", "key", "result", "hashDelete_default", "HASH_UNDEFINED", "objectProto", "hasOwnProperty", "hashGet", "key", "data", "nativeCreate_default", "result", "hashGet_default", "objectProto", "hasOwnProperty", "hashHas", "key", "data", "nativeCreate_default", "hashHas_default", "HASH_UNDEFINED", "hashSet", "key", "value", "data", "nativeCreate_default", "hashSet_default", "Hash", "entries", "index", "length", "entry", "hashClear_default", "hashDelete_default", "hashGet_default", "hashHas_default", "hashSet_default", "Hash_default", "listCacheClear", "listCacheClear_default", "eq", "value", "other", "eq_default", "assocIndexOf", "array", "key", "length", "eq_default", "assocIndexOf_default", "arrayProto", "splice", "listCacheDelete", "key", "data", "index", "assocIndexOf_default", "lastIndex", "listCacheDelete_default", "listCacheGet", "key", "data", "index", "assocIndexOf_default", "listCacheGet_default", "listCacheHas", "key", "assocIndexOf_default", "listCacheHas_default", "listCacheSet", "key", "value", "data", "index", "assocIndexOf_default", "listCacheSet_default", "ListCache", "entries", "index", "length", "entry", "listCacheClear_default", "listCacheDelete_default", "listCacheGet_default", "listCacheHas_default", "listCacheSet_default", "ListCache_default", "Map", "getNative_default", "root_default", "Map_default", "mapCacheClear", "Hash_default", "Map_default", "ListCache_default", "mapCacheClear_default", "isKeyable", "value", "type", "isKeyable_default", "getMapData", "map", "key", "data", "isKeyable_default", "getMapData_default", "mapCacheDelete", "key", "result", "getMapData_default", "mapCacheDelete_default", "mapCacheGet", "key", "getMapData_default", "mapCacheGet_default", "mapCacheHas", "key", "getMapData_default", "mapCacheHas_default", "mapCacheSet", "key", "value", "data", "getMapData_default", "size", "mapCacheSet_default", "MapCache", "entries", "index", "length", "entry", "mapCacheClear_default", "mapCacheDelete_default", "mapCacheGet_default", "mapCacheHas_default", "mapCacheSet_default", "MapCache_default", "FUNC_ERROR_TEXT", "memoize", "func", "resolver", "memoized", "args", "key", "cache", "result", "MapCache_default", "memoize_default", "stackClear", "ListCache_default", "stackClear_default", "stackDelete", "key", "data", "result", "stackDelete_default", "stackGet", "key", "stackGet_default", "stackHas", "key", "stackHas_default", "LARGE_ARRAY_SIZE", "stackSet", "key", "value", "data", "ListCache_default", "pairs", "Map_default", "MapCache_default", "stackSet_default", "Stack", "entries", "data", "ListCache_default", "stackClear_default", "stackDelete_default", "stackGet_default", "stackHas_default", "stackSet_default", "Stack_default", "defineProperty", "func", "getNative_default", "defineProperty_default", "baseAssignValue", "object", "key", "value", "defineProperty_default", "baseAssignValue_default", "assignMergeValue", "object", "key", "value", "eq_default", "baseAssignValue_default", "assignMergeValue_default", "createBaseFor", "fromRight", "object", "iteratee", "keysFunc", "index", "iterable", "props", "length", "key", "createBaseFor_default", "baseFor", "createBaseFor_default", "baseFor_default", "freeExports", "freeModule", "moduleExports", "Buffer", "root_default", "allocUnsafe", "cloneBuffer", "buffer", "isDeep", "length", "result", "cloneBuffer_default", "Uint8Array", "root_default", "Uint8Array_default", "cloneArrayBuffer", "arrayBuffer", "result", "Uint8Array_default", "cloneArrayBuffer_default", "cloneTypedArray", "typedArray", "isDeep", "buffer", "cloneArrayBuffer_default", "cloneTypedArray_default", "copyArray", "source", "array", "index", "length", "copyArray_default", "objectCreate", "baseCreate", "object", "proto", "isObject_default", "result", "baseCreate_default", "overArg", "func", "transform", "arg", "overArg_default", "getPrototype", "overArg_default", "getPrototype_default", "objectProto", "isPrototype", "value", "Ctor", "proto", "isPrototype_default", "initCloneObject", "object", "isPrototype_default", "baseCreate_default", "getPrototype_default", "initCloneObject_default", "isObjectLike", "value", "isObjectLike_default", "argsTag", "baseIsArguments", "value", "isObjectLike_default", "baseGetTag_default", "baseIsArguments_default", "objectProto", "hasOwnProperty", "propertyIsEnumerable", "isArguments", "baseIsArguments_default", "value", "isObjectLike_default", "isArguments_default", "isArray", "isArray_default", "MAX_SAFE_INTEGER", "isLength", "value", "isLength_default", "isArrayLike", "value", "isLength_default", "isFunction_default", "isArrayLike_default", "isArrayLikeObject", "value", "isObjectLike_default", "isArrayLike_default", "isArrayLikeObject_default", "stubFalse", "stubFalse_default", "freeExports", "freeModule", "moduleExports", "Buffer", "root_default", "nativeIsBuffer", "isBuffer", "stubFalse_default", "isBuffer_default", "objectTag", "funcProto", "objectProto", "funcToString", "hasOwnProperty", "objectCtorString", "isPlainObject", "value", "isObjectLike_default", "baseGetTag_default", "proto", "getPrototype_default", "Ctor", "isPlainObject_default", "argsTag", "arrayTag", "boolTag", "dateTag", "errorTag", "funcTag", "mapTag", "numberTag", "objectTag", "regexpTag", "setTag", "stringTag", "weakMapTag", "arrayBufferTag", "dataViewTag", "float32Tag", "float64Tag", "int8Tag", "int16Tag", "int32Tag", "uint8Tag", "uint8ClampedTag", "uint16Tag", "uint32Tag", "typedArrayTags", "baseIsTypedArray", "value", "isObjectLike_default", "isLength_default", "baseGetTag_default", "baseIsTypedArray_default", "baseUnary", "func", "value", "baseUnary_default", "freeExports", "freeModule", "moduleExports", "freeProcess", "freeGlobal_default", "nodeUtil", "types", "nodeUtil_default", "nodeIsTypedArray", "nodeUtil_default", "isTypedArray", "baseUnary_default", "baseIsTypedArray_default", "isTypedArray_default", "safeGet", "object", "key", "safeGet_default", "objectProto", "hasOwnProperty", "assignValue", "object", "key", "value", "objValue", "eq_default", "baseAssignValue_default", "assignValue_default", "copyObject", "source", "props", "object", "customizer", "isNew", "index", "length", "key", "newValue", "baseAssignValue_default", "assignValue_default", "copyObject_default", "baseTimes", "n", "iteratee", "index", "result", "baseTimes_default", "MAX_SAFE_INTEGER", "reIsUint", "isIndex", "value", "length", "type", "isIndex_default", "objectProto", "hasOwnProperty", "arrayLikeKeys", "value", "inherited", "isArr", "isArray_default", "isArg", "isArguments_default", "isBuff", "isBuffer_default", "isType", "isTypedArray_default", "skipIndexes", "result", "baseTimes_default", "length", "key", "isIndex_default", "arrayLikeKeys_default", "nativeKeysIn", "object", "result", "key", "nativeKeysIn_default", "objectProto", "hasOwnProperty", "baseKeysIn", "object", "isObject_default", "nativeKeysIn_default", "isProto", "isPrototype_default", "result", "key", "baseKeysIn_default", "keysIn", "object", "isArrayLike_default", "arrayLikeKeys_default", "baseKeysIn_default", "keysIn_default", "toPlainObject", "value", "copyObject_default", "keysIn_default", "toPlainObject_default", "baseMergeDeep", "object", "source", "key", "srcIndex", "mergeFunc", "customizer", "stack", "objValue", "safeGet_default", "srcValue", "stacked", "assignMergeValue_default", "newValue", "isCommon", "isArr", "isArray_default", "isBuff", "isBuffer_default", "isTyped", "isTypedArray_default", "isArrayLikeObject_default", "copyArray_default", "cloneBuffer_default", "cloneTypedArray_default", "isPlainObject_default", "isArguments_default", "toPlainObject_default", "isObject_default", "isFunction_default", "initCloneObject_default", "baseMergeDeep_default", "baseMerge", "object", "source", "srcIndex", "customizer", "stack", "baseFor_default", "srcValue", "key", "Stack_default", "isObject_default", "baseMergeDeep_default", "newValue", "safeGet_default", "assignMergeValue_default", "keysIn_default", "baseMerge_default", "identity", "value", "identity_default", "apply", "func", "thisArg", "args", "apply_default", "nativeMax", "overRest", "func", "start", "transform", "args", "index", "length", "array", "otherArgs", "apply_default", "overRest_default", "constant", "value", "constant_default", "baseSetToString", "defineProperty_default", "func", "string", "constant_default", "identity_default", "baseSetToString_default", "HOT_COUNT", "HOT_SPAN", "nativeNow", "shortOut", "func", "count", "lastCalled", "stamp", "remaining", "shortOut_default", "setToString", "shortOut_default", "baseSetToString_default", "setToString_default", "baseRest", "func", "start", "setToString_default", "overRest_default", "identity_default", "baseRest_default", "isIterateeCall", "value", "index", "object", "isObject_default", "type", "isArrayLike_default", "isIndex_default", "eq_default", "isIterateeCall_default", "createAssigner", "assigner", "baseRest_default", "object", "sources", "index", "length", "customizer", "guard", "isIterateeCall_default", "source", "createAssigner_default", "merge", "createAssigner_default", "object", "source", "srcIndex", "baseMerge_default", "merge_default", "nativeKeys", "overArg_default", "nativeKeys_default", "objectProto", "hasOwnProperty", "baseKeys", "object", "isPrototype_default", "nativeKeys_default", "result", "key", "baseKeys_default", "DataView", "getNative_default", "root_default", "DataView_default", "Promise", "getNative_default", "root_default", "Promise_default", "Set", "getNative_default", "root_default", "Set_default", "WeakMap", "getNative_default", "root_default", "WeakMap_default", "mapTag", "objectTag", "promiseTag", "setTag", "weakMapTag", "dataViewTag", "dataViewCtorString", "toSource_default", "DataView_default", "mapCtorString", "Map_default", "promiseCtorString", "Promise_default", "setCtorString", "Set_default", "weakMapCtorString", "WeakMap_default", "getTag", "baseGetTag_default", "value", "result", "Ctor", "ctorString", "getTag_default", "mapTag", "setTag", "objectProto", "hasOwnProperty", "isEmpty", "value", "isArrayLike_default", "isArray_default", "isBuffer_default", "isTypedArray_default", "isArguments_default", "tag", "getTag_default", "isPrototype_default", "baseKeys_default", "key", "isEmpty_default", "import_dayjs", "import_sanitize_url", "import_dompurify", "COMMENT", "RULESET", "DECLARATION", "IMPORT", "KEYFRAMES", "abs", "from", "trim", "value", "replace", "value", "pattern", "replacement", "indexof", "search", "charat", "index", "substr", "begin", "end", "strlen", "sizeof", "append", "array", "line", "column", "length", "position", "character", "characters", "node", "value", "root", "parent", "type", "props", "children", "char", "character", "prev", "position", "charat", "characters", "column", "line", "next", "length", "peek", "caret", "slice", "begin", "end", "substr", "token", "type", "alloc", "value", "strlen", "dealloc", "delimit", "trim", "delimiter", "whitespace", "type", "character", "peek", "next", "token", "escaping", "index", "count", "next", "character", "slice", "caret", "peek", "delimiter", "type", "position", "commenter", "from", "identifier", "token", "compile", "value", "dealloc", "parse", "alloc", "root", "parent", "rule", "rules", "rulesets", "pseudo", "points", "declarations", "index", "offset", "length", "atrule", "property", "previous", "variable", "scanning", "ampersand", "character", "type", "props", "children", "reference", "characters", "next", "charat", "indexof", "replace", "delimit", "whitespace", "escaping", "caret", "peek", "append", "comment", "commenter", "strlen", "declaration", "ruleset", "prev", "from", "identifier", "post", "size", "sizeof", "i", "j", "k", "x", "y", "substr", "abs", "z", "trim", "node", "RULESET", "COMMENT", "char", "DECLARATION", "serialize", "children", "callback", "output", "length", "sizeof", "i", "stringify", "element", "index", "IMPORT", "DECLARATION", "COMMENT", "KEYFRAMES", "RULESET", "strlen", "LEVELS", "log$1", "_args", "setLogLevel$1", "level", "numericLevel", "format", "dayjs", "lineBreakRegex", "getRows", "s", "breakToPlaceholder", "removeScript", "txt", "DOMPurify", "sanitizeMore", "text", "config2", "_a", "placeholderToBreak", "sanitizeText$2", "sanitizeTextOrArray", "a", "x", "hasBreaks", "splitBreaks", "getUrl", "useAbsolute", "url", "evaluate", "val", "getMax", "values", "newValues", "value", "getMin", "parseGenericTypes", "input", "inputSets", "output", "thisSet", "previousSet", "nextSet", "shouldCombineSets", "processSet", "countOccurrence", "string", "substring", "prevCount", "nextCount", "tildeCount", "hasStartingTilde", "chars", "first", "last", "common$1", "mkBorder", "col", "darkMode", "adjust_default", "oldAttributeBackgroundColorOdd", "oldAttributeBackgroundColorEven", "Theme$4", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "invert_default", "darken_default", "lighten_default", "i", "multiplier", "is_dark_default", "overrides", "keys", "k", "getThemeVariables$4", "userOverrides", "theme2", "Theme$3", "rgba_default", "getThemeVariables$3", "Theme$2", "getThemeVariables$2", "Theme$1", "getThemeVariables$1", "Theme5", "getThemeVariables", "theme", "defaultConfigJson", "config", "keyify", "obj", "prefix", "res", "el", "configKeys", "defaultConfig$2", "sanitizeDirective", "args", "arg", "key", "cssMatchers", "cssKey", "sanitizeCss", "str2", "startCnt", "endCnt", "element", "frontMatterRegex", "directiveRegex", "anyCommentRegex", "UnknownDiagramError", "message", "detectors", "detectType", "detector2", "registerLazyLoadedDiagrams", "diagrams2", "id2", "loader2", "addDetector", "getDiagramLoader", "assignWithDepth", "dst", "src", "depth", "clobber", "assignWithDepth$1", "ZERO_WIDTH_SPACE", "d3CurveTypes", "basis_default", "basisClosed_default", "basisOpen_default", "bumpX", "bumpY", "bundle_default", "cardinalClosed_default", "cardinalOpen_default", "cardinal_default", "catmullRomClosed_default", "catmullRomOpen_default", "catmullRom_default", "linear_default", "linearClosed_default", "monotoneX", "monotoneY", "natural_default", "step_default", "stepAfter", "stepBefore", "directiveWithoutOpen", "detectInit", "inits", "detectDirective", "results", "init2", "type2", "prop", "commentWithoutDirectives", "match", "result", "type22", "error", "removeDirectives", "isSubstringInArray", "arr", "interpolateToCurve", "interpolate", "defaultCurve", "curveName", "formatUrl", "linkStr", "runFunc", "functionName", "params", "arrPaths", "len", "fnName", "distance", "p1", "p2", "traverseEdge", "points", "prevPoint", "totalDistance", "point", "remainingDistance", "calculatePoint", "calcLabelPosition", "roundNumber", "num", "precision", "factor", "distanceToTraverse", "vectorDistance", "distanceRatio", "calcCardinalityPosition", "isRelationTypePresent", "initialPosition", "center", "d", "angle", "cardinalityPosition", "calcTerminalLabelPosition", "terminalMarkerSize", "position", "_points", "distanceToCardinalityPoint", "getStylesFromArray", "style", "labelStyle", "cnt", "generateId", "makeRandomHex", "length", "characters", "charactersLength", "random", "options", "getTextObj", "drawSimpleText", "elem", "textData", "nText", "_fontSizePx", "parseFontSize", "textElem", "span", "wrapLabel", "memoize_default", "label", "maxWidth", "words", "completedLines", "nextLine", "word", "index", "wordLength", "calculateTextWidth", "nextLineLength", "hyphenatedStrings", "remainingWord", "breakString", "line", "hyphenCharacter", "lines", "currentLine", "character", "currentCharacter", "isLastLine", "hyphenatedNextLine", "calculateTextHeight", "calculateTextDimensions", "fontSize", "fontFamily", "fontWeight", "fontFamilies", "dims", "body", "select_default", "g", "fontFamily2", "cHeight", "dim", "textObj", "bBox", "InitIDGenerator", "deterministic", "seed", "decoder", "entityDecode", "html", "isDetailedError", "insertTitle", "parent", "cssClass", "titleTopMargin", "title", "bounds", "fontSizeNumber", "cleanAndMerge", "defaultData", "data", "merge_default", "utils", "version", "defaultConfig$1", "siteConfig", "configFromInitialize", "directives", "currentConfig", "updateCurrentConfig", "siteCfg", "_directives", "cfg", "sumOfDirectives", "sanitize", "tmpConfigFromInitialize", "themeVariables", "checkConfig", "setSiteConfig", "conf", "saveConfigFromInitialize", "updateSiteConfig", "getSiteConfig", "setConfig$1", "getConfig$1", "addDirective", "directive", "reset", "ConfigWarning", "issuedWarnings", "issueWarning", "warning", "id$k", "detector$k", "loader$l", "diagram2", "plugin$i", "c4", "id$j", "detector$j", "loader$k", "plugin$h", "flowchart", "id$i", "detector$i", "loader$j", "plugin$g", "flowchartV2", "id$h", "detector$h", "loader$i", "plugin$f", "er", "id$g", "detector$g", "loader$h", "plugin$e", "git", "id$f", "detector$f", "loader$g", "plugin$d", "gantt", "id$e", "detector$e", "loader$f", "info", "id$d", "detector$d", "loader$e", "pie", "id$c", "detector$c", "loader$d", "plugin$c", "quadrantChart", "id$b", "detector$b", "loader$c", "plugin$b", "xychart", "id$a", "detector$a", "loader$b", "plugin$a", "requirement", "id$9", "detector$9", "loader$a", "plugin$9", "sequence", "id$8", "detector$8", "loader$9", "plugin$8", "classDiagram", "id$7", "detector$7", "loader$8", "plugin$7", "classDiagramV2", "id$6", "detector$6", "loader$7", "plugin$6", "state", "id$5", "detector$5", "loader$6", "plugin$5", "stateV2", "id$4", "detector$4", "loader$5", "plugin$4", "journey", "d3Attrs", "d3Elem", "attrs", "attr", "calculateSvgSizeAttrs", "height", "width", "useMaxWidth", "configureSvgSize", "svgElem", "setupGraphViewbox$1", "graph", "padding", "svgBounds", "sWidth", "sHeight", "vBox", "themes", "getStyles", "userStyles", "diagramStyles", "addStylesForDiagram", "diagramTheme", "getStyles$1", "accTitle", "diagramTitle", "accDescription", "sanitizeText$1", "clear", "setAccTitle", "getAccTitle", "setAccDescription", "getAccDescription", "setDiagramTitle", "getDiagramTitle", "commonDb", "log", "setLogLevel", "getConfig", "setConfig", "defaultConfig", "sanitizeText", "setupGraphViewbox", "getCommonDb", "diagrams", "registerDiagram", "getDiagram", "name", "DiagramNotFoundError", "selectSvgElement", "securityLevel", "root", "doc", "draw", "_text", "version2", "svg", "renderer", "errorRenderer", "diagram", "errorDiagram", "id$3", "detector$3", "loader$4", "plugin$3", "flowchartElk", "id$2", "detector$2", "loader$3", "plugin$2", "timeline", "id$1", "detector$1", "loader$2", "plugin$1", "mindmap", "id", "detector", "loader$1", "plugin", "sankey", "hasLoadedDiagrams", "addDiagrams", "Diagram", "metadata", "cnf", "e", "getDiagramFromText", "interactionFunctions", "addFunction", "func", "attachFunctions", "f", "SVG_ROLE", "setA11yDiagramInfo", "diagramType", "addSVGa11yTitleDescription", "a11yTitle", "a11yDesc", "baseId", "descId", "titleId", "cleanupComments", "isNothing", "subject", "isObject", "toArray", "sequence2", "extend", "target", "source", "sourceKeys", "repeat", "count", "cycle", "isNegativeZero", "number", "isNothing_1", "isObject_1", "toArray_1", "repeat_1", "isNegativeZero_1", "extend_1", "common", "formatError", "exception2", "compact", "where", "YAMLException$1", "reason", "mark", "exception", "getLine", "buffer", "lineStart", "lineEnd", "maxLineLength", "head", "tail", "maxHalfLength", "padStart", "max", "makeSnippet", "re", "lineStarts", "lineEnds", "foundLineNo", "lineNoLength", "snippet", "TYPE_CONSTRUCTOR_OPTIONS", "YAML_NODE_KINDS", "compileStyleAliases", "map2", "alias", "Type$1", "tag", "type", "compileList", "schema2", "currentType", "newIndex", "previousType", "previousIndex", "compileMap", "collectType", "Schema$1", "definition", "implicit", "explicit", "type$1", "schema", "str", "seq", "map", "failsafe", "resolveYamlNull", "constructYamlNull", "isNull", "object", "_null", "resolveYamlBoolean", "constructYamlBoolean", "isBoolean", "bool", "isHexCode", "c", "isOctCode", "isDecCode", "resolveYamlInteger", "hasDigits", "ch", "constructYamlInteger", "sign", "isInteger", "int", "YAML_FLOAT_PATTERN", "resolveYamlFloat", "constructYamlFloat", "SCIENTIFIC_WITHOUT_DOT", "representYamlFloat", "isFloat", "float", "json", "core", "YAML_DATE_REGEXP", "YAML_TIMESTAMP_REGEXP", "resolveYamlTimestamp", "constructYamlTimestamp", "year", "month", "day", "hour", "minute", "second", "fraction", "delta", "tz_hour", "tz_minute", "date", "representYamlTimestamp", "timestamp", "resolveYamlMerge", "merge", "BASE64_MAP", "resolveYamlBinary", "code", "idx", "bitlen", "constructYamlBinary", "tailbits", "bits", "representYamlBinary", "isBinary", "binary", "_hasOwnProperty$3", "_toString$2", "resolveYamlOmap", "objectKeys", "pair", "pairKey", "pairHasKey", "constructYamlOmap", "omap", "_toString$1", "resolveYamlPairs", "constructYamlPairs", "pairs", "_hasOwnProperty$2", "resolveYamlSet", "constructYamlSet", "set", "_default", "_hasOwnProperty$1", "CONTEXT_FLOW_IN", "CONTEXT_FLOW_OUT", "CONTEXT_BLOCK_IN", "CONTEXT_BLOCK_OUT", "CHOMPING_CLIP", "CHOMPING_STRIP", "CHOMPING_KEEP", "PATTERN_NON_PRINTABLE", "PATTERN_NON_ASCII_LINE_BREAKS", "PATTERN_FLOW_INDICATORS", "PATTERN_TAG_HANDLE", "PATTERN_TAG_URI", "_class", "is_EOL", "is_WHITE_SPACE", "is_WS_OR_EOL", "is_FLOW_INDICATOR", "fromHexCode", "lc", "escapedHexLen", "fromDecimalCode", "simpleEscapeSequence", "charFromCodepoint", "simpleEscapeCheck", "simpleEscapeMap", "State$1", "generateError", "state2", "throwError", "throwWarning", "directiveHandlers", "major", "minor", "handle", "captureSegment", "start", "end", "checkJson", "_position", "_length", "_character", "_result", "mergeMappings", "destination", "overridableKeys", "quantity", "storeMappingPair", "keyTag", "keyNode", "valueNode", "startLine", "startLineStart", "startPos", "readLineBreak", "skipSeparationSpace", "allowComments", "checkIndent", "lineBreaks", "testDocumentSeparator", "writeFoldedLines", "readPlainScalar", "nodeIndent", "withinFlowCollection", "preceding", "following", "captureStart", "captureEnd", "hasPendingContent", "_line", "_lineStart", "_lineIndent", "_kind", "readSingleQuotedScalar", "readDoubleQuotedScalar", "hexLength", "hexResult", "tmp", "readFlowCollection", "readNext", "_pos", "_tag", "_anchor", "terminator", "isPair", "isExplicitPair", "isMapping", "composeNode", "readBlockScalar", "folding", "chomping", "didReadContent", "detectedIndent", "textIndent", "emptyLines", "atMoreIndented", "readBlockSequence", "detected", "readBlockMapping", "flowIndent", "allowCompact", "_keyLine", "_keyLineStart", "_keyPos", "atExplicitKey", "readTagProperty", "isVerbatim", "isNamed", "tagHandle", "tagName", "readAnchorProperty", "readAlias", "parentIndent", "nodeContext", "allowToSeek", "allowBlockStyles", "allowBlockScalars", "allowBlockCollections", "indentStatus", "atNewLine", "hasContent", "typeIndex", "typeQuantity", "typeList", "blockIndent", "readDocument", "documentStart", "directiveName", "directiveArgs", "hasDirectives", "loadDocuments", "nullpos", "loadAll$1", "iterator", "documents", "load$1", "loadAll_1", "load_1", "loader", "JSON_SCHEMA", "load", "extractFrontMatter", "matches", "parsed", "cleanupText", "attributes", "processFrontmatter", "displayMode", "processDirectives", "initDirective", "wrapDirectives", "preprocessDiagram", "cleanedCode", "frontMatterResult", "directiveResult", "MAX_TEXTLENGTH", "MAX_TEXTLENGTH_EXCEEDED_MSG", "SECURITY_LVL_SANDBOX", "SECURITY_LVL_LOOSE", "XMLNS_SVG_STD", "XMLNS_XLINK_STD", "XMLNS_XHTML_STD", "IFRAME_WIDTH", "IFRAME_HEIGHT", "IFRAME_STYLES", "IFRAME_BODY_STYLE", "IFRAME_SANDBOX_OPTS", "IFRAME_NOT_SUPPORTED_MSG", "DOMPURIFY_TAGS", "DOMPURIFY_ATTR", "processAndSetConfigs", "processed", "parse$1", "parseOptions", "encodeEntities", "innerTxt", "decodeEntities", "cssImportantStyles", "cssClasses", "createCssStyles", "classDefs", "cssStyles", "isEmpty_default", "cssElements", "classId", "styleClassDef", "cssElement", "createUserStyles", "graphType", "svgId", "userCSSstyles", "allStyles", "serialize", "compile", "stringify", "cleanUpSvgCode", "svgCode", "inSandboxMode", "useArrowMarkerUrls", "cleanedUpSvg", "putIntoIFrame", "svgElement", "base64encodedSrc", "appendDivSvgG", "parentRoot", "enclosingDivId", "divStyle", "svgXlink", "enclosingDiv", "svgNode", "sandboxedIframe", "parentNode", "iFrameId", "removeExistingElements", "divId", "render$1", "svgContainingElement", "idSelector", "iFrameID", "iFrameID_selector", "enclosingDivID", "enclosingDivID_selector", "isSandboxed", "isLooseSecurityLevel", "iframe", "diag", "parseEncounteredException", "firstChild", "diagramClassDefs", "rules", "style1", "a11yDescr", "addA11yInfo", "svgEl", "node", "initialize$1", "mermaidAPI", "loadRegisteredDiagrams", "failed", "err", "handleError", "errors", "parseError", "run", "runThrowsErrors", "mermaid", "postRenderCallback", "querySelector", "nodes", "nodesToProcess", "idGenerator", "dedent", "bindFunctions", "render", "initialize", "init", "callback", "runOptions", "registerExternalDiagrams", "lazyLoad", "contentLoaded", "startOnLoad", "setParseErrorHandler", "parseErrorHandler", "executionQueue", "executionQueueRunning", "executeQueue", "parse", "resolve", "reject", "performCall", "rej", "r", "container"] } diff --git a/docs/public/classDiagram-48ab76fb-DDANGYBP.min.js b/docs/public/classDiagram-48ab76fb-2NS2GWUH.min.js similarity index 97% rename from docs/public/classDiagram-48ab76fb-DDANGYBP.min.js rename to docs/public/classDiagram-48ab76fb-2NS2GWUH.min.js index 3b5ba870..2e608c7a 100644 --- a/docs/public/classDiagram-48ab76fb-DDANGYBP.min.js +++ b/docs/public/classDiagram-48ab76fb-2NS2GWUH.min.js @@ -1,3 +1,3 @@ -import{a as G,b as v,c as I}from"./chunk-NRFNOXYN.min.js";import{j as A,k as W}from"./chunk-NAH225X5.min.js";import{$a as P,G as _,Ga as y,I as C,J as R,Ka as O,Za as T,b as J,c as Z,h as E,jb as S}from"./chunk-JUXSCBYR.min.js";import{d as N}from"./chunk-P42HNYSU.min.js";var at=N(J(),1),it=N(Z(),1),nt=N(R(),1);var X=0,F=function(i,r,t,o,p){let g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};r.points=r.points.filter(e=>!Number.isNaN(e.y));let s=r.points,c=_().x(function(e){return e.x}).y(function(e){return e.y}).curve(C),n=i.append("path").attr("d",c(s)).attr("id","edge"+X).attr("class","relation"),a="";o.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+a+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+a+"#"+g(t.relation.type2)+"End)");let f,h,x=r.points.length,b=T.calcLabelPosition(r.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=T.calcCardinalityPosition(t.relation.type1!=="none",r.points,r.points[0]),d=T.calcCardinalityPosition(t.relation.type2!=="none",r.points,r.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){let e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;let l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),X++},U=function(i,r,t,o){y.debug("Rendering class ",r,t);let p=r.id,g={id:p,label:r.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup"),c;r.link?c=s.append("svg:a").attr("xlink:href",r.link).attr("target",r.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;r.annotations.forEach(function(d){let l=c.append("tspan").text("\xAB"+d+"\xBB");n||l.attr("dy",t.textHeight),n=!1});let a=$(r),f=c.append("tspan").text(a).attr("class","title");n||f.attr("dy",t.textHeight);let h=c.node().getBBox().height,x,b,u;if(r.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);let d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.members.forEach(function(l){Y(d,l,n,t),n=!1}),b=d.node().getBBox()}if(r.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);let d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.methods.forEach(function(l){Y(d,l,n,t),n=!1})}let m=s.node().getBBox();var w=" ";r.cssClasses.length>0&&(w=w+r.cssClasses.join(" "));let e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),r.tooltip&&c.insert("title").text(r.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},$=function(i){let r=i.id;return i.type&&(r+="<"+O(i.type)+">"),r},z=function(i,r,t,o){y.debug("Rendering note ",r,t);let p=r.id,g={id:p,text:r.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup"),c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0),n=JSON.parse(`"${r.text}"`).split(` +import{a as G,b as v,c as I}from"./chunk-CXT7N4L6.min.js";import{j as A,k as W}from"./chunk-EKFGDCJ4.min.js";import{$a as P,G as _,Ga as y,I as C,J as R,Ka as O,Za as T,b as J,c as Z,h as E,jb as S}from"./chunk-YICCS3KT.min.js";import{d as N}from"./chunk-P42HNYSU.min.js";var at=N(J(),1),it=N(Z(),1),nt=N(R(),1);var X=0,F=function(i,r,t,o,p){let g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};r.points=r.points.filter(e=>!Number.isNaN(e.y));let s=r.points,c=_().x(function(e){return e.x}).y(function(e){return e.y}).curve(C),n=i.append("path").attr("d",c(s)).attr("id","edge"+X).attr("class","relation"),a="";o.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+a+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+a+"#"+g(t.relation.type2)+"End)");let f,h,x=r.points.length,b=T.calcLabelPosition(r.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=T.calcCardinalityPosition(t.relation.type1!=="none",r.points,r.points[0]),d=T.calcCardinalityPosition(t.relation.type2!=="none",r.points,r.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){let e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;let l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),X++},U=function(i,r,t,o){y.debug("Rendering class ",r,t);let p=r.id,g={id:p,label:r.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup"),c;r.link?c=s.append("svg:a").attr("xlink:href",r.link).attr("target",r.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;r.annotations.forEach(function(d){let l=c.append("tspan").text("\xAB"+d+"\xBB");n||l.attr("dy",t.textHeight),n=!1});let a=$(r),f=c.append("tspan").text(a).attr("class","title");n||f.attr("dy",t.textHeight);let h=c.node().getBBox().height,x,b,u;if(r.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);let d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.members.forEach(function(l){Y(d,l,n,t),n=!1}),b=d.node().getBBox()}if(r.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);let d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,r.methods.forEach(function(l){Y(d,l,n,t),n=!1})}let m=s.node().getBBox();var w=" ";r.cssClasses.length>0&&(w=w+r.cssClasses.join(" "));let e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),r.tooltip&&c.insert("title").text(r.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},$=function(i){let r=i.id;return i.type&&(r+="<"+O(i.type)+">"),r},z=function(i,r,t,o){y.debug("Rendering note ",r,t);let p=r.id,g={id:p,text:r.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup"),c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0),n=JSON.parse(`"${r.text}"`).split(` `);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});let a=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",a.width+2*t.padding).attr("height",a.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=a.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},Y=function(i,r,t,o){let{displayText:p,cssStyle:g}=r.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",r.cssStyle),t||s.attr("dy",o.textHeight)},H={getClassTitleString:$,drawClass:U,drawEdge:F,drawNote:z},M={},B=20,L=function(i){let r=Object.entries(M).find(t=>t[1].label===i);if(r)return r[0]},V=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")},q=function(i,r,t,o){let p=S().class;M={},y.info("Rendering diagram "+i);let g=S().securityLevel,s;g==="sandbox"&&(s=E("#i"+r));let c=g==="sandbox"?E(s.nodes()[0].contentDocument.body):E("body"),n=c.select(`[id='${r}']`);V(n);let a=new A({multigraph:!0});a.setGraph({isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}});let f=o.db.getClasses(),h=Object.keys(f);for(let e of h){let d=f[e],l=H.drawClass(n,d,p,o);M[l.id]=l,a.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),a.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);let d=H.drawNote(n,e,p,o);M[d.id]=d,a.setNode(d.id,d),e.class&&e.class in f&&a.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),W(a),a.nodes().forEach(function(e){e!==void 0&&a.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(a.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(a.node(e).x-a.node(e).width/2)+","+(a.node(e).y-a.node(e).height/2)+" )"))}),a.edges().forEach(function(e){e!==void 0&&a.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(a.edge(e))),H.drawEdge(n,a.edge(e),a.edge(e).relation,p,o))});let u=n.node().getBBox(),m=u.width+B*2,w=u.height+B*2;P(n,w,m,p.useMaxWidth);let k=`${u.x-B} ${u.y-B} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},K={draw:q},dt={parser:G,db:v,renderer:K,styles:I,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,v.clear()}};export{dt as diagram}; -//# sourceMappingURL=classDiagram-48ab76fb-DDANGYBP.min.js.map +//# sourceMappingURL=classDiagram-48ab76fb-2NS2GWUH.min.js.map diff --git a/docs/public/classDiagram-48ab76fb-DDANGYBP.min.js.map b/docs/public/classDiagram-48ab76fb-2NS2GWUH.min.js.map similarity index 100% rename from docs/public/classDiagram-48ab76fb-DDANGYBP.min.js.map rename to docs/public/classDiagram-48ab76fb-2NS2GWUH.min.js.map diff --git a/docs/public/classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js b/docs/public/classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js similarity index 92% rename from docs/public/classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js rename to docs/public/classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js index a6cd50b4..bfb9200f 100644 --- a/docs/public/classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js +++ b/docs/public/classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js @@ -1,3 +1,3 @@ -import{a as M,b as T,c as R}from"./chunk-NRFNOXYN.min.js";import{a as I}from"./chunk-VHIEHVUL.min.js";import"./chunk-NV7BXRXJ.min.js";import"./chunk-ZMRDHQ6H.min.js";import{j as A}from"./chunk-NAH225X5.min.js";import{F as S,Ga as d,J as V,La as L,Qa as N,Ra as B,Za as G,ab as z,b as F,c as H,h as g,jb as i}from"./chunk-JUXSCBYR.min.js";import{d as k}from"./chunk-P42HNYSU.min.js";var ot=k(F(),1),lt=k(H(),1),nt=k(V(),1);var E=n=>L.sanitizeText(n,i()),D={dividerMargin:10,padding:5,textHeight:10,curve:void 0},W=function(n,e,y,s){let t=Object.keys(n);d.info("keys:",t),d.info(n),t.forEach(function(r){var o,c;let l=n[r],p={shape:"rect",id:l.id,domId:l.domId,labelText:E(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=i().flowchart)==null?void 0:o.padding)??((c=i().class)==null?void 0:c.padding)};e.setNode(l.id,p),$(l.classes,e,y,s,l.id),d.info("setNode",p)})},$=function(n,e,y,s,t){let r=Object.keys(n);d.info("keys:",r),d.info(n),r.filter(o=>n[o].parent==t).forEach(function(o){var c,l;let a=n[o],p=a.cssClasses.join(" "),f={labelStyle:"",style:""},h=a.label??a.id,b=0,m="class_box",u={labelStyle:f.labelStyle,shape:m,labelText:E(h),classData:a,rx:b,ry:b,class:p,style:f.style,id:a.id,domId:a.domId,tooltip:s.db.getTooltip(a.id,t)||"",haveCallback:a.haveCallback,link:a.link,width:a.type==="group"?500:void 0,type:a.type,padding:((c=i().flowchart)==null?void 0:c.padding)??((l=i().class)==null?void 0:l.padding)};e.setNode(a.id,u),t&&e.setParent(a.id,t),d.info("setNode",u)})},J=function(n,e,y,s){d.info(n),n.forEach(function(t,r){var o,c;let l=t,a="",p={labelStyle:"",style:""},f=l.text,h=0,b="note",m={labelStyle:p.labelStyle,shape:b,labelText:E(f),noteData:l,rx:h,ry:h,class:a,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=i().flowchart)==null?void 0:o.padding)??((c=i().class)==null?void 0:c.padding)};if(e.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in s))return;let u=y+r,x={id:`edgeNote${u}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:N(D.curve,S)};e.setEdge(l.id,l.class,x,u)})},K=function(n,e){let y=i().flowchart,s=0;n.forEach(function(t){var r;s++;let o={classes:"relation",pattern:t.relation.lineType==1?"dashed":"solid",id:"id"+s,arrowhead:t.type==="arrow_open"?"none":"normal",startLabelRight:t.relationTitle1==="none"?"":t.relationTitle1,endLabelLeft:t.relationTitle2==="none"?"":t.relationTitle2,arrowTypeStart:P(t.relation.type1),arrowTypeEnd:P(t.relation.type2),style:"fill:none",labelStyle:"",curve:N(y?.curve,S)};if(d.info(o,t),t.style!==void 0){let c=B(t.style);o.style=c.style,o.labelStyle=c.labelStyle}t.text=t.title,t.text===void 0?t.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((r=i().flowchart)==null?void 0:r.htmlLabels)??i().htmlLabels?(o.labelType="html",o.label=''+t.text+""):(o.labelType="text",o.label=t.text.replace(L.lineBreakRegex,` +import{a as M,b as T,c as R}from"./chunk-CXT7N4L6.min.js";import{a as I}from"./chunk-YAMJ4ASO.min.js";import"./chunk-3RELVOUY.min.js";import"./chunk-DALFUHAB.min.js";import{j as A}from"./chunk-EKFGDCJ4.min.js";import{F as S,Ga as d,J as V,La as L,Qa as N,Ra as B,Za as G,ab as z,b as F,c as H,h as g,jb as i}from"./chunk-YICCS3KT.min.js";import{d as k}from"./chunk-P42HNYSU.min.js";var ot=k(F(),1),lt=k(H(),1),nt=k(V(),1);var E=n=>L.sanitizeText(n,i()),D={dividerMargin:10,padding:5,textHeight:10,curve:void 0},W=function(n,e,y,s){let t=Object.keys(n);d.info("keys:",t),d.info(n),t.forEach(function(r){var o,c;let l=n[r],p={shape:"rect",id:l.id,domId:l.domId,labelText:E(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=i().flowchart)==null?void 0:o.padding)??((c=i().class)==null?void 0:c.padding)};e.setNode(l.id,p),$(l.classes,e,y,s,l.id),d.info("setNode",p)})},$=function(n,e,y,s,t){let r=Object.keys(n);d.info("keys:",r),d.info(n),r.filter(o=>n[o].parent==t).forEach(function(o){var c,l;let a=n[o],p=a.cssClasses.join(" "),f={labelStyle:"",style:""},h=a.label??a.id,b=0,m="class_box",u={labelStyle:f.labelStyle,shape:m,labelText:E(h),classData:a,rx:b,ry:b,class:p,style:f.style,id:a.id,domId:a.domId,tooltip:s.db.getTooltip(a.id,t)||"",haveCallback:a.haveCallback,link:a.link,width:a.type==="group"?500:void 0,type:a.type,padding:((c=i().flowchart)==null?void 0:c.padding)??((l=i().class)==null?void 0:l.padding)};e.setNode(a.id,u),t&&e.setParent(a.id,t),d.info("setNode",u)})},J=function(n,e,y,s){d.info(n),n.forEach(function(t,r){var o,c;let l=t,a="",p={labelStyle:"",style:""},f=l.text,h=0,b="note",m={labelStyle:p.labelStyle,shape:b,labelText:E(f),noteData:l,rx:h,ry:h,class:a,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=i().flowchart)==null?void 0:o.padding)??((c=i().class)==null?void 0:c.padding)};if(e.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in s))return;let u=y+r,x={id:`edgeNote${u}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:N(D.curve,S)};e.setEdge(l.id,l.class,x,u)})},K=function(n,e){let y=i().flowchart,s=0;n.forEach(function(t){var r;s++;let o={classes:"relation",pattern:t.relation.lineType==1?"dashed":"solid",id:"id"+s,arrowhead:t.type==="arrow_open"?"none":"normal",startLabelRight:t.relationTitle1==="none"?"":t.relationTitle1,endLabelLeft:t.relationTitle2==="none"?"":t.relationTitle2,arrowTypeStart:P(t.relation.type1),arrowTypeEnd:P(t.relation.type2),style:"fill:none",labelStyle:"",curve:N(y?.curve,S)};if(d.info(o,t),t.style!==void 0){let c=B(t.style);o.style=c.style,o.labelStyle=c.labelStyle}t.text=t.title,t.text===void 0?t.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((r=i().flowchart)==null?void 0:r.htmlLabels)??i().htmlLabels?(o.labelType="html",o.label=''+t.text+""):(o.labelType="text",o.label=t.text.replace(L.lineBreakRegex,` `),t.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),e.setEdge(t.id1,t.id2,o,s)})},Q=function(n){D={...D,...n}},U=async function(n,e,y,s){d.info("Drawing class - ",e);let t=i().flowchart??i().class,r=i().securityLevel;d.info("config:",t);let o=t?.nodeSpacing??50,c=t?.rankSpacing??50,l=new A({multigraph:!0,compound:!0}).setGraph({rankdir:s.db.getDirection(),nodesep:o,ranksep:c,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=s.db.getNamespaces(),p=s.db.getClasses(),f=s.db.getRelations(),h=s.db.getNotes();d.info(f),W(a,l,e,s),$(p,l,e,s),K(f,l),J(h,l,f.length+1,p);let b;r==="sandbox"&&(b=g("#i"+e));let m=r==="sandbox"?g(b.nodes()[0].contentDocument.body):g("body"),u=m.select(`[id="${e}"]`),x=m.select("#"+e+" g");if(await I(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),G.insertTitle(u,"classTitleText",t?.titleTopMargin??5,s.db.getDiagramTitle()),z(l,u,t?.diagramPadding,t?.useMaxWidth),!t?.htmlLabels){let _=r==="sandbox"?b.nodes()[0].contentDocument:document,q=_.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(let w of q){let C=w.getBBox(),v=_.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",C.width),v.setAttribute("height",C.height),w.insertBefore(v,w.firstChild)}}};function P(n){let e;switch(n){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}var X={setConf:Q,draw:U},it={parser:M,db:T,renderer:X,styles:R,init:n=>{n.class||(n.class={}),n.class.arrowMarkerAbsolute=n.arrowMarkerAbsolute,T.clear()}};export{it as diagram}; -//# sourceMappingURL=classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js.map +//# sourceMappingURL=classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js.map diff --git a/docs/public/classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js.map b/docs/public/classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js.map similarity index 100% rename from docs/public/classDiagram-v2-8ecb0bfc-5GKH2VJ4.min.js.map rename to docs/public/classDiagram-v2-8ecb0bfc-NYCPINMQ.min.js.map diff --git a/docs/public/docfx.min.css b/docs/public/docfx.min.css index a86abb79..da01d986 100644 --- a/docs/public/docfx.min.css +++ b/docs/public/docfx.min.css @@ -1,4 +1,4 @@ -@charset "UTF-8";@font-face{font-display:block;font-family:bootstrap-icons;src:url("./bootstrap-icons-6QOYJHKE.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"),url("./bootstrap-icons-JHE3QUSN.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff")}.bi:before,[class^=bi-]:before,[class*=" bi-"]:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123:before{content:"\f67f"}.bi-alarm-fill:before{content:"\f101"}.bi-alarm:before{content:"\f102"}.bi-align-bottom:before{content:"\f103"}.bi-align-center:before{content:"\f104"}.bi-align-end:before{content:"\f105"}.bi-align-middle:before{content:"\f106"}.bi-align-start:before{content:"\f107"}.bi-align-top:before{content:"\f108"}.bi-alt:before{content:"\f109"}.bi-app-indicator:before{content:"\f10a"}.bi-app:before{content:"\f10b"}.bi-archive-fill:before{content:"\f10c"}.bi-archive:before{content:"\f10d"}.bi-arrow-90deg-down:before{content:"\f10e"}.bi-arrow-90deg-left:before{content:"\f10f"}.bi-arrow-90deg-right:before{content:"\f110"}.bi-arrow-90deg-up:before{content:"\f111"}.bi-arrow-bar-down:before{content:"\f112"}.bi-arrow-bar-left:before{content:"\f113"}.bi-arrow-bar-right:before{content:"\f114"}.bi-arrow-bar-up:before{content:"\f115"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down-circle-fill:before{content:"\f118"}.bi-arrow-down-circle:before{content:"\f119"}.bi-arrow-down-left-circle-fill:before{content:"\f11a"}.bi-arrow-down-left-circle:before{content:"\f11b"}.bi-arrow-down-left-square-fill:before{content:"\f11c"}.bi-arrow-down-left-square:before{content:"\f11d"}.bi-arrow-down-left:before{content:"\f11e"}.bi-arrow-down-right-circle-fill:before{content:"\f11f"}.bi-arrow-down-right-circle:before{content:"\f120"}.bi-arrow-down-right-square-fill:before{content:"\f121"}.bi-arrow-down-right-square:before{content:"\f122"}.bi-arrow-down-right:before{content:"\f123"}.bi-arrow-down-short:before{content:"\f124"}.bi-arrow-down-square-fill:before{content:"\f125"}.bi-arrow-down-square:before{content:"\f126"}.bi-arrow-down-up:before{content:"\f127"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left-circle-fill:before{content:"\f129"}.bi-arrow-left-circle:before{content:"\f12a"}.bi-arrow-left-right:before{content:"\f12b"}.bi-arrow-left-short:before{content:"\f12c"}.bi-arrow-left-square-fill:before{content:"\f12d"}.bi-arrow-left-square:before{content:"\f12e"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-return-left:before{content:"\f131"}.bi-arrow-return-right:before{content:"\f132"}.bi-arrow-right-circle-fill:before{content:"\f133"}.bi-arrow-right-circle:before{content:"\f134"}.bi-arrow-right-short:before{content:"\f135"}.bi-arrow-right-square-fill:before{content:"\f136"}.bi-arrow-right-square:before{content:"\f137"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-circle-fill:before{content:"\f139"}.bi-arrow-up-circle:before{content:"\f13a"}.bi-arrow-up-left-circle-fill:before{content:"\f13b"}.bi-arrow-up-left-circle:before{content:"\f13c"}.bi-arrow-up-left-square-fill:before{content:"\f13d"}.bi-arrow-up-left-square:before{content:"\f13e"}.bi-arrow-up-left:before{content:"\f13f"}.bi-arrow-up-right-circle-fill:before{content:"\f140"}.bi-arrow-up-right-circle:before{content:"\f141"}.bi-arrow-up-right-square-fill:before{content:"\f142"}.bi-arrow-up-right-square:before{content:"\f143"}.bi-arrow-up-right:before{content:"\f144"}.bi-arrow-up-short:before{content:"\f145"}.bi-arrow-up-square-fill:before{content:"\f146"}.bi-arrow-up-square:before{content:"\f147"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-arrows-collapse:before{content:"\f14b"}.bi-arrows-expand:before{content:"\f14c"}.bi-arrows-fullscreen:before{content:"\f14d"}.bi-arrows-move:before{content:"\f14e"}.bi-aspect-ratio-fill:before{content:"\f14f"}.bi-aspect-ratio:before{content:"\f150"}.bi-asterisk:before{content:"\f151"}.bi-at:before{content:"\f152"}.bi-award-fill:before{content:"\f153"}.bi-award:before{content:"\f154"}.bi-back:before{content:"\f155"}.bi-backspace-fill:before{content:"\f156"}.bi-backspace-reverse-fill:before{content:"\f157"}.bi-backspace-reverse:before{content:"\f158"}.bi-backspace:before{content:"\f159"}.bi-badge-3d-fill:before{content:"\f15a"}.bi-badge-3d:before{content:"\f15b"}.bi-badge-4k-fill:before{content:"\f15c"}.bi-badge-4k:before{content:"\f15d"}.bi-badge-8k-fill:before{content:"\f15e"}.bi-badge-8k:before{content:"\f15f"}.bi-badge-ad-fill:before{content:"\f160"}.bi-badge-ad:before{content:"\f161"}.bi-badge-ar-fill:before{content:"\f162"}.bi-badge-ar:before{content:"\f163"}.bi-badge-cc-fill:before{content:"\f164"}.bi-badge-cc:before{content:"\f165"}.bi-badge-hd-fill:before{content:"\f166"}.bi-badge-hd:before{content:"\f167"}.bi-badge-tm-fill:before{content:"\f168"}.bi-badge-tm:before{content:"\f169"}.bi-badge-vo-fill:before{content:"\f16a"}.bi-badge-vo:before{content:"\f16b"}.bi-badge-vr-fill:before{content:"\f16c"}.bi-badge-vr:before{content:"\f16d"}.bi-badge-wc-fill:before{content:"\f16e"}.bi-badge-wc:before{content:"\f16f"}.bi-bag-check-fill:before{content:"\f170"}.bi-bag-check:before{content:"\f171"}.bi-bag-dash-fill:before{content:"\f172"}.bi-bag-dash:before{content:"\f173"}.bi-bag-fill:before{content:"\f174"}.bi-bag-plus-fill:before{content:"\f175"}.bi-bag-plus:before{content:"\f176"}.bi-bag-x-fill:before{content:"\f177"}.bi-bag-x:before{content:"\f178"}.bi-bag:before{content:"\f179"}.bi-bar-chart-fill:before{content:"\f17a"}.bi-bar-chart-line-fill:before{content:"\f17b"}.bi-bar-chart-line:before{content:"\f17c"}.bi-bar-chart-steps:before{content:"\f17d"}.bi-bar-chart:before{content:"\f17e"}.bi-basket-fill:before{content:"\f17f"}.bi-basket:before{content:"\f180"}.bi-basket2-fill:before{content:"\f181"}.bi-basket2:before{content:"\f182"}.bi-basket3-fill:before{content:"\f183"}.bi-basket3:before{content:"\f184"}.bi-battery-charging:before{content:"\f185"}.bi-battery-full:before{content:"\f186"}.bi-battery-half:before{content:"\f187"}.bi-battery:before{content:"\f188"}.bi-bell-fill:before{content:"\f189"}.bi-bell:before{content:"\f18a"}.bi-bezier:before{content:"\f18b"}.bi-bezier2:before{content:"\f18c"}.bi-bicycle:before{content:"\f18d"}.bi-binoculars-fill:before{content:"\f18e"}.bi-binoculars:before{content:"\f18f"}.bi-blockquote-left:before{content:"\f190"}.bi-blockquote-right:before{content:"\f191"}.bi-book-fill:before{content:"\f192"}.bi-book-half:before{content:"\f193"}.bi-book:before{content:"\f194"}.bi-bookmark-check-fill:before{content:"\f195"}.bi-bookmark-check:before{content:"\f196"}.bi-bookmark-dash-fill:before{content:"\f197"}.bi-bookmark-dash:before{content:"\f198"}.bi-bookmark-fill:before{content:"\f199"}.bi-bookmark-heart-fill:before{content:"\f19a"}.bi-bookmark-heart:before{content:"\f19b"}.bi-bookmark-plus-fill:before{content:"\f19c"}.bi-bookmark-plus:before{content:"\f19d"}.bi-bookmark-star-fill:before{content:"\f19e"}.bi-bookmark-star:before{content:"\f19f"}.bi-bookmark-x-fill:before{content:"\f1a0"}.bi-bookmark-x:before{content:"\f1a1"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmarks-fill:before{content:"\f1a3"}.bi-bookmarks:before{content:"\f1a4"}.bi-bookshelf:before{content:"\f1a5"}.bi-bootstrap-fill:before{content:"\f1a6"}.bi-bootstrap-reboot:before{content:"\f1a7"}.bi-bootstrap:before{content:"\f1a8"}.bi-border-all:before{content:"\f1a9"}.bi-border-bottom:before{content:"\f1aa"}.bi-border-center:before{content:"\f1ab"}.bi-border-inner:before{content:"\f1ac"}.bi-border-left:before{content:"\f1ad"}.bi-border-middle:before{content:"\f1ae"}.bi-border-outer:before{content:"\f1af"}.bi-border-right:before{content:"\f1b0"}.bi-border-style:before{content:"\f1b1"}.bi-border-top:before{content:"\f1b2"}.bi-border-width:before{content:"\f1b3"}.bi-border:before{content:"\f1b4"}.bi-bounding-box-circles:before{content:"\f1b5"}.bi-bounding-box:before{content:"\f1b6"}.bi-box-arrow-down-left:before{content:"\f1b7"}.bi-box-arrow-down-right:before{content:"\f1b8"}.bi-box-arrow-down:before{content:"\f1b9"}.bi-box-arrow-in-down-left:before{content:"\f1ba"}.bi-box-arrow-in-down-right:before{content:"\f1bb"}.bi-box-arrow-in-down:before{content:"\f1bc"}.bi-box-arrow-in-left:before{content:"\f1bd"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-in-up-left:before{content:"\f1bf"}.bi-box-arrow-in-up-right:before{content:"\f1c0"}.bi-box-arrow-in-up:before{content:"\f1c1"}.bi-box-arrow-left:before{content:"\f1c2"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-box-arrow-up-left:before{content:"\f1c4"}.bi-box-arrow-up-right:before{content:"\f1c5"}.bi-box-arrow-up:before{content:"\f1c6"}.bi-box-seam:before{content:"\f1c7"}.bi-box:before{content:"\f1c8"}.bi-braces:before{content:"\f1c9"}.bi-bricks:before{content:"\f1ca"}.bi-briefcase-fill:before{content:"\f1cb"}.bi-briefcase:before{content:"\f1cc"}.bi-brightness-alt-high-fill:before{content:"\f1cd"}.bi-brightness-alt-high:before{content:"\f1ce"}.bi-brightness-alt-low-fill:before{content:"\f1cf"}.bi-brightness-alt-low:before{content:"\f1d0"}.bi-brightness-high-fill:before{content:"\f1d1"}.bi-brightness-high:before{content:"\f1d2"}.bi-brightness-low-fill:before{content:"\f1d3"}.bi-brightness-low:before{content:"\f1d4"}.bi-broadcast-pin:before{content:"\f1d5"}.bi-broadcast:before{content:"\f1d6"}.bi-brush-fill:before{content:"\f1d7"}.bi-brush:before{content:"\f1d8"}.bi-bucket-fill:before{content:"\f1d9"}.bi-bucket:before{content:"\f1da"}.bi-bug-fill:before{content:"\f1db"}.bi-bug:before{content:"\f1dc"}.bi-building:before{content:"\f1dd"}.bi-bullseye:before{content:"\f1de"}.bi-calculator-fill:before{content:"\f1df"}.bi-calculator:before{content:"\f1e0"}.bi-calendar-check-fill:before{content:"\f1e1"}.bi-calendar-check:before{content:"\f1e2"}.bi-calendar-date-fill:before{content:"\f1e3"}.bi-calendar-date:before{content:"\f1e4"}.bi-calendar-day-fill:before{content:"\f1e5"}.bi-calendar-day:before{content:"\f1e6"}.bi-calendar-event-fill:before{content:"\f1e7"}.bi-calendar-event:before{content:"\f1e8"}.bi-calendar-fill:before{content:"\f1e9"}.bi-calendar-minus-fill:before{content:"\f1ea"}.bi-calendar-minus:before{content:"\f1eb"}.bi-calendar-month-fill:before{content:"\f1ec"}.bi-calendar-month:before{content:"\f1ed"}.bi-calendar-plus-fill:before{content:"\f1ee"}.bi-calendar-plus:before{content:"\f1ef"}.bi-calendar-range-fill:before{content:"\f1f0"}.bi-calendar-range:before{content:"\f1f1"}.bi-calendar-week-fill:before{content:"\f1f2"}.bi-calendar-week:before{content:"\f1f3"}.bi-calendar-x-fill:before{content:"\f1f4"}.bi-calendar-x:before{content:"\f1f5"}.bi-calendar:before{content:"\f1f6"}.bi-calendar2-check-fill:before{content:"\f1f7"}.bi-calendar2-check:before{content:"\f1f8"}.bi-calendar2-date-fill:before{content:"\f1f9"}.bi-calendar2-date:before{content:"\f1fa"}.bi-calendar2-day-fill:before{content:"\f1fb"}.bi-calendar2-day:before{content:"\f1fc"}.bi-calendar2-event-fill:before{content:"\f1fd"}.bi-calendar2-event:before{content:"\f1fe"}.bi-calendar2-fill:before{content:"\f1ff"}.bi-calendar2-minus-fill:before{content:"\f200"}.bi-calendar2-minus:before{content:"\f201"}.bi-calendar2-month-fill:before{content:"\f202"}.bi-calendar2-month:before{content:"\f203"}.bi-calendar2-plus-fill:before{content:"\f204"}.bi-calendar2-plus:before{content:"\f205"}.bi-calendar2-range-fill:before{content:"\f206"}.bi-calendar2-range:before{content:"\f207"}.bi-calendar2-week-fill:before{content:"\f208"}.bi-calendar2-week:before{content:"\f209"}.bi-calendar2-x-fill:before{content:"\f20a"}.bi-calendar2-x:before{content:"\f20b"}.bi-calendar2:before{content:"\f20c"}.bi-calendar3-event-fill:before{content:"\f20d"}.bi-calendar3-event:before{content:"\f20e"}.bi-calendar3-fill:before{content:"\f20f"}.bi-calendar3-range-fill:before{content:"\f210"}.bi-calendar3-range:before{content:"\f211"}.bi-calendar3-week-fill:before{content:"\f212"}.bi-calendar3-week:before{content:"\f213"}.bi-calendar3:before{content:"\f214"}.bi-calendar4-event:before{content:"\f215"}.bi-calendar4-range:before{content:"\f216"}.bi-calendar4-week:before{content:"\f217"}.bi-calendar4:before{content:"\f218"}.bi-camera-fill:before{content:"\f219"}.bi-camera-reels-fill:before{content:"\f21a"}.bi-camera-reels:before{content:"\f21b"}.bi-camera-video-fill:before{content:"\f21c"}.bi-camera-video-off-fill:before{content:"\f21d"}.bi-camera-video-off:before{content:"\f21e"}.bi-camera-video:before{content:"\f21f"}.bi-camera:before{content:"\f220"}.bi-camera2:before{content:"\f221"}.bi-capslock-fill:before{content:"\f222"}.bi-capslock:before{content:"\f223"}.bi-card-checklist:before{content:"\f224"}.bi-card-heading:before{content:"\f225"}.bi-card-image:before{content:"\f226"}.bi-card-list:before{content:"\f227"}.bi-card-text:before{content:"\f228"}.bi-caret-down-fill:before{content:"\f229"}.bi-caret-down-square-fill:before{content:"\f22a"}.bi-caret-down-square:before{content:"\f22b"}.bi-caret-down:before{content:"\f22c"}.bi-caret-left-fill:before{content:"\f22d"}.bi-caret-left-square-fill:before{content:"\f22e"}.bi-caret-left-square:before{content:"\f22f"}.bi-caret-left:before{content:"\f230"}.bi-caret-right-fill:before{content:"\f231"}.bi-caret-right-square-fill:before{content:"\f232"}.bi-caret-right-square:before{content:"\f233"}.bi-caret-right:before{content:"\f234"}.bi-caret-up-fill:before{content:"\f235"}.bi-caret-up-square-fill:before{content:"\f236"}.bi-caret-up-square:before{content:"\f237"}.bi-caret-up:before{content:"\f238"}.bi-cart-check-fill:before{content:"\f239"}.bi-cart-check:before{content:"\f23a"}.bi-cart-dash-fill:before{content:"\f23b"}.bi-cart-dash:before{content:"\f23c"}.bi-cart-fill:before{content:"\f23d"}.bi-cart-plus-fill:before{content:"\f23e"}.bi-cart-plus:before{content:"\f23f"}.bi-cart-x-fill:before{content:"\f240"}.bi-cart-x:before{content:"\f241"}.bi-cart:before{content:"\f242"}.bi-cart2:before{content:"\f243"}.bi-cart3:before{content:"\f244"}.bi-cart4:before{content:"\f245"}.bi-cash-stack:before{content:"\f246"}.bi-cash:before{content:"\f247"}.bi-cast:before{content:"\f248"}.bi-chat-dots-fill:before{content:"\f249"}.bi-chat-dots:before{content:"\f24a"}.bi-chat-fill:before{content:"\f24b"}.bi-chat-left-dots-fill:before{content:"\f24c"}.bi-chat-left-dots:before{content:"\f24d"}.bi-chat-left-fill:before{content:"\f24e"}.bi-chat-left-quote-fill:before{content:"\f24f"}.bi-chat-left-quote:before{content:"\f250"}.bi-chat-left-text-fill:before{content:"\f251"}.bi-chat-left-text:before{content:"\f252"}.bi-chat-left:before{content:"\f253"}.bi-chat-quote-fill:before{content:"\f254"}.bi-chat-quote:before{content:"\f255"}.bi-chat-right-dots-fill:before{content:"\f256"}.bi-chat-right-dots:before{content:"\f257"}.bi-chat-right-fill:before{content:"\f258"}.bi-chat-right-quote-fill:before{content:"\f259"}.bi-chat-right-quote:before{content:"\f25a"}.bi-chat-right-text-fill:before{content:"\f25b"}.bi-chat-right-text:before{content:"\f25c"}.bi-chat-right:before{content:"\f25d"}.bi-chat-square-dots-fill:before{content:"\f25e"}.bi-chat-square-dots:before{content:"\f25f"}.bi-chat-square-fill:before{content:"\f260"}.bi-chat-square-quote-fill:before{content:"\f261"}.bi-chat-square-quote:before{content:"\f262"}.bi-chat-square-text-fill:before{content:"\f263"}.bi-chat-square-text:before{content:"\f264"}.bi-chat-square:before{content:"\f265"}.bi-chat-text-fill:before{content:"\f266"}.bi-chat-text:before{content:"\f267"}.bi-chat:before{content:"\f268"}.bi-check-all:before{content:"\f269"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check-circle:before{content:"\f26b"}.bi-check-square-fill:before{content:"\f26c"}.bi-check-square:before{content:"\f26d"}.bi-check:before{content:"\f26e"}.bi-check2-all:before{content:"\f26f"}.bi-check2-circle:before{content:"\f270"}.bi-check2-square:before{content:"\f271"}.bi-check2:before{content:"\f272"}.bi-chevron-bar-contract:before{content:"\f273"}.bi-chevron-bar-down:before{content:"\f274"}.bi-chevron-bar-expand:before{content:"\f275"}.bi-chevron-bar-left:before{content:"\f276"}.bi-chevron-bar-right:before{content:"\f277"}.bi-chevron-bar-up:before{content:"\f278"}.bi-chevron-compact-down:before{content:"\f279"}.bi-chevron-compact-left:before{content:"\f27a"}.bi-chevron-compact-right:before{content:"\f27b"}.bi-chevron-compact-up:before{content:"\f27c"}.bi-chevron-contract:before{content:"\f27d"}.bi-chevron-double-down:before{content:"\f27e"}.bi-chevron-double-left:before{content:"\f27f"}.bi-chevron-double-right:before{content:"\f280"}.bi-chevron-double-up:before{content:"\f281"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-expand:before{content:"\f283"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle-fill:before{content:"\f287"}.bi-circle-half:before{content:"\f288"}.bi-circle-square:before{content:"\f289"}.bi-circle:before{content:"\f28a"}.bi-clipboard-check:before{content:"\f28b"}.bi-clipboard-data:before{content:"\f28c"}.bi-clipboard-minus:before{content:"\f28d"}.bi-clipboard-plus:before{content:"\f28e"}.bi-clipboard-x:before{content:"\f28f"}.bi-clipboard:before{content:"\f290"}.bi-clock-fill:before{content:"\f291"}.bi-clock-history:before{content:"\f292"}.bi-clock:before{content:"\f293"}.bi-cloud-arrow-down-fill:before{content:"\f294"}.bi-cloud-arrow-down:before{content:"\f295"}.bi-cloud-arrow-up-fill:before{content:"\f296"}.bi-cloud-arrow-up:before{content:"\f297"}.bi-cloud-check-fill:before{content:"\f298"}.bi-cloud-check:before{content:"\f299"}.bi-cloud-download-fill:before{content:"\f29a"}.bi-cloud-download:before{content:"\f29b"}.bi-cloud-drizzle-fill:before{content:"\f29c"}.bi-cloud-drizzle:before{content:"\f29d"}.bi-cloud-fill:before{content:"\f29e"}.bi-cloud-fog-fill:before{content:"\f29f"}.bi-cloud-fog:before{content:"\f2a0"}.bi-cloud-fog2-fill:before{content:"\f2a1"}.bi-cloud-fog2:before{content:"\f2a2"}.bi-cloud-hail-fill:before{content:"\f2a3"}.bi-cloud-hail:before{content:"\f2a4"}.bi-cloud-haze-fill:before{content:"\f2a6"}.bi-cloud-haze:before{content:"\f2a7"}.bi-cloud-haze2-fill:before{content:"\f2a8"}.bi-cloud-lightning-fill:before{content:"\f2a9"}.bi-cloud-lightning-rain-fill:before{content:"\f2aa"}.bi-cloud-lightning-rain:before{content:"\f2ab"}.bi-cloud-lightning:before{content:"\f2ac"}.bi-cloud-minus-fill:before{content:"\f2ad"}.bi-cloud-minus:before{content:"\f2ae"}.bi-cloud-moon-fill:before{content:"\f2af"}.bi-cloud-moon:before{content:"\f2b0"}.bi-cloud-plus-fill:before{content:"\f2b1"}.bi-cloud-plus:before{content:"\f2b2"}.bi-cloud-rain-fill:before{content:"\f2b3"}.bi-cloud-rain-heavy-fill:before{content:"\f2b4"}.bi-cloud-rain-heavy:before{content:"\f2b5"}.bi-cloud-rain:before{content:"\f2b6"}.bi-cloud-slash-fill:before{content:"\f2b7"}.bi-cloud-slash:before{content:"\f2b8"}.bi-cloud-sleet-fill:before{content:"\f2b9"}.bi-cloud-sleet:before{content:"\f2ba"}.bi-cloud-snow-fill:before{content:"\f2bb"}.bi-cloud-snow:before{content:"\f2bc"}.bi-cloud-sun-fill:before{content:"\f2bd"}.bi-cloud-sun:before{content:"\f2be"}.bi-cloud-upload-fill:before{content:"\f2bf"}.bi-cloud-upload:before{content:"\f2c0"}.bi-cloud:before{content:"\f2c1"}.bi-clouds-fill:before{content:"\f2c2"}.bi-clouds:before{content:"\f2c3"}.bi-cloudy-fill:before{content:"\f2c4"}.bi-cloudy:before{content:"\f2c5"}.bi-code-slash:before{content:"\f2c6"}.bi-code-square:before{content:"\f2c7"}.bi-code:before{content:"\f2c8"}.bi-collection-fill:before{content:"\f2c9"}.bi-collection-play-fill:before{content:"\f2ca"}.bi-collection-play:before{content:"\f2cb"}.bi-collection:before{content:"\f2cc"}.bi-columns-gap:before{content:"\f2cd"}.bi-columns:before{content:"\f2ce"}.bi-command:before{content:"\f2cf"}.bi-compass-fill:before{content:"\f2d0"}.bi-compass:before{content:"\f2d1"}.bi-cone-striped:before{content:"\f2d2"}.bi-cone:before{content:"\f2d3"}.bi-controller:before{content:"\f2d4"}.bi-cpu-fill:before{content:"\f2d5"}.bi-cpu:before{content:"\f2d6"}.bi-credit-card-2-back-fill:before{content:"\f2d7"}.bi-credit-card-2-back:before{content:"\f2d8"}.bi-credit-card-2-front-fill:before{content:"\f2d9"}.bi-credit-card-2-front:before{content:"\f2da"}.bi-credit-card-fill:before{content:"\f2db"}.bi-credit-card:before{content:"\f2dc"}.bi-crop:before{content:"\f2dd"}.bi-cup-fill:before{content:"\f2de"}.bi-cup-straw:before{content:"\f2df"}.bi-cup:before{content:"\f2e0"}.bi-cursor-fill:before{content:"\f2e1"}.bi-cursor-text:before{content:"\f2e2"}.bi-cursor:before{content:"\f2e3"}.bi-dash-circle-dotted:before{content:"\f2e4"}.bi-dash-circle-fill:before{content:"\f2e5"}.bi-dash-circle:before{content:"\f2e6"}.bi-dash-square-dotted:before{content:"\f2e7"}.bi-dash-square-fill:before{content:"\f2e8"}.bi-dash-square:before{content:"\f2e9"}.bi-dash:before{content:"\f2ea"}.bi-diagram-2-fill:before{content:"\f2eb"}.bi-diagram-2:before{content:"\f2ec"}.bi-diagram-3-fill:before{content:"\f2ed"}.bi-diagram-3:before{content:"\f2ee"}.bi-diamond-fill:before{content:"\f2ef"}.bi-diamond-half:before{content:"\f2f0"}.bi-diamond:before{content:"\f2f1"}.bi-dice-1-fill:before{content:"\f2f2"}.bi-dice-1:before{content:"\f2f3"}.bi-dice-2-fill:before{content:"\f2f4"}.bi-dice-2:before{content:"\f2f5"}.bi-dice-3-fill:before{content:"\f2f6"}.bi-dice-3:before{content:"\f2f7"}.bi-dice-4-fill:before{content:"\f2f8"}.bi-dice-4:before{content:"\f2f9"}.bi-dice-5-fill:before{content:"\f2fa"}.bi-dice-5:before{content:"\f2fb"}.bi-dice-6-fill:before{content:"\f2fc"}.bi-dice-6:before{content:"\f2fd"}.bi-disc-fill:before{content:"\f2fe"}.bi-disc:before{content:"\f2ff"}.bi-discord:before{content:"\f300"}.bi-display-fill:before{content:"\f301"}.bi-display:before{content:"\f302"}.bi-distribute-horizontal:before{content:"\f303"}.bi-distribute-vertical:before{content:"\f304"}.bi-door-closed-fill:before{content:"\f305"}.bi-door-closed:before{content:"\f306"}.bi-door-open-fill:before{content:"\f307"}.bi-door-open:before{content:"\f308"}.bi-dot:before{content:"\f309"}.bi-download:before{content:"\f30a"}.bi-droplet-fill:before{content:"\f30b"}.bi-droplet-half:before{content:"\f30c"}.bi-droplet:before{content:"\f30d"}.bi-earbuds:before{content:"\f30e"}.bi-easel-fill:before{content:"\f30f"}.bi-easel:before{content:"\f310"}.bi-egg-fill:before{content:"\f311"}.bi-egg-fried:before{content:"\f312"}.bi-egg:before{content:"\f313"}.bi-eject-fill:before{content:"\f314"}.bi-eject:before{content:"\f315"}.bi-emoji-angry-fill:before{content:"\f316"}.bi-emoji-angry:before{content:"\f317"}.bi-emoji-dizzy-fill:before{content:"\f318"}.bi-emoji-dizzy:before{content:"\f319"}.bi-emoji-expressionless-fill:before{content:"\f31a"}.bi-emoji-expressionless:before{content:"\f31b"}.bi-emoji-frown-fill:before{content:"\f31c"}.bi-emoji-frown:before{content:"\f31d"}.bi-emoji-heart-eyes-fill:before{content:"\f31e"}.bi-emoji-heart-eyes:before{content:"\f31f"}.bi-emoji-laughing-fill:before{content:"\f320"}.bi-emoji-laughing:before{content:"\f321"}.bi-emoji-neutral-fill:before{content:"\f322"}.bi-emoji-neutral:before{content:"\f323"}.bi-emoji-smile-fill:before{content:"\f324"}.bi-emoji-smile-upside-down-fill:before{content:"\f325"}.bi-emoji-smile-upside-down:before{content:"\f326"}.bi-emoji-smile:before{content:"\f327"}.bi-emoji-sunglasses-fill:before{content:"\f328"}.bi-emoji-sunglasses:before{content:"\f329"}.bi-emoji-wink-fill:before{content:"\f32a"}.bi-emoji-wink:before{content:"\f32b"}.bi-envelope-fill:before{content:"\f32c"}.bi-envelope-open-fill:before{content:"\f32d"}.bi-envelope-open:before{content:"\f32e"}.bi-envelope:before{content:"\f32f"}.bi-eraser-fill:before{content:"\f330"}.bi-eraser:before{content:"\f331"}.bi-exclamation-circle-fill:before{content:"\f332"}.bi-exclamation-circle:before{content:"\f333"}.bi-exclamation-diamond-fill:before{content:"\f334"}.bi-exclamation-diamond:before{content:"\f335"}.bi-exclamation-octagon-fill:before{content:"\f336"}.bi-exclamation-octagon:before{content:"\f337"}.bi-exclamation-square-fill:before{content:"\f338"}.bi-exclamation-square:before{content:"\f339"}.bi-exclamation-triangle-fill:before{content:"\f33a"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-exclamation:before{content:"\f33c"}.bi-exclude:before{content:"\f33d"}.bi-eye-fill:before{content:"\f33e"}.bi-eye-slash-fill:before{content:"\f33f"}.bi-eye-slash:before{content:"\f340"}.bi-eye:before{content:"\f341"}.bi-eyedropper:before{content:"\f342"}.bi-eyeglasses:before{content:"\f343"}.bi-facebook:before{content:"\f344"}.bi-file-arrow-down-fill:before{content:"\f345"}.bi-file-arrow-down:before{content:"\f346"}.bi-file-arrow-up-fill:before{content:"\f347"}.bi-file-arrow-up:before{content:"\f348"}.bi-file-bar-graph-fill:before{content:"\f349"}.bi-file-bar-graph:before{content:"\f34a"}.bi-file-binary-fill:before{content:"\f34b"}.bi-file-binary:before{content:"\f34c"}.bi-file-break-fill:before{content:"\f34d"}.bi-file-break:before{content:"\f34e"}.bi-file-check-fill:before{content:"\f34f"}.bi-file-check:before{content:"\f350"}.bi-file-code-fill:before{content:"\f351"}.bi-file-code:before{content:"\f352"}.bi-file-diff-fill:before{content:"\f353"}.bi-file-diff:before{content:"\f354"}.bi-file-earmark-arrow-down-fill:before{content:"\f355"}.bi-file-earmark-arrow-down:before{content:"\f356"}.bi-file-earmark-arrow-up-fill:before{content:"\f357"}.bi-file-earmark-arrow-up:before{content:"\f358"}.bi-file-earmark-bar-graph-fill:before{content:"\f359"}.bi-file-earmark-bar-graph:before{content:"\f35a"}.bi-file-earmark-binary-fill:before{content:"\f35b"}.bi-file-earmark-binary:before{content:"\f35c"}.bi-file-earmark-break-fill:before{content:"\f35d"}.bi-file-earmark-break:before{content:"\f35e"}.bi-file-earmark-check-fill:before{content:"\f35f"}.bi-file-earmark-check:before{content:"\f360"}.bi-file-earmark-code-fill:before{content:"\f361"}.bi-file-earmark-code:before{content:"\f362"}.bi-file-earmark-diff-fill:before{content:"\f363"}.bi-file-earmark-diff:before{content:"\f364"}.bi-file-earmark-easel-fill:before{content:"\f365"}.bi-file-earmark-easel:before{content:"\f366"}.bi-file-earmark-excel-fill:before{content:"\f367"}.bi-file-earmark-excel:before{content:"\f368"}.bi-file-earmark-fill:before{content:"\f369"}.bi-file-earmark-font-fill:before{content:"\f36a"}.bi-file-earmark-font:before{content:"\f36b"}.bi-file-earmark-image-fill:before{content:"\f36c"}.bi-file-earmark-image:before{content:"\f36d"}.bi-file-earmark-lock-fill:before{content:"\f36e"}.bi-file-earmark-lock:before{content:"\f36f"}.bi-file-earmark-lock2-fill:before{content:"\f370"}.bi-file-earmark-lock2:before{content:"\f371"}.bi-file-earmark-medical-fill:before{content:"\f372"}.bi-file-earmark-medical:before{content:"\f373"}.bi-file-earmark-minus-fill:before{content:"\f374"}.bi-file-earmark-minus:before{content:"\f375"}.bi-file-earmark-music-fill:before{content:"\f376"}.bi-file-earmark-music:before{content:"\f377"}.bi-file-earmark-person-fill:before{content:"\f378"}.bi-file-earmark-person:before{content:"\f379"}.bi-file-earmark-play-fill:before{content:"\f37a"}.bi-file-earmark-play:before{content:"\f37b"}.bi-file-earmark-plus-fill:before{content:"\f37c"}.bi-file-earmark-plus:before{content:"\f37d"}.bi-file-earmark-post-fill:before{content:"\f37e"}.bi-file-earmark-post:before{content:"\f37f"}.bi-file-earmark-ppt-fill:before{content:"\f380"}.bi-file-earmark-ppt:before{content:"\f381"}.bi-file-earmark-richtext-fill:before{content:"\f382"}.bi-file-earmark-richtext:before{content:"\f383"}.bi-file-earmark-ruled-fill:before{content:"\f384"}.bi-file-earmark-ruled:before{content:"\f385"}.bi-file-earmark-slides-fill:before{content:"\f386"}.bi-file-earmark-slides:before{content:"\f387"}.bi-file-earmark-spreadsheet-fill:before{content:"\f388"}.bi-file-earmark-spreadsheet:before{content:"\f389"}.bi-file-earmark-text-fill:before{content:"\f38a"}.bi-file-earmark-text:before{content:"\f38b"}.bi-file-earmark-word-fill:before{content:"\f38c"}.bi-file-earmark-word:before{content:"\f38d"}.bi-file-earmark-x-fill:before{content:"\f38e"}.bi-file-earmark-x:before{content:"\f38f"}.bi-file-earmark-zip-fill:before{content:"\f390"}.bi-file-earmark-zip:before{content:"\f391"}.bi-file-earmark:before{content:"\f392"}.bi-file-easel-fill:before{content:"\f393"}.bi-file-easel:before{content:"\f394"}.bi-file-excel-fill:before{content:"\f395"}.bi-file-excel:before{content:"\f396"}.bi-file-fill:before{content:"\f397"}.bi-file-font-fill:before{content:"\f398"}.bi-file-font:before{content:"\f399"}.bi-file-image-fill:before{content:"\f39a"}.bi-file-image:before{content:"\f39b"}.bi-file-lock-fill:before{content:"\f39c"}.bi-file-lock:before{content:"\f39d"}.bi-file-lock2-fill:before{content:"\f39e"}.bi-file-lock2:before{content:"\f39f"}.bi-file-medical-fill:before{content:"\f3a0"}.bi-file-medical:before{content:"\f3a1"}.bi-file-minus-fill:before{content:"\f3a2"}.bi-file-minus:before{content:"\f3a3"}.bi-file-music-fill:before{content:"\f3a4"}.bi-file-music:before{content:"\f3a5"}.bi-file-person-fill:before{content:"\f3a6"}.bi-file-person:before{content:"\f3a7"}.bi-file-play-fill:before{content:"\f3a8"}.bi-file-play:before{content:"\f3a9"}.bi-file-plus-fill:before{content:"\f3aa"}.bi-file-plus:before{content:"\f3ab"}.bi-file-post-fill:before{content:"\f3ac"}.bi-file-post:before{content:"\f3ad"}.bi-file-ppt-fill:before{content:"\f3ae"}.bi-file-ppt:before{content:"\f3af"}.bi-file-richtext-fill:before{content:"\f3b0"}.bi-file-richtext:before{content:"\f3b1"}.bi-file-ruled-fill:before{content:"\f3b2"}.bi-file-ruled:before{content:"\f3b3"}.bi-file-slides-fill:before{content:"\f3b4"}.bi-file-slides:before{content:"\f3b5"}.bi-file-spreadsheet-fill:before{content:"\f3b6"}.bi-file-spreadsheet:before{content:"\f3b7"}.bi-file-text-fill:before{content:"\f3b8"}.bi-file-text:before{content:"\f3b9"}.bi-file-word-fill:before{content:"\f3ba"}.bi-file-word:before{content:"\f3bb"}.bi-file-x-fill:before{content:"\f3bc"}.bi-file-x:before{content:"\f3bd"}.bi-file-zip-fill:before{content:"\f3be"}.bi-file-zip:before{content:"\f3bf"}.bi-file:before{content:"\f3c0"}.bi-files-alt:before{content:"\f3c1"}.bi-files:before{content:"\f3c2"}.bi-film:before{content:"\f3c3"}.bi-filter-circle-fill:before{content:"\f3c4"}.bi-filter-circle:before{content:"\f3c5"}.bi-filter-left:before{content:"\f3c6"}.bi-filter-right:before{content:"\f3c7"}.bi-filter-square-fill:before{content:"\f3c8"}.bi-filter-square:before{content:"\f3c9"}.bi-filter:before{content:"\f3ca"}.bi-flag-fill:before{content:"\f3cb"}.bi-flag:before{content:"\f3cc"}.bi-flower1:before{content:"\f3cd"}.bi-flower2:before{content:"\f3ce"}.bi-flower3:before{content:"\f3cf"}.bi-folder-check:before{content:"\f3d0"}.bi-folder-fill:before{content:"\f3d1"}.bi-folder-minus:before{content:"\f3d2"}.bi-folder-plus:before{content:"\f3d3"}.bi-folder-symlink-fill:before{content:"\f3d4"}.bi-folder-symlink:before{content:"\f3d5"}.bi-folder-x:before{content:"\f3d6"}.bi-folder:before{content:"\f3d7"}.bi-folder2-open:before{content:"\f3d8"}.bi-folder2:before{content:"\f3d9"}.bi-fonts:before{content:"\f3da"}.bi-forward-fill:before{content:"\f3db"}.bi-forward:before{content:"\f3dc"}.bi-front:before{content:"\f3dd"}.bi-fullscreen-exit:before{content:"\f3de"}.bi-fullscreen:before{content:"\f3df"}.bi-funnel-fill:before{content:"\f3e0"}.bi-funnel:before{content:"\f3e1"}.bi-gear-fill:before{content:"\f3e2"}.bi-gear-wide-connected:before{content:"\f3e3"}.bi-gear-wide:before{content:"\f3e4"}.bi-gear:before{content:"\f3e5"}.bi-gem:before{content:"\f3e6"}.bi-geo-alt-fill:before{content:"\f3e7"}.bi-geo-alt:before{content:"\f3e8"}.bi-geo-fill:before{content:"\f3e9"}.bi-geo:before{content:"\f3ea"}.bi-gift-fill:before{content:"\f3eb"}.bi-gift:before{content:"\f3ec"}.bi-github:before{content:"\f3ed"}.bi-globe:before{content:"\f3ee"}.bi-globe2:before{content:"\f3ef"}.bi-google:before{content:"\f3f0"}.bi-graph-down:before{content:"\f3f1"}.bi-graph-up:before{content:"\f3f2"}.bi-grid-1x2-fill:before{content:"\f3f3"}.bi-grid-1x2:before{content:"\f3f4"}.bi-grid-3x2-gap-fill:before{content:"\f3f5"}.bi-grid-3x2-gap:before{content:"\f3f6"}.bi-grid-3x2:before{content:"\f3f7"}.bi-grid-3x3-gap-fill:before{content:"\f3f8"}.bi-grid-3x3-gap:before{content:"\f3f9"}.bi-grid-3x3:before{content:"\f3fa"}.bi-grid-fill:before{content:"\f3fb"}.bi-grid:before{content:"\f3fc"}.bi-grip-horizontal:before{content:"\f3fd"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-index-fill:before{content:"\f400"}.bi-hand-index-thumb-fill:before{content:"\f401"}.bi-hand-index-thumb:before{content:"\f402"}.bi-hand-index:before{content:"\f403"}.bi-hand-thumbs-down-fill:before{content:"\f404"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up-fill:before{content:"\f406"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-handbag-fill:before{content:"\f408"}.bi-handbag:before{content:"\f409"}.bi-hash:before{content:"\f40a"}.bi-hdd-fill:before{content:"\f40b"}.bi-hdd-network-fill:before{content:"\f40c"}.bi-hdd-network:before{content:"\f40d"}.bi-hdd-rack-fill:before{content:"\f40e"}.bi-hdd-rack:before{content:"\f40f"}.bi-hdd-stack-fill:before{content:"\f410"}.bi-hdd-stack:before{content:"\f411"}.bi-hdd:before{content:"\f412"}.bi-headphones:before{content:"\f413"}.bi-headset:before{content:"\f414"}.bi-heart-fill:before{content:"\f415"}.bi-heart-half:before{content:"\f416"}.bi-heart:before{content:"\f417"}.bi-heptagon-fill:before{content:"\f418"}.bi-heptagon-half:before{content:"\f419"}.bi-heptagon:before{content:"\f41a"}.bi-hexagon-fill:before{content:"\f41b"}.bi-hexagon-half:before{content:"\f41c"}.bi-hexagon:before{content:"\f41d"}.bi-hourglass-bottom:before{content:"\f41e"}.bi-hourglass-split:before{content:"\f41f"}.bi-hourglass-top:before{content:"\f420"}.bi-hourglass:before{content:"\f421"}.bi-house-door-fill:before{content:"\f422"}.bi-house-door:before{content:"\f423"}.bi-house-fill:before{content:"\f424"}.bi-house:before{content:"\f425"}.bi-hr:before{content:"\f426"}.bi-hurricane:before{content:"\f427"}.bi-image-alt:before{content:"\f428"}.bi-image-fill:before{content:"\f429"}.bi-image:before{content:"\f42a"}.bi-images:before{content:"\f42b"}.bi-inbox-fill:before{content:"\f42c"}.bi-inbox:before{content:"\f42d"}.bi-inboxes-fill:before{content:"\f42e"}.bi-inboxes:before{content:"\f42f"}.bi-info-circle-fill:before{content:"\f430"}.bi-info-circle:before{content:"\f431"}.bi-info-square-fill:before{content:"\f432"}.bi-info-square:before{content:"\f433"}.bi-info:before{content:"\f434"}.bi-input-cursor-text:before{content:"\f435"}.bi-input-cursor:before{content:"\f436"}.bi-instagram:before{content:"\f437"}.bi-intersect:before{content:"\f438"}.bi-journal-album:before{content:"\f439"}.bi-journal-arrow-down:before{content:"\f43a"}.bi-journal-arrow-up:before{content:"\f43b"}.bi-journal-bookmark-fill:before{content:"\f43c"}.bi-journal-bookmark:before{content:"\f43d"}.bi-journal-check:before{content:"\f43e"}.bi-journal-code:before{content:"\f43f"}.bi-journal-medical:before{content:"\f440"}.bi-journal-minus:before{content:"\f441"}.bi-journal-plus:before{content:"\f442"}.bi-journal-richtext:before{content:"\f443"}.bi-journal-text:before{content:"\f444"}.bi-journal-x:before{content:"\f445"}.bi-journal:before{content:"\f446"}.bi-journals:before{content:"\f447"}.bi-joystick:before{content:"\f448"}.bi-justify-left:before{content:"\f449"}.bi-justify-right:before{content:"\f44a"}.bi-justify:before{content:"\f44b"}.bi-kanban-fill:before{content:"\f44c"}.bi-kanban:before{content:"\f44d"}.bi-key-fill:before{content:"\f44e"}.bi-key:before{content:"\f44f"}.bi-keyboard-fill:before{content:"\f450"}.bi-keyboard:before{content:"\f451"}.bi-ladder:before{content:"\f452"}.bi-lamp-fill:before{content:"\f453"}.bi-lamp:before{content:"\f454"}.bi-laptop-fill:before{content:"\f455"}.bi-laptop:before{content:"\f456"}.bi-layer-backward:before{content:"\f457"}.bi-layer-forward:before{content:"\f458"}.bi-layers-fill:before{content:"\f459"}.bi-layers-half:before{content:"\f45a"}.bi-layers:before{content:"\f45b"}.bi-layout-sidebar-inset-reverse:before{content:"\f45c"}.bi-layout-sidebar-inset:before{content:"\f45d"}.bi-layout-sidebar-reverse:before{content:"\f45e"}.bi-layout-sidebar:before{content:"\f45f"}.bi-layout-split:before{content:"\f460"}.bi-layout-text-sidebar-reverse:before{content:"\f461"}.bi-layout-text-sidebar:before{content:"\f462"}.bi-layout-text-window-reverse:before{content:"\f463"}.bi-layout-text-window:before{content:"\f464"}.bi-layout-three-columns:before{content:"\f465"}.bi-layout-wtf:before{content:"\f466"}.bi-life-preserver:before{content:"\f467"}.bi-lightbulb-fill:before{content:"\f468"}.bi-lightbulb-off-fill:before{content:"\f469"}.bi-lightbulb-off:before{content:"\f46a"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning-charge-fill:before{content:"\f46c"}.bi-lightning-charge:before{content:"\f46d"}.bi-lightning-fill:before{content:"\f46e"}.bi-lightning:before{content:"\f46f"}.bi-link-45deg:before{content:"\f470"}.bi-link:before{content:"\f471"}.bi-linkedin:before{content:"\f472"}.bi-list-check:before{content:"\f473"}.bi-list-nested:before{content:"\f474"}.bi-list-ol:before{content:"\f475"}.bi-list-stars:before{content:"\f476"}.bi-list-task:before{content:"\f477"}.bi-list-ul:before{content:"\f478"}.bi-list:before{content:"\f479"}.bi-lock-fill:before{content:"\f47a"}.bi-lock:before{content:"\f47b"}.bi-mailbox:before{content:"\f47c"}.bi-mailbox2:before{content:"\f47d"}.bi-map-fill:before{content:"\f47e"}.bi-map:before{content:"\f47f"}.bi-markdown-fill:before{content:"\f480"}.bi-markdown:before{content:"\f481"}.bi-mask:before{content:"\f482"}.bi-megaphone-fill:before{content:"\f483"}.bi-megaphone:before{content:"\f484"}.bi-menu-app-fill:before{content:"\f485"}.bi-menu-app:before{content:"\f486"}.bi-menu-button-fill:before{content:"\f487"}.bi-menu-button-wide-fill:before{content:"\f488"}.bi-menu-button-wide:before{content:"\f489"}.bi-menu-button:before{content:"\f48a"}.bi-menu-down:before{content:"\f48b"}.bi-menu-up:before{content:"\f48c"}.bi-mic-fill:before{content:"\f48d"}.bi-mic-mute-fill:before{content:"\f48e"}.bi-mic-mute:before{content:"\f48f"}.bi-mic:before{content:"\f490"}.bi-minecart-loaded:before{content:"\f491"}.bi-minecart:before{content:"\f492"}.bi-moisture:before{content:"\f493"}.bi-moon-fill:before{content:"\f494"}.bi-moon-stars-fill:before{content:"\f495"}.bi-moon-stars:before{content:"\f496"}.bi-moon:before{content:"\f497"}.bi-mouse-fill:before{content:"\f498"}.bi-mouse:before{content:"\f499"}.bi-mouse2-fill:before{content:"\f49a"}.bi-mouse2:before{content:"\f49b"}.bi-mouse3-fill:before{content:"\f49c"}.bi-mouse3:before{content:"\f49d"}.bi-music-note-beamed:before{content:"\f49e"}.bi-music-note-list:before{content:"\f49f"}.bi-music-note:before{content:"\f4a0"}.bi-music-player-fill:before{content:"\f4a1"}.bi-music-player:before{content:"\f4a2"}.bi-newspaper:before{content:"\f4a3"}.bi-node-minus-fill:before{content:"\f4a4"}.bi-node-minus:before{content:"\f4a5"}.bi-node-plus-fill:before{content:"\f4a6"}.bi-node-plus:before{content:"\f4a7"}.bi-nut-fill:before{content:"\f4a8"}.bi-nut:before{content:"\f4a9"}.bi-octagon-fill:before{content:"\f4aa"}.bi-octagon-half:before{content:"\f4ab"}.bi-octagon:before{content:"\f4ac"}.bi-option:before{content:"\f4ad"}.bi-outlet:before{content:"\f4ae"}.bi-paint-bucket:before{content:"\f4af"}.bi-palette-fill:before{content:"\f4b0"}.bi-palette:before{content:"\f4b1"}.bi-palette2:before{content:"\f4b2"}.bi-paperclip:before{content:"\f4b3"}.bi-paragraph:before{content:"\f4b4"}.bi-patch-check-fill:before{content:"\f4b5"}.bi-patch-check:before{content:"\f4b6"}.bi-patch-exclamation-fill:before{content:"\f4b7"}.bi-patch-exclamation:before{content:"\f4b8"}.bi-patch-minus-fill:before{content:"\f4b9"}.bi-patch-minus:before{content:"\f4ba"}.bi-patch-plus-fill:before{content:"\f4bb"}.bi-patch-plus:before{content:"\f4bc"}.bi-patch-question-fill:before{content:"\f4bd"}.bi-patch-question:before{content:"\f4be"}.bi-pause-btn-fill:before{content:"\f4bf"}.bi-pause-btn:before{content:"\f4c0"}.bi-pause-circle-fill:before{content:"\f4c1"}.bi-pause-circle:before{content:"\f4c2"}.bi-pause-fill:before{content:"\f4c3"}.bi-pause:before{content:"\f4c4"}.bi-peace-fill:before{content:"\f4c5"}.bi-peace:before{content:"\f4c6"}.bi-pen-fill:before{content:"\f4c7"}.bi-pen:before{content:"\f4c8"}.bi-pencil-fill:before{content:"\f4c9"}.bi-pencil-square:before{content:"\f4ca"}.bi-pencil:before{content:"\f4cb"}.bi-pentagon-fill:before{content:"\f4cc"}.bi-pentagon-half:before{content:"\f4cd"}.bi-pentagon:before{content:"\f4ce"}.bi-people-fill:before{content:"\f4cf"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person-badge-fill:before{content:"\f4d2"}.bi-person-badge:before{content:"\f4d3"}.bi-person-bounding-box:before{content:"\f4d4"}.bi-person-check-fill:before{content:"\f4d5"}.bi-person-check:before{content:"\f4d6"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash-fill:before{content:"\f4d8"}.bi-person-dash:before{content:"\f4d9"}.bi-person-fill:before{content:"\f4da"}.bi-person-lines-fill:before{content:"\f4db"}.bi-person-plus-fill:before{content:"\f4dc"}.bi-person-plus:before{content:"\f4dd"}.bi-person-square:before{content:"\f4de"}.bi-person-x-fill:before{content:"\f4df"}.bi-person-x:before{content:"\f4e0"}.bi-person:before{content:"\f4e1"}.bi-phone-fill:before{content:"\f4e2"}.bi-phone-landscape-fill:before{content:"\f4e3"}.bi-phone-landscape:before{content:"\f4e4"}.bi-phone-vibrate-fill:before{content:"\f4e5"}.bi-phone-vibrate:before{content:"\f4e6"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart-fill:before{content:"\f4e8"}.bi-pie-chart:before{content:"\f4e9"}.bi-pin-angle-fill:before{content:"\f4ea"}.bi-pin-angle:before{content:"\f4eb"}.bi-pin-fill:before{content:"\f4ec"}.bi-pin:before{content:"\f4ed"}.bi-pip-fill:before{content:"\f4ee"}.bi-pip:before{content:"\f4ef"}.bi-play-btn-fill:before{content:"\f4f0"}.bi-play-btn:before{content:"\f4f1"}.bi-play-circle-fill:before{content:"\f4f2"}.bi-play-circle:before{content:"\f4f3"}.bi-play-fill:before{content:"\f4f4"}.bi-play:before{content:"\f4f5"}.bi-plug-fill:before{content:"\f4f6"}.bi-plug:before{content:"\f4f7"}.bi-plus-circle-dotted:before{content:"\f4f8"}.bi-plus-circle-fill:before{content:"\f4f9"}.bi-plus-circle:before{content:"\f4fa"}.bi-plus-square-dotted:before{content:"\f4fb"}.bi-plus-square-fill:before{content:"\f4fc"}.bi-plus-square:before{content:"\f4fd"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer-fill:before{content:"\f500"}.bi-printer:before{content:"\f501"}.bi-puzzle-fill:before{content:"\f502"}.bi-puzzle:before{content:"\f503"}.bi-question-circle-fill:before{content:"\f504"}.bi-question-circle:before{content:"\f505"}.bi-question-diamond-fill:before{content:"\f506"}.bi-question-diamond:before{content:"\f507"}.bi-question-octagon-fill:before{content:"\f508"}.bi-question-octagon:before{content:"\f509"}.bi-question-square-fill:before{content:"\f50a"}.bi-question-square:before{content:"\f50b"}.bi-question:before{content:"\f50c"}.bi-rainbow:before{content:"\f50d"}.bi-receipt-cutoff:before{content:"\f50e"}.bi-receipt:before{content:"\f50f"}.bi-reception-0:before{content:"\f510"}.bi-reception-1:before{content:"\f511"}.bi-reception-2:before{content:"\f512"}.bi-reception-3:before{content:"\f513"}.bi-reception-4:before{content:"\f514"}.bi-record-btn-fill:before{content:"\f515"}.bi-record-btn:before{content:"\f516"}.bi-record-circle-fill:before{content:"\f517"}.bi-record-circle:before{content:"\f518"}.bi-record-fill:before{content:"\f519"}.bi-record:before{content:"\f51a"}.bi-record2-fill:before{content:"\f51b"}.bi-record2:before{content:"\f51c"}.bi-reply-all-fill:before{content:"\f51d"}.bi-reply-all:before{content:"\f51e"}.bi-reply-fill:before{content:"\f51f"}.bi-reply:before{content:"\f520"}.bi-rss-fill:before{content:"\f521"}.bi-rss:before{content:"\f522"}.bi-rulers:before{content:"\f523"}.bi-save-fill:before{content:"\f524"}.bi-save:before{content:"\f525"}.bi-save2-fill:before{content:"\f526"}.bi-save2:before{content:"\f527"}.bi-scissors:before{content:"\f528"}.bi-screwdriver:before{content:"\f529"}.bi-search:before{content:"\f52a"}.bi-segmented-nav:before{content:"\f52b"}.bi-server:before{content:"\f52c"}.bi-share-fill:before{content:"\f52d"}.bi-share:before{content:"\f52e"}.bi-shield-check:before{content:"\f52f"}.bi-shield-exclamation:before{content:"\f530"}.bi-shield-fill-check:before{content:"\f531"}.bi-shield-fill-exclamation:before{content:"\f532"}.bi-shield-fill-minus:before{content:"\f533"}.bi-shield-fill-plus:before{content:"\f534"}.bi-shield-fill-x:before{content:"\f535"}.bi-shield-fill:before{content:"\f536"}.bi-shield-lock-fill:before{content:"\f537"}.bi-shield-lock:before{content:"\f538"}.bi-shield-minus:before{content:"\f539"}.bi-shield-plus:before{content:"\f53a"}.bi-shield-shaded:before{content:"\f53b"}.bi-shield-slash-fill:before{content:"\f53c"}.bi-shield-slash:before{content:"\f53d"}.bi-shield-x:before{content:"\f53e"}.bi-shield:before{content:"\f53f"}.bi-shift-fill:before{content:"\f540"}.bi-shift:before{content:"\f541"}.bi-shop-window:before{content:"\f542"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-2-fill:before{content:"\f545"}.bi-signpost-2:before{content:"\f546"}.bi-signpost-fill:before{content:"\f547"}.bi-signpost-split-fill:before{content:"\f548"}.bi-signpost-split:before{content:"\f549"}.bi-signpost:before{content:"\f54a"}.bi-sim-fill:before{content:"\f54b"}.bi-sim:before{content:"\f54c"}.bi-skip-backward-btn-fill:before{content:"\f54d"}.bi-skip-backward-btn:before{content:"\f54e"}.bi-skip-backward-circle-fill:before{content:"\f54f"}.bi-skip-backward-circle:before{content:"\f550"}.bi-skip-backward-fill:before{content:"\f551"}.bi-skip-backward:before{content:"\f552"}.bi-skip-end-btn-fill:before{content:"\f553"}.bi-skip-end-btn:before{content:"\f554"}.bi-skip-end-circle-fill:before{content:"\f555"}.bi-skip-end-circle:before{content:"\f556"}.bi-skip-end-fill:before{content:"\f557"}.bi-skip-end:before{content:"\f558"}.bi-skip-forward-btn-fill:before{content:"\f559"}.bi-skip-forward-btn:before{content:"\f55a"}.bi-skip-forward-circle-fill:before{content:"\f55b"}.bi-skip-forward-circle:before{content:"\f55c"}.bi-skip-forward-fill:before{content:"\f55d"}.bi-skip-forward:before{content:"\f55e"}.bi-skip-start-btn-fill:before{content:"\f55f"}.bi-skip-start-btn:before{content:"\f560"}.bi-skip-start-circle-fill:before{content:"\f561"}.bi-skip-start-circle:before{content:"\f562"}.bi-skip-start-fill:before{content:"\f563"}.bi-skip-start:before{content:"\f564"}.bi-slack:before{content:"\f565"}.bi-slash-circle-fill:before{content:"\f566"}.bi-slash-circle:before{content:"\f567"}.bi-slash-square-fill:before{content:"\f568"}.bi-slash-square:before{content:"\f569"}.bi-slash:before{content:"\f56a"}.bi-sliders:before{content:"\f56b"}.bi-smartwatch:before{content:"\f56c"}.bi-snow:before{content:"\f56d"}.bi-snow2:before{content:"\f56e"}.bi-snow3:before{content:"\f56f"}.bi-sort-alpha-down-alt:before{content:"\f570"}.bi-sort-alpha-down:before{content:"\f571"}.bi-sort-alpha-up-alt:before{content:"\f572"}.bi-sort-alpha-up:before{content:"\f573"}.bi-sort-down-alt:before{content:"\f574"}.bi-sort-down:before{content:"\f575"}.bi-sort-numeric-down-alt:before{content:"\f576"}.bi-sort-numeric-down:before{content:"\f577"}.bi-sort-numeric-up-alt:before{content:"\f578"}.bi-sort-numeric-up:before{content:"\f579"}.bi-sort-up-alt:before{content:"\f57a"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speaker-fill:before{content:"\f57d"}.bi-speaker:before{content:"\f57e"}.bi-speedometer:before{content:"\f57f"}.bi-speedometer2:before{content:"\f580"}.bi-spellcheck:before{content:"\f581"}.bi-square-fill:before{content:"\f582"}.bi-square-half:before{content:"\f583"}.bi-square:before{content:"\f584"}.bi-stack:before{content:"\f585"}.bi-star-fill:before{content:"\f586"}.bi-star-half:before{content:"\f587"}.bi-star:before{content:"\f588"}.bi-stars:before{content:"\f589"}.bi-stickies-fill:before{content:"\f58a"}.bi-stickies:before{content:"\f58b"}.bi-sticky-fill:before{content:"\f58c"}.bi-sticky:before{content:"\f58d"}.bi-stop-btn-fill:before{content:"\f58e"}.bi-stop-btn:before{content:"\f58f"}.bi-stop-circle-fill:before{content:"\f590"}.bi-stop-circle:before{content:"\f591"}.bi-stop-fill:before{content:"\f592"}.bi-stop:before{content:"\f593"}.bi-stoplights-fill:before{content:"\f594"}.bi-stoplights:before{content:"\f595"}.bi-stopwatch-fill:before{content:"\f596"}.bi-stopwatch:before{content:"\f597"}.bi-subtract:before{content:"\f598"}.bi-suit-club-fill:before{content:"\f599"}.bi-suit-club:before{content:"\f59a"}.bi-suit-diamond-fill:before{content:"\f59b"}.bi-suit-diamond:before{content:"\f59c"}.bi-suit-heart-fill:before{content:"\f59d"}.bi-suit-heart:before{content:"\f59e"}.bi-suit-spade-fill:before{content:"\f59f"}.bi-suit-spade:before{content:"\f5a0"}.bi-sun-fill:before{content:"\f5a1"}.bi-sun:before{content:"\f5a2"}.bi-sunglasses:before{content:"\f5a3"}.bi-sunrise-fill:before{content:"\f5a4"}.bi-sunrise:before{content:"\f5a5"}.bi-sunset-fill:before{content:"\f5a6"}.bi-sunset:before{content:"\f5a7"}.bi-symmetry-horizontal:before{content:"\f5a8"}.bi-symmetry-vertical:before{content:"\f5a9"}.bi-table:before{content:"\f5aa"}.bi-tablet-fill:before{content:"\f5ab"}.bi-tablet-landscape-fill:before{content:"\f5ac"}.bi-tablet-landscape:before{content:"\f5ad"}.bi-tablet:before{content:"\f5ae"}.bi-tag-fill:before{content:"\f5af"}.bi-tag:before{content:"\f5b0"}.bi-tags-fill:before{content:"\f5b1"}.bi-tags:before{content:"\f5b2"}.bi-telegram:before{content:"\f5b3"}.bi-telephone-fill:before{content:"\f5b4"}.bi-telephone-forward-fill:before{content:"\f5b5"}.bi-telephone-forward:before{content:"\f5b6"}.bi-telephone-inbound-fill:before{content:"\f5b7"}.bi-telephone-inbound:before{content:"\f5b8"}.bi-telephone-minus-fill:before{content:"\f5b9"}.bi-telephone-minus:before{content:"\f5ba"}.bi-telephone-outbound-fill:before{content:"\f5bb"}.bi-telephone-outbound:before{content:"\f5bc"}.bi-telephone-plus-fill:before{content:"\f5bd"}.bi-telephone-plus:before{content:"\f5be"}.bi-telephone-x-fill:before{content:"\f5bf"}.bi-telephone-x:before{content:"\f5c0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal-fill:before{content:"\f5c2"}.bi-terminal:before{content:"\f5c3"}.bi-text-center:before{content:"\f5c4"}.bi-text-indent-left:before{content:"\f5c5"}.bi-text-indent-right:before{content:"\f5c6"}.bi-text-left:before{content:"\f5c7"}.bi-text-paragraph:before{content:"\f5c8"}.bi-text-right:before{content:"\f5c9"}.bi-textarea-resize:before{content:"\f5ca"}.bi-textarea-t:before{content:"\f5cb"}.bi-textarea:before{content:"\f5cc"}.bi-thermometer-half:before{content:"\f5cd"}.bi-thermometer-high:before{content:"\f5ce"}.bi-thermometer-low:before{content:"\f5cf"}.bi-thermometer-snow:before{content:"\f5d0"}.bi-thermometer-sun:before{content:"\f5d1"}.bi-thermometer:before{content:"\f5d2"}.bi-three-dots-vertical:before{content:"\f5d3"}.bi-three-dots:before{content:"\f5d4"}.bi-toggle-off:before{content:"\f5d5"}.bi-toggle-on:before{content:"\f5d6"}.bi-toggle2-off:before{content:"\f5d7"}.bi-toggle2-on:before{content:"\f5d8"}.bi-toggles:before{content:"\f5d9"}.bi-toggles2:before{content:"\f5da"}.bi-tools:before{content:"\f5db"}.bi-tornado:before{content:"\f5dc"}.bi-trash-fill:before{content:"\f5dd"}.bi-trash:before{content:"\f5de"}.bi-trash2-fill:before{content:"\f5df"}.bi-trash2:before{content:"\f5e0"}.bi-tree-fill:before{content:"\f5e1"}.bi-tree:before{content:"\f5e2"}.bi-triangle-fill:before{content:"\f5e3"}.bi-triangle-half:before{content:"\f5e4"}.bi-triangle:before{content:"\f5e5"}.bi-trophy-fill:before{content:"\f5e6"}.bi-trophy:before{content:"\f5e7"}.bi-tropical-storm:before{content:"\f5e8"}.bi-truck-flatbed:before{content:"\f5e9"}.bi-truck:before{content:"\f5ea"}.bi-tsunami:before{content:"\f5eb"}.bi-tv-fill:before{content:"\f5ec"}.bi-tv:before{content:"\f5ed"}.bi-twitch:before{content:"\f5ee"}.bi-twitter:before{content:"\f5ef"}.bi-type-bold:before{content:"\f5f0"}.bi-type-h1:before{content:"\f5f1"}.bi-type-h2:before{content:"\f5f2"}.bi-type-h3:before{content:"\f5f3"}.bi-type-italic:before{content:"\f5f4"}.bi-type-strikethrough:before{content:"\f5f5"}.bi-type-underline:before{content:"\f5f6"}.bi-type:before{content:"\f5f7"}.bi-ui-checks-grid:before{content:"\f5f8"}.bi-ui-checks:before{content:"\f5f9"}.bi-ui-radios-grid:before{content:"\f5fa"}.bi-ui-radios:before{content:"\f5fb"}.bi-umbrella-fill:before{content:"\f5fc"}.bi-umbrella:before{content:"\f5fd"}.bi-union:before{content:"\f5fe"}.bi-unlock-fill:before{content:"\f5ff"}.bi-unlock:before{content:"\f600"}.bi-upc-scan:before{content:"\f601"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-vector-pen:before{content:"\f604"}.bi-view-list:before{content:"\f605"}.bi-view-stacked:before{content:"\f606"}.bi-vinyl-fill:before{content:"\f607"}.bi-vinyl:before{content:"\f608"}.bi-voicemail:before{content:"\f609"}.bi-volume-down-fill:before{content:"\f60a"}.bi-volume-down:before{content:"\f60b"}.bi-volume-mute-fill:before{content:"\f60c"}.bi-volume-mute:before{content:"\f60d"}.bi-volume-off-fill:before{content:"\f60e"}.bi-volume-off:before{content:"\f60f"}.bi-volume-up-fill:before{content:"\f610"}.bi-volume-up:before{content:"\f611"}.bi-vr:before{content:"\f612"}.bi-wallet-fill:before{content:"\f613"}.bi-wallet:before{content:"\f614"}.bi-wallet2:before{content:"\f615"}.bi-watch:before{content:"\f616"}.bi-water:before{content:"\f617"}.bi-whatsapp:before{content:"\f618"}.bi-wifi-1:before{content:"\f619"}.bi-wifi-2:before{content:"\f61a"}.bi-wifi-off:before{content:"\f61b"}.bi-wifi:before{content:"\f61c"}.bi-wind:before{content:"\f61d"}.bi-window-dock:before{content:"\f61e"}.bi-window-sidebar:before{content:"\f61f"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x-circle-fill:before{content:"\f622"}.bi-x-circle:before{content:"\f623"}.bi-x-diamond-fill:before{content:"\f624"}.bi-x-diamond:before{content:"\f625"}.bi-x-octagon-fill:before{content:"\f626"}.bi-x-octagon:before{content:"\f627"}.bi-x-square-fill:before{content:"\f628"}.bi-x-square:before{content:"\f629"}.bi-x:before{content:"\f62a"}.bi-youtube:before{content:"\f62b"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.bi-bank:before{content:"\f62e"}.bi-bank2:before{content:"\f62f"}.bi-bell-slash-fill:before{content:"\f630"}.bi-bell-slash:before{content:"\f631"}.bi-cash-coin:before{content:"\f632"}.bi-check-lg:before{content:"\f633"}.bi-coin:before{content:"\f634"}.bi-currency-bitcoin:before{content:"\f635"}.bi-currency-dollar:before{content:"\f636"}.bi-currency-euro:before{content:"\f637"}.bi-currency-exchange:before{content:"\f638"}.bi-currency-pound:before{content:"\f639"}.bi-currency-yen:before{content:"\f63a"}.bi-dash-lg:before{content:"\f63b"}.bi-exclamation-lg:before{content:"\f63c"}.bi-file-earmark-pdf-fill:before{content:"\f63d"}.bi-file-earmark-pdf:before{content:"\f63e"}.bi-file-pdf-fill:before{content:"\f63f"}.bi-file-pdf:before{content:"\f640"}.bi-gender-ambiguous:before{content:"\f641"}.bi-gender-female:before{content:"\f642"}.bi-gender-male:before{content:"\f643"}.bi-gender-trans:before{content:"\f644"}.bi-headset-vr:before{content:"\f645"}.bi-info-lg:before{content:"\f646"}.bi-mastodon:before{content:"\f647"}.bi-messenger:before{content:"\f648"}.bi-piggy-bank-fill:before{content:"\f649"}.bi-piggy-bank:before{content:"\f64a"}.bi-pin-map-fill:before{content:"\f64b"}.bi-pin-map:before{content:"\f64c"}.bi-plus-lg:before{content:"\f64d"}.bi-question-lg:before{content:"\f64e"}.bi-recycle:before{content:"\f64f"}.bi-reddit:before{content:"\f650"}.bi-safe-fill:before{content:"\f651"}.bi-safe2-fill:before{content:"\f652"}.bi-safe2:before{content:"\f653"}.bi-sd-card-fill:before{content:"\f654"}.bi-sd-card:before{content:"\f655"}.bi-skype:before{content:"\f656"}.bi-slash-lg:before{content:"\f657"}.bi-translate:before{content:"\f658"}.bi-x-lg:before{content:"\f659"}.bi-safe:before{content:"\f65a"}.bi-apple:before{content:"\f65b"}.bi-microsoft:before{content:"\f65d"}.bi-windows:before{content:"\f65e"}.bi-behance:before{content:"\f65c"}.bi-dribbble:before{content:"\f65f"}.bi-line:before{content:"\f660"}.bi-medium:before{content:"\f661"}.bi-paypal:before{content:"\f662"}.bi-pinterest:before{content:"\f663"}.bi-signal:before{content:"\f664"}.bi-snapchat:before{content:"\f665"}.bi-spotify:before{content:"\f666"}.bi-stack-overflow:before{content:"\f667"}.bi-strava:before{content:"\f668"}.bi-wordpress:before{content:"\f669"}.bi-vimeo:before{content:"\f66a"}.bi-activity:before{content:"\f66b"}.bi-easel2-fill:before{content:"\f66c"}.bi-easel2:before{content:"\f66d"}.bi-easel3-fill:before{content:"\f66e"}.bi-easel3:before{content:"\f66f"}.bi-fan:before{content:"\f670"}.bi-fingerprint:before{content:"\f671"}.bi-graph-down-arrow:before{content:"\f672"}.bi-graph-up-arrow:before{content:"\f673"}.bi-hypnotize:before{content:"\f674"}.bi-magic:before{content:"\f675"}.bi-person-rolodex:before{content:"\f676"}.bi-person-video:before{content:"\f677"}.bi-person-video2:before{content:"\f678"}.bi-person-video3:before{content:"\f679"}.bi-person-workspace:before{content:"\f67a"}.bi-radioactive:before{content:"\f67b"}.bi-webcam-fill:before{content:"\f67c"}.bi-webcam:before{content:"\f67d"}.bi-yin-yang:before{content:"\f67e"}.bi-bandaid-fill:before{content:"\f680"}.bi-bandaid:before{content:"\f681"}.bi-bluetooth:before{content:"\f682"}.bi-body-text:before{content:"\f683"}.bi-boombox:before{content:"\f684"}.bi-boxes:before{content:"\f685"}.bi-dpad-fill:before{content:"\f686"}.bi-dpad:before{content:"\f687"}.bi-ear-fill:before{content:"\f688"}.bi-ear:before{content:"\f689"}.bi-envelope-check-fill:before{content:"\f68b"}.bi-envelope-check:before{content:"\f68c"}.bi-envelope-dash-fill:before{content:"\f68e"}.bi-envelope-dash:before{content:"\f68f"}.bi-envelope-exclamation-fill:before{content:"\f691"}.bi-envelope-exclamation:before{content:"\f692"}.bi-envelope-plus-fill:before{content:"\f693"}.bi-envelope-plus:before{content:"\f694"}.bi-envelope-slash-fill:before{content:"\f696"}.bi-envelope-slash:before{content:"\f697"}.bi-envelope-x-fill:before{content:"\f699"}.bi-envelope-x:before{content:"\f69a"}.bi-explicit-fill:before{content:"\f69b"}.bi-explicit:before{content:"\f69c"}.bi-git:before{content:"\f69d"}.bi-infinity:before{content:"\f69e"}.bi-list-columns-reverse:before{content:"\f69f"}.bi-list-columns:before{content:"\f6a0"}.bi-meta:before{content:"\f6a1"}.bi-nintendo-switch:before{content:"\f6a4"}.bi-pc-display-horizontal:before{content:"\f6a5"}.bi-pc-display:before{content:"\f6a6"}.bi-pc-horizontal:before{content:"\f6a7"}.bi-pc:before{content:"\f6a8"}.bi-playstation:before{content:"\f6a9"}.bi-plus-slash-minus:before{content:"\f6aa"}.bi-projector-fill:before{content:"\f6ab"}.bi-projector:before{content:"\f6ac"}.bi-qr-code-scan:before{content:"\f6ad"}.bi-qr-code:before{content:"\f6ae"}.bi-quora:before{content:"\f6af"}.bi-quote:before{content:"\f6b0"}.bi-robot:before{content:"\f6b1"}.bi-send-check-fill:before{content:"\f6b2"}.bi-send-check:before{content:"\f6b3"}.bi-send-dash-fill:before{content:"\f6b4"}.bi-send-dash:before{content:"\f6b5"}.bi-send-exclamation-fill:before{content:"\f6b7"}.bi-send-exclamation:before{content:"\f6b8"}.bi-send-fill:before{content:"\f6b9"}.bi-send-plus-fill:before{content:"\f6ba"}.bi-send-plus:before{content:"\f6bb"}.bi-send-slash-fill:before{content:"\f6bc"}.bi-send-slash:before{content:"\f6bd"}.bi-send-x-fill:before{content:"\f6be"}.bi-send-x:before{content:"\f6bf"}.bi-send:before{content:"\f6c0"}.bi-steam:before{content:"\f6c1"}.bi-terminal-dash:before{content:"\f6c3"}.bi-terminal-plus:before{content:"\f6c4"}.bi-terminal-split:before{content:"\f6c5"}.bi-ticket-detailed-fill:before{content:"\f6c6"}.bi-ticket-detailed:before{content:"\f6c7"}.bi-ticket-fill:before{content:"\f6c8"}.bi-ticket-perforated-fill:before{content:"\f6c9"}.bi-ticket-perforated:before{content:"\f6ca"}.bi-ticket:before{content:"\f6cb"}.bi-tiktok:before{content:"\f6cc"}.bi-window-dash:before{content:"\f6cd"}.bi-window-desktop:before{content:"\f6ce"}.bi-window-fullscreen:before{content:"\f6cf"}.bi-window-plus:before{content:"\f6d0"}.bi-window-split:before{content:"\f6d1"}.bi-window-stack:before{content:"\f6d2"}.bi-window-x:before{content:"\f6d3"}.bi-xbox:before{content:"\f6d4"}.bi-ethernet:before{content:"\f6d5"}.bi-hdmi-fill:before{content:"\f6d6"}.bi-hdmi:before{content:"\f6d7"}.bi-usb-c-fill:before{content:"\f6d8"}.bi-usb-c:before{content:"\f6d9"}.bi-usb-fill:before{content:"\f6da"}.bi-usb-plug-fill:before{content:"\f6db"}.bi-usb-plug:before{content:"\f6dc"}.bi-usb-symbol:before{content:"\f6dd"}.bi-usb:before{content:"\f6de"}.bi-boombox-fill:before{content:"\f6df"}.bi-displayport:before{content:"\f6e1"}.bi-gpu-card:before{content:"\f6e2"}.bi-memory:before{content:"\f6e3"}.bi-modem-fill:before{content:"\f6e4"}.bi-modem:before{content:"\f6e5"}.bi-motherboard-fill:before{content:"\f6e6"}.bi-motherboard:before{content:"\f6e7"}.bi-optical-audio-fill:before{content:"\f6e8"}.bi-optical-audio:before{content:"\f6e9"}.bi-pci-card:before{content:"\f6ea"}.bi-router-fill:before{content:"\f6eb"}.bi-router:before{content:"\f6ec"}.bi-thunderbolt-fill:before{content:"\f6ef"}.bi-thunderbolt:before{content:"\f6f0"}.bi-usb-drive-fill:before{content:"\f6f1"}.bi-usb-drive:before{content:"\f6f2"}.bi-usb-micro-fill:before{content:"\f6f3"}.bi-usb-micro:before{content:"\f6f4"}.bi-usb-mini-fill:before{content:"\f6f5"}.bi-usb-mini:before{content:"\f6f6"}.bi-cloud-haze2:before{content:"\f6f7"}.bi-device-hdd-fill:before{content:"\f6f8"}.bi-device-hdd:before{content:"\f6f9"}.bi-device-ssd-fill:before{content:"\f6fa"}.bi-device-ssd:before{content:"\f6fb"}.bi-displayport-fill:before{content:"\f6fc"}.bi-mortarboard-fill:before{content:"\f6fd"}.bi-mortarboard:before{content:"\f6fe"}.bi-terminal-x:before{content:"\f6ff"}.bi-arrow-through-heart-fill:before{content:"\f700"}.bi-arrow-through-heart:before{content:"\f701"}.bi-badge-sd-fill:before{content:"\f702"}.bi-badge-sd:before{content:"\f703"}.bi-bag-heart-fill:before{content:"\f704"}.bi-bag-heart:before{content:"\f705"}.bi-balloon-fill:before{content:"\f706"}.bi-balloon-heart-fill:before{content:"\f707"}.bi-balloon-heart:before{content:"\f708"}.bi-balloon:before{content:"\f709"}.bi-box2-fill:before{content:"\f70a"}.bi-box2-heart-fill:before{content:"\f70b"}.bi-box2-heart:before{content:"\f70c"}.bi-box2:before{content:"\f70d"}.bi-braces-asterisk:before{content:"\f70e"}.bi-calendar-heart-fill:before{content:"\f70f"}.bi-calendar-heart:before{content:"\f710"}.bi-calendar2-heart-fill:before{content:"\f711"}.bi-calendar2-heart:before{content:"\f712"}.bi-chat-heart-fill:before{content:"\f713"}.bi-chat-heart:before{content:"\f714"}.bi-chat-left-heart-fill:before{content:"\f715"}.bi-chat-left-heart:before{content:"\f716"}.bi-chat-right-heart-fill:before{content:"\f717"}.bi-chat-right-heart:before{content:"\f718"}.bi-chat-square-heart-fill:before{content:"\f719"}.bi-chat-square-heart:before{content:"\f71a"}.bi-clipboard-check-fill:before{content:"\f71b"}.bi-clipboard-data-fill:before{content:"\f71c"}.bi-clipboard-fill:before{content:"\f71d"}.bi-clipboard-heart-fill:before{content:"\f71e"}.bi-clipboard-heart:before{content:"\f71f"}.bi-clipboard-minus-fill:before{content:"\f720"}.bi-clipboard-plus-fill:before{content:"\f721"}.bi-clipboard-pulse:before{content:"\f722"}.bi-clipboard-x-fill:before{content:"\f723"}.bi-clipboard2-check-fill:before{content:"\f724"}.bi-clipboard2-check:before{content:"\f725"}.bi-clipboard2-data-fill:before{content:"\f726"}.bi-clipboard2-data:before{content:"\f727"}.bi-clipboard2-fill:before{content:"\f728"}.bi-clipboard2-heart-fill:before{content:"\f729"}.bi-clipboard2-heart:before{content:"\f72a"}.bi-clipboard2-minus-fill:before{content:"\f72b"}.bi-clipboard2-minus:before{content:"\f72c"}.bi-clipboard2-plus-fill:before{content:"\f72d"}.bi-clipboard2-plus:before{content:"\f72e"}.bi-clipboard2-pulse-fill:before{content:"\f72f"}.bi-clipboard2-pulse:before{content:"\f730"}.bi-clipboard2-x-fill:before{content:"\f731"}.bi-clipboard2-x:before{content:"\f732"}.bi-clipboard2:before{content:"\f733"}.bi-emoji-kiss-fill:before{content:"\f734"}.bi-emoji-kiss:before{content:"\f735"}.bi-envelope-heart-fill:before{content:"\f736"}.bi-envelope-heart:before{content:"\f737"}.bi-envelope-open-heart-fill:before{content:"\f738"}.bi-envelope-open-heart:before{content:"\f739"}.bi-envelope-paper-fill:before{content:"\f73a"}.bi-envelope-paper-heart-fill:before{content:"\f73b"}.bi-envelope-paper-heart:before{content:"\f73c"}.bi-envelope-paper:before{content:"\f73d"}.bi-filetype-aac:before{content:"\f73e"}.bi-filetype-ai:before{content:"\f73f"}.bi-filetype-bmp:before{content:"\f740"}.bi-filetype-cs:before{content:"\f741"}.bi-filetype-css:before{content:"\f742"}.bi-filetype-csv:before{content:"\f743"}.bi-filetype-doc:before{content:"\f744"}.bi-filetype-docx:before{content:"\f745"}.bi-filetype-exe:before{content:"\f746"}.bi-filetype-gif:before{content:"\f747"}.bi-filetype-heic:before{content:"\f748"}.bi-filetype-html:before{content:"\f749"}.bi-filetype-java:before{content:"\f74a"}.bi-filetype-jpg:before{content:"\f74b"}.bi-filetype-js:before{content:"\f74c"}.bi-filetype-jsx:before{content:"\f74d"}.bi-filetype-key:before{content:"\f74e"}.bi-filetype-m4p:before{content:"\f74f"}.bi-filetype-md:before{content:"\f750"}.bi-filetype-mdx:before{content:"\f751"}.bi-filetype-mov:before{content:"\f752"}.bi-filetype-mp3:before{content:"\f753"}.bi-filetype-mp4:before{content:"\f754"}.bi-filetype-otf:before{content:"\f755"}.bi-filetype-pdf:before{content:"\f756"}.bi-filetype-php:before{content:"\f757"}.bi-filetype-png:before{content:"\f758"}.bi-filetype-ppt:before{content:"\f75a"}.bi-filetype-psd:before{content:"\f75b"}.bi-filetype-py:before{content:"\f75c"}.bi-filetype-raw:before{content:"\f75d"}.bi-filetype-rb:before{content:"\f75e"}.bi-filetype-sass:before{content:"\f75f"}.bi-filetype-scss:before{content:"\f760"}.bi-filetype-sh:before{content:"\f761"}.bi-filetype-svg:before{content:"\f762"}.bi-filetype-tiff:before{content:"\f763"}.bi-filetype-tsx:before{content:"\f764"}.bi-filetype-ttf:before{content:"\f765"}.bi-filetype-txt:before{content:"\f766"}.bi-filetype-wav:before{content:"\f767"}.bi-filetype-woff:before{content:"\f768"}.bi-filetype-xls:before{content:"\f76a"}.bi-filetype-xml:before{content:"\f76b"}.bi-filetype-yml:before{content:"\f76c"}.bi-heart-arrow:before{content:"\f76d"}.bi-heart-pulse-fill:before{content:"\f76e"}.bi-heart-pulse:before{content:"\f76f"}.bi-heartbreak-fill:before{content:"\f770"}.bi-heartbreak:before{content:"\f771"}.bi-hearts:before{content:"\f772"}.bi-hospital-fill:before{content:"\f773"}.bi-hospital:before{content:"\f774"}.bi-house-heart-fill:before{content:"\f775"}.bi-house-heart:before{content:"\f776"}.bi-incognito:before{content:"\f777"}.bi-magnet-fill:before{content:"\f778"}.bi-magnet:before{content:"\f779"}.bi-person-heart:before{content:"\f77a"}.bi-person-hearts:before{content:"\f77b"}.bi-phone-flip:before{content:"\f77c"}.bi-plugin:before{content:"\f77d"}.bi-postage-fill:before{content:"\f77e"}.bi-postage-heart-fill:before{content:"\f77f"}.bi-postage-heart:before{content:"\f780"}.bi-postage:before{content:"\f781"}.bi-postcard-fill:before{content:"\f782"}.bi-postcard-heart-fill:before{content:"\f783"}.bi-postcard-heart:before{content:"\f784"}.bi-postcard:before{content:"\f785"}.bi-search-heart-fill:before{content:"\f786"}.bi-search-heart:before{content:"\f787"}.bi-sliders2-vertical:before{content:"\f788"}.bi-sliders2:before{content:"\f789"}.bi-trash3-fill:before{content:"\f78a"}.bi-trash3:before{content:"\f78b"}.bi-valentine:before{content:"\f78c"}.bi-valentine2:before{content:"\f78d"}.bi-wrench-adjustable-circle-fill:before{content:"\f78e"}.bi-wrench-adjustable-circle:before{content:"\f78f"}.bi-wrench-adjustable:before{content:"\f790"}.bi-filetype-json:before{content:"\f791"}.bi-filetype-pptx:before{content:"\f792"}.bi-filetype-xlsx:before{content:"\f793"}.bi-1-circle-fill:before{content:"\f796"}.bi-1-circle:before{content:"\f797"}.bi-1-square-fill:before{content:"\f798"}.bi-1-square:before{content:"\f799"}.bi-2-circle-fill:before{content:"\f79c"}.bi-2-circle:before{content:"\f79d"}.bi-2-square-fill:before{content:"\f79e"}.bi-2-square:before{content:"\f79f"}.bi-3-circle-fill:before{content:"\f7a2"}.bi-3-circle:before{content:"\f7a3"}.bi-3-square-fill:before{content:"\f7a4"}.bi-3-square:before{content:"\f7a5"}.bi-4-circle-fill:before{content:"\f7a8"}.bi-4-circle:before{content:"\f7a9"}.bi-4-square-fill:before{content:"\f7aa"}.bi-4-square:before{content:"\f7ab"}.bi-5-circle-fill:before{content:"\f7ae"}.bi-5-circle:before{content:"\f7af"}.bi-5-square-fill:before{content:"\f7b0"}.bi-5-square:before{content:"\f7b1"}.bi-6-circle-fill:before{content:"\f7b4"}.bi-6-circle:before{content:"\f7b5"}.bi-6-square-fill:before{content:"\f7b6"}.bi-6-square:before{content:"\f7b7"}.bi-7-circle-fill:before{content:"\f7ba"}.bi-7-circle:before{content:"\f7bb"}.bi-7-square-fill:before{content:"\f7bc"}.bi-7-square:before{content:"\f7bd"}.bi-8-circle-fill:before{content:"\f7c0"}.bi-8-circle:before{content:"\f7c1"}.bi-8-square-fill:before{content:"\f7c2"}.bi-8-square:before{content:"\f7c3"}.bi-9-circle-fill:before{content:"\f7c6"}.bi-9-circle:before{content:"\f7c7"}.bi-9-square-fill:before{content:"\f7c8"}.bi-9-square:before{content:"\f7c9"}.bi-airplane-engines-fill:before{content:"\f7ca"}.bi-airplane-engines:before{content:"\f7cb"}.bi-airplane-fill:before{content:"\f7cc"}.bi-airplane:before{content:"\f7cd"}.bi-alexa:before{content:"\f7ce"}.bi-alipay:before{content:"\f7cf"}.bi-android:before{content:"\f7d0"}.bi-android2:before{content:"\f7d1"}.bi-box-fill:before{content:"\f7d2"}.bi-box-seam-fill:before{content:"\f7d3"}.bi-browser-chrome:before{content:"\f7d4"}.bi-browser-edge:before{content:"\f7d5"}.bi-browser-firefox:before{content:"\f7d6"}.bi-browser-safari:before{content:"\f7d7"}.bi-c-circle-fill:before{content:"\f7da"}.bi-c-circle:before{content:"\f7db"}.bi-c-square-fill:before{content:"\f7dc"}.bi-c-square:before{content:"\f7dd"}.bi-capsule-pill:before{content:"\f7de"}.bi-capsule:before{content:"\f7df"}.bi-car-front-fill:before{content:"\f7e0"}.bi-car-front:before{content:"\f7e1"}.bi-cassette-fill:before{content:"\f7e2"}.bi-cassette:before{content:"\f7e3"}.bi-cc-circle-fill:before{content:"\f7e6"}.bi-cc-circle:before{content:"\f7e7"}.bi-cc-square-fill:before{content:"\f7e8"}.bi-cc-square:before{content:"\f7e9"}.bi-cup-hot-fill:before{content:"\f7ea"}.bi-cup-hot:before{content:"\f7eb"}.bi-currency-rupee:before{content:"\f7ec"}.bi-dropbox:before{content:"\f7ed"}.bi-escape:before{content:"\f7ee"}.bi-fast-forward-btn-fill:before{content:"\f7ef"}.bi-fast-forward-btn:before{content:"\f7f0"}.bi-fast-forward-circle-fill:before{content:"\f7f1"}.bi-fast-forward-circle:before{content:"\f7f2"}.bi-fast-forward-fill:before{content:"\f7f3"}.bi-fast-forward:before{content:"\f7f4"}.bi-filetype-sql:before{content:"\f7f5"}.bi-fire:before{content:"\f7f6"}.bi-google-play:before{content:"\f7f7"}.bi-h-circle-fill:before{content:"\f7fa"}.bi-h-circle:before{content:"\f7fb"}.bi-h-square-fill:before{content:"\f7fc"}.bi-h-square:before{content:"\f7fd"}.bi-indent:before{content:"\f7fe"}.bi-lungs-fill:before{content:"\f7ff"}.bi-lungs:before{content:"\f800"}.bi-microsoft-teams:before{content:"\f801"}.bi-p-circle-fill:before{content:"\f804"}.bi-p-circle:before{content:"\f805"}.bi-p-square-fill:before{content:"\f806"}.bi-p-square:before{content:"\f807"}.bi-pass-fill:before{content:"\f808"}.bi-pass:before{content:"\f809"}.bi-prescription:before{content:"\f80a"}.bi-prescription2:before{content:"\f80b"}.bi-r-circle-fill:before{content:"\f80e"}.bi-r-circle:before{content:"\f80f"}.bi-r-square-fill:before{content:"\f810"}.bi-r-square:before{content:"\f811"}.bi-repeat-1:before{content:"\f812"}.bi-repeat:before{content:"\f813"}.bi-rewind-btn-fill:before{content:"\f814"}.bi-rewind-btn:before{content:"\f815"}.bi-rewind-circle-fill:before{content:"\f816"}.bi-rewind-circle:before{content:"\f817"}.bi-rewind-fill:before{content:"\f818"}.bi-rewind:before{content:"\f819"}.bi-train-freight-front-fill:before{content:"\f81a"}.bi-train-freight-front:before{content:"\f81b"}.bi-train-front-fill:before{content:"\f81c"}.bi-train-front:before{content:"\f81d"}.bi-train-lightrail-front-fill:before{content:"\f81e"}.bi-train-lightrail-front:before{content:"\f81f"}.bi-truck-front-fill:before{content:"\f820"}.bi-truck-front:before{content:"\f821"}.bi-ubuntu:before{content:"\f822"}.bi-unindent:before{content:"\f823"}.bi-unity:before{content:"\f824"}.bi-universal-access-circle:before{content:"\f825"}.bi-universal-access:before{content:"\f826"}.bi-virus:before{content:"\f827"}.bi-virus2:before{content:"\f828"}.bi-wechat:before{content:"\f829"}.bi-yelp:before{content:"\f82a"}.bi-sign-stop-fill:before{content:"\f82b"}.bi-sign-stop-lights-fill:before{content:"\f82c"}.bi-sign-stop-lights:before{content:"\f82d"}.bi-sign-stop:before{content:"\f82e"}.bi-sign-turn-left-fill:before{content:"\f82f"}.bi-sign-turn-left:before{content:"\f830"}.bi-sign-turn-right-fill:before{content:"\f831"}.bi-sign-turn-right:before{content:"\f832"}.bi-sign-turn-slight-left-fill:before{content:"\f833"}.bi-sign-turn-slight-left:before{content:"\f834"}.bi-sign-turn-slight-right-fill:before{content:"\f835"}.bi-sign-turn-slight-right:before{content:"\f836"}.bi-sign-yield-fill:before{content:"\f837"}.bi-sign-yield:before{content:"\f838"}.bi-ev-station-fill:before{content:"\f839"}.bi-ev-station:before{content:"\f83a"}.bi-fuel-pump-diesel-fill:before{content:"\f83b"}.bi-fuel-pump-diesel:before{content:"\f83c"}.bi-fuel-pump-fill:before{content:"\f83d"}.bi-fuel-pump:before{content:"\f83e"}.bi-0-circle-fill:before{content:"\f83f"}.bi-0-circle:before{content:"\f840"}.bi-0-square-fill:before{content:"\f841"}.bi-0-square:before{content:"\f842"}.bi-rocket-fill:before{content:"\f843"}.bi-rocket-takeoff-fill:before{content:"\f844"}.bi-rocket-takeoff:before{content:"\f845"}.bi-rocket:before{content:"\f846"}.bi-stripe:before{content:"\f847"}.bi-subscript:before{content:"\f848"}.bi-superscript:before{content:"\f849"}.bi-trello:before{content:"\f84a"}.bi-envelope-at-fill:before{content:"\f84b"}.bi-envelope-at:before{content:"\f84c"}.bi-regex:before{content:"\f84d"}.bi-text-wrap:before{content:"\f84e"}.bi-sign-dead-end-fill:before{content:"\f84f"}.bi-sign-dead-end:before{content:"\f850"}.bi-sign-do-not-enter-fill:before{content:"\f851"}.bi-sign-do-not-enter:before{content:"\f852"}.bi-sign-intersection-fill:before{content:"\f853"}.bi-sign-intersection-side-fill:before{content:"\f854"}.bi-sign-intersection-side:before{content:"\f855"}.bi-sign-intersection-t-fill:before{content:"\f856"}.bi-sign-intersection-t:before{content:"\f857"}.bi-sign-intersection-y-fill:before{content:"\f858"}.bi-sign-intersection-y:before{content:"\f859"}.bi-sign-intersection:before{content:"\f85a"}.bi-sign-merge-left-fill:before{content:"\f85b"}.bi-sign-merge-left:before{content:"\f85c"}.bi-sign-merge-right-fill:before{content:"\f85d"}.bi-sign-merge-right:before{content:"\f85e"}.bi-sign-no-left-turn-fill:before{content:"\f85f"}.bi-sign-no-left-turn:before{content:"\f860"}.bi-sign-no-parking-fill:before{content:"\f861"}.bi-sign-no-parking:before{content:"\f862"}.bi-sign-no-right-turn-fill:before{content:"\f863"}.bi-sign-no-right-turn:before{content:"\f864"}.bi-sign-railroad-fill:before{content:"\f865"}.bi-sign-railroad:before{content:"\f866"}.bi-building-add:before{content:"\f867"}.bi-building-check:before{content:"\f868"}.bi-building-dash:before{content:"\f869"}.bi-building-down:before{content:"\f86a"}.bi-building-exclamation:before{content:"\f86b"}.bi-building-fill-add:before{content:"\f86c"}.bi-building-fill-check:before{content:"\f86d"}.bi-building-fill-dash:before{content:"\f86e"}.bi-building-fill-down:before{content:"\f86f"}.bi-building-fill-exclamation:before{content:"\f870"}.bi-building-fill-gear:before{content:"\f871"}.bi-building-fill-lock:before{content:"\f872"}.bi-building-fill-slash:before{content:"\f873"}.bi-building-fill-up:before{content:"\f874"}.bi-building-fill-x:before{content:"\f875"}.bi-building-fill:before{content:"\f876"}.bi-building-gear:before{content:"\f877"}.bi-building-lock:before{content:"\f878"}.bi-building-slash:before{content:"\f879"}.bi-building-up:before{content:"\f87a"}.bi-building-x:before{content:"\f87b"}.bi-buildings-fill:before{content:"\f87c"}.bi-buildings:before{content:"\f87d"}.bi-bus-front-fill:before{content:"\f87e"}.bi-bus-front:before{content:"\f87f"}.bi-ev-front-fill:before{content:"\f880"}.bi-ev-front:before{content:"\f881"}.bi-globe-americas:before{content:"\f882"}.bi-globe-asia-australia:before{content:"\f883"}.bi-globe-central-south-asia:before{content:"\f884"}.bi-globe-europe-africa:before{content:"\f885"}.bi-house-add-fill:before{content:"\f886"}.bi-house-add:before{content:"\f887"}.bi-house-check-fill:before{content:"\f888"}.bi-house-check:before{content:"\f889"}.bi-house-dash-fill:before{content:"\f88a"}.bi-house-dash:before{content:"\f88b"}.bi-house-down-fill:before{content:"\f88c"}.bi-house-down:before{content:"\f88d"}.bi-house-exclamation-fill:before{content:"\f88e"}.bi-house-exclamation:before{content:"\f88f"}.bi-house-gear-fill:before{content:"\f890"}.bi-house-gear:before{content:"\f891"}.bi-house-lock-fill:before{content:"\f892"}.bi-house-lock:before{content:"\f893"}.bi-house-slash-fill:before{content:"\f894"}.bi-house-slash:before{content:"\f895"}.bi-house-up-fill:before{content:"\f896"}.bi-house-up:before{content:"\f897"}.bi-house-x-fill:before{content:"\f898"}.bi-house-x:before{content:"\f899"}.bi-person-add:before{content:"\f89a"}.bi-person-down:before{content:"\f89b"}.bi-person-exclamation:before{content:"\f89c"}.bi-person-fill-add:before{content:"\f89d"}.bi-person-fill-check:before{content:"\f89e"}.bi-person-fill-dash:before{content:"\f89f"}.bi-person-fill-down:before{content:"\f8a0"}.bi-person-fill-exclamation:before{content:"\f8a1"}.bi-person-fill-gear:before{content:"\f8a2"}.bi-person-fill-lock:before{content:"\f8a3"}.bi-person-fill-slash:before{content:"\f8a4"}.bi-person-fill-up:before{content:"\f8a5"}.bi-person-fill-x:before{content:"\f8a6"}.bi-person-gear:before{content:"\f8a7"}.bi-person-lock:before{content:"\f8a8"}.bi-person-slash:before{content:"\f8a9"}.bi-person-up:before{content:"\f8aa"}.bi-scooter:before{content:"\f8ab"}.bi-taxi-front-fill:before{content:"\f8ac"}.bi-taxi-front:before{content:"\f8ad"}.bi-amd:before{content:"\f8ae"}.bi-database-add:before{content:"\f8af"}.bi-database-check:before{content:"\f8b0"}.bi-database-dash:before{content:"\f8b1"}.bi-database-down:before{content:"\f8b2"}.bi-database-exclamation:before{content:"\f8b3"}.bi-database-fill-add:before{content:"\f8b4"}.bi-database-fill-check:before{content:"\f8b5"}.bi-database-fill-dash:before{content:"\f8b6"}.bi-database-fill-down:before{content:"\f8b7"}.bi-database-fill-exclamation:before{content:"\f8b8"}.bi-database-fill-gear:before{content:"\f8b9"}.bi-database-fill-lock:before{content:"\f8ba"}.bi-database-fill-slash:before{content:"\f8bb"}.bi-database-fill-up:before{content:"\f8bc"}.bi-database-fill-x:before{content:"\f8bd"}.bi-database-fill:before{content:"\f8be"}.bi-database-gear:before{content:"\f8bf"}.bi-database-lock:before{content:"\f8c0"}.bi-database-slash:before{content:"\f8c1"}.bi-database-up:before{content:"\f8c2"}.bi-database-x:before{content:"\f8c3"}.bi-database:before{content:"\f8c4"}.bi-houses-fill:before{content:"\f8c5"}.bi-houses:before{content:"\f8c6"}.bi-nvidia:before{content:"\f8c7"}.bi-person-vcard-fill:before{content:"\f8c8"}.bi-person-vcard:before{content:"\f8c9"}.bi-sina-weibo:before{content:"\f8ca"}.bi-tencent-qq:before{content:"\f8cb"}.bi-wikipedia:before{content:"\f8cc"}.bi-alphabet-uppercase:before{content:"\f2a5"}.bi-alphabet:before{content:"\f68a"}.bi-amazon:before{content:"\f68d"}.bi-arrows-collapse-vertical:before{content:"\f690"}.bi-arrows-expand-vertical:before{content:"\f695"}.bi-arrows-vertical:before{content:"\f698"}.bi-arrows:before{content:"\f6a2"}.bi-ban-fill:before{content:"\f6a3"}.bi-ban:before{content:"\f6b6"}.bi-bing:before{content:"\f6c2"}.bi-cake:before{content:"\f6e0"}.bi-cake2:before{content:"\f6ed"}.bi-cookie:before{content:"\f6ee"}.bi-copy:before{content:"\f759"}.bi-crosshair:before{content:"\f769"}.bi-crosshair2:before{content:"\f794"}.bi-emoji-astonished-fill:before{content:"\f795"}.bi-emoji-astonished:before{content:"\f79a"}.bi-emoji-grimace-fill:before{content:"\f79b"}.bi-emoji-grimace:before{content:"\f7a0"}.bi-emoji-grin-fill:before{content:"\f7a1"}.bi-emoji-grin:before{content:"\f7a6"}.bi-emoji-surprise-fill:before{content:"\f7a7"}.bi-emoji-surprise:before{content:"\f7ac"}.bi-emoji-tear-fill:before{content:"\f7ad"}.bi-emoji-tear:before{content:"\f7b2"}.bi-envelope-arrow-down-fill:before{content:"\f7b3"}.bi-envelope-arrow-down:before{content:"\f7b8"}.bi-envelope-arrow-up-fill:before{content:"\f7b9"}.bi-envelope-arrow-up:before{content:"\f7be"}.bi-feather:before{content:"\f7bf"}.bi-feather2:before{content:"\f7c4"}.bi-floppy-fill:before{content:"\f7c5"}.bi-floppy:before{content:"\f7d8"}.bi-floppy2-fill:before{content:"\f7d9"}.bi-floppy2:before{content:"\f7e4"}.bi-gitlab:before{content:"\f7e5"}.bi-highlighter:before{content:"\f7f8"}.bi-marker-tip:before{content:"\f802"}.bi-nvme-fill:before{content:"\f803"}.bi-nvme:before{content:"\f80c"}.bi-opencollective:before{content:"\f80d"}.bi-pci-card-network:before{content:"\f8cd"}.bi-pci-card-sound:before{content:"\f8ce"}.bi-radar:before{content:"\f8cf"}.bi-send-arrow-down-fill:before{content:"\f8d0"}.bi-send-arrow-down:before{content:"\f8d1"}.bi-send-arrow-up-fill:before{content:"\f8d2"}.bi-send-arrow-up:before{content:"\f8d3"}.bi-sim-slash-fill:before{content:"\f8d4"}.bi-sim-slash:before{content:"\f8d5"}.bi-sourceforge:before{content:"\f8d6"}.bi-substack:before{content:"\f8d7"}.bi-threads-fill:before{content:"\f8d8"}.bi-threads:before{content:"\f8d9"}.bi-transparency:before{content:"\f8da"}.bi-twitter-x:before{content:"\f8db"}.bi-type-h4:before{content:"\f8dc"}.bi-type-h5:before{content:"\f8dd"}.bi-type-h6:before{content:"\f8de"}.bi-backpack-fill:before{content:"\f8df"}.bi-backpack:before{content:"\f8e0"}.bi-backpack2-fill:before{content:"\f8e1"}.bi-backpack2:before{content:"\f8e2"}.bi-backpack3-fill:before{content:"\f8e3"}.bi-backpack3:before{content:"\f8e4"}.bi-backpack4-fill:before{content:"\f8e5"}.bi-backpack4:before{content:"\f8e6"}.bi-brilliance:before{content:"\f8e7"}.bi-cake-fill:before{content:"\f8e8"}.bi-cake2-fill:before{content:"\f8e9"}.bi-duffle-fill:before{content:"\f8ea"}.bi-duffle:before{content:"\f8eb"}.bi-exposure:before{content:"\f8ec"}.bi-gender-neuter:before{content:"\f8ed"}.bi-highlights:before{content:"\f8ee"}.bi-luggage-fill:before{content:"\f8ef"}.bi-luggage:before{content:"\f8f0"}.bi-mailbox-flag:before{content:"\f8f1"}.bi-mailbox2-flag:before{content:"\f8f2"}.bi-noise-reduction:before{content:"\f8f3"}.bi-passport-fill:before{content:"\f8f4"}.bi-passport:before{content:"\f8f5"}.bi-person-arms-up:before{content:"\f8f6"}.bi-person-raised-hand:before{content:"\f8f7"}.bi-person-standing-dress:before{content:"\f8f8"}.bi-person-standing:before{content:"\f8f9"}.bi-person-walking:before{content:"\f8fa"}.bi-person-wheelchair:before{content:"\f8fb"}.bi-shadows:before{content:"\f8fc"}.bi-suitcase-fill:before{content:"\f8fd"}.bi-suitcase-lg-fill:before{content:"\f8fe"}.bi-suitcase-lg:before{content:"\f8ff"}.bi-suitcase:before{content:"\f900"}.bi-suitcase2-fill:before{content:"\f901"}.bi-suitcase2:before{content:"\f902"}.bi-vignette:before{content:"\f903"}:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-highlight-color: #212529;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13, 110, 253, .25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: #e685b5;--bs-highlight-color: #dee2e6;--bs-highlight-bg: #664d03;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1768px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #a6b5cc;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #b5b6b7;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #a7b9b1;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #a6c3ca;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #ccc2a4;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #c6acae;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #4d5154;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))}.text-bg-secondary{color:#fff;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))}.text-bg-success{color:#fff;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))}.text-bg-info{color:#000;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))}.text-bg-warning{color:#000;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))}.text-bg-danger{color:#fff;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))}.text-bg-light{color:#000;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))}.text-bg-dark{color:#fff;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202,var(--bs-link-opacity, 1));text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100,var(--bs-link-opacity, 1));text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))}.link-success:hover,.link-success:focus{color:RGBA(20,108,67,var(--bs-link-opacity, 1));text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))}.link-info:hover,.link-info:focus{color:RGBA(61,213,243,var(--bs-link-opacity, 1));text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1));text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1));text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1));text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1));text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75));text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}.float-start{float:left}.float-end{float:right}.float-none{float:none}.object-fit-contain{object-fit:contain}.object-fit-cover{object-fit:cover}.object-fit-fill{object-fit:fill}.object-fit-scale{object-fit:scale-down}.object-fit-none{object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{left:0}.start-50{left:50%}.start-100{left:100%}.end-0{right:0}.end-50{right:50%}.end-100{right:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-top:0}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-right:0}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-bottom:0}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-left:0}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)}.border-success-subtle{border-color:var(--bs-success-border-subtle)}.border-info-subtle{border-color:var(--bs-info-border-subtle)}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)}.border-light-subtle{border-color:var(--bs-light-border-subtle)}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.mw-100{max-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.mh-100{max-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:1 1 auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:1rem}.m-4{margin:1.5rem}.m-5{margin:3rem}.m-auto{margin:auto}.mx-0{margin-right:0;margin-left:0}.mx-1{margin-right:.25rem;margin-left:.25rem}.mx-2{margin-right:.5rem;margin-left:.5rem}.mx-3{margin-right:1rem;margin-left:1rem}.mx-4{margin-right:1.5rem;margin-left:1.5rem}.mx-5{margin-right:3rem;margin-left:3rem}.mx-auto{margin-right:auto;margin-left:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:1rem;margin-bottom:1rem}.my-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-5{margin-top:3rem;margin-bottom:3rem}.my-auto{margin-top:auto;margin-bottom:auto}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mt-auto{margin-top:auto}.me-0{margin-right:0}.me-1{margin-right:.25rem}.me-2{margin-right:.5rem}.me-3{margin-right:1rem}.me-4{margin-right:1.5rem}.me-5{margin-right:3rem}.me-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.mb-auto{margin-bottom:auto}.ms-0{margin-left:0}.ms-1{margin-left:.25rem}.ms-2{margin-left:.5rem}.ms-3{margin-left:1rem}.ms-4{margin-left:1.5rem}.ms-5{margin-left:3rem}.ms-auto{margin-left:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.px-0{padding-right:0;padding-left:0}.px-1{padding-right:.25rem;padding-left:.25rem}.px-2{padding-right:.5rem;padding-left:.5rem}.px-3{padding-right:1rem;padding-left:1rem}.px-4{padding-right:1.5rem;padding-left:1.5rem}.px-5{padding-right:3rem;padding-left:3rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:1rem;padding-bottom:1rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:1rem}.pt-4{padding-top:1.5rem}.pt-5{padding-top:3rem}.pe-0{padding-right:0}.pe-1{padding-right:.25rem}.pe-2{padding-right:.5rem}.pe-3{padding-right:1rem}.pe-4{padding-right:1.5rem}.pe-5{padding-right:3rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:1rem}.pb-4{padding-bottom:1.5rem}.pb-5{padding-bottom:3rem}.ps-0{padding-left:0}.ps-1{padding-left:.25rem}.ps-2{padding-left:.5rem}.ps-3{padding-left:1rem}.ps-4{padding-left:1.5rem}.ps-5{padding-left:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}.gap-4{gap:1.5rem}.gap-5{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:1rem}.row-gap-4{row-gap:1.5rem}.row-gap-5{row-gap:3rem}.column-gap-0{column-gap:0}.column-gap-1{column-gap:.25rem}.column-gap-2{column-gap:.5rem}.column-gap-3{column-gap:1rem}.column-gap-4{column-gap:1.5rem}.column-gap-5{column-gap:3rem}.font-monospace{font-family:var(--bs-font-monospace)}.fs-1{font-size:calc(1.375rem + 1.5vw)}.fs-2{font-size:calc(1.325rem + .9vw)}.fs-3{font-size:calc(1.3rem + .6vw)}.fs-4{font-size:calc(1.275rem + .3vw)}.fs-5{font-size:1.25rem}.fs-6{font-size:1rem}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:left}.text-end{text-align:right}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{white-space:normal}.text-nowrap{white-space:nowrap}.text-break{word-wrap:break-word;word-break:break-word}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)}.text-black-50{--bs-text-opacity: 1;color:#00000080}.text-white-50{--bs-text-opacity: 1;color:#ffffff80}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)}.text-reset{--bs-text-opacity: 1;color:inherit}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)}.text-success-emphasis{color:var(--bs-success-text-emphasis)}.text-info-emphasis{color:var(--bs-info-text-emphasis)}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)}.text-light-emphasis{color:var(--bs-light-text-emphasis)}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{user-select:all}.user-select-auto{user-select:auto}.user-select-none{user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded{border-radius:var(--bs-border-radius)}.rounded-0{border-radius:0}.rounded-1{border-radius:var(--bs-border-radius-sm)}.rounded-2{border-radius:var(--bs-border-radius)}.rounded-3{border-radius:var(--bs-border-radius-lg)}.rounded-4{border-radius:var(--bs-border-radius-xl)}.rounded-5{border-radius:var(--bs-border-radius-xxl)}.rounded-circle{border-radius:50%}.rounded-pill{border-radius:var(--bs-border-radius-pill)}.rounded-top{border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.rounded-top-0{border-top-left-radius:0;border-top-right-radius:0}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm);border-top-right-radius:var(--bs-border-radius-sm)}.rounded-top-2{border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg);border-top-right-radius:var(--bs-border-radius-lg)}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl);border-top-right-radius:var(--bs-border-radius-xxl)}.rounded-top-circle{border-top-left-radius:50%;border-top-right-radius:50%}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill);border-top-right-radius:var(--bs-border-radius-pill)}.rounded-end{border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.rounded-end-0{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm);border-bottom-right-radius:var(--bs-border-radius-sm)}.rounded-end-2{border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl);border-bottom-right-radius:var(--bs-border-radius-xl)}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl);border-bottom-right-radius:var(--bs-border-radius-xxl)}.rounded-end-circle{border-top-right-radius:50%;border-bottom-right-radius:50%}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill);border-bottom-right-radius:var(--bs-border-radius-pill)}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius);border-bottom-left-radius:var(--bs-border-radius)}.rounded-bottom-0{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm);border-bottom-left-radius:var(--bs-border-radius-sm)}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius);border-bottom-left-radius:var(--bs-border-radius)}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg);border-bottom-left-radius:var(--bs-border-radius-lg)}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl);border-bottom-left-radius:var(--bs-border-radius-xl)}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl);border-bottom-left-radius:var(--bs-border-radius-xxl)}.rounded-bottom-circle{border-bottom-right-radius:50%;border-bottom-left-radius:50%}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill);border-bottom-left-radius:var(--bs-border-radius-pill)}.rounded-start{border-bottom-left-radius:var(--bs-border-radius);border-top-left-radius:var(--bs-border-radius)}.rounded-start-0{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm);border-top-left-radius:var(--bs-border-radius-sm)}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius);border-top-left-radius:var(--bs-border-radius)}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg);border-top-left-radius:var(--bs-border-radius-lg)}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl);border-top-left-radius:var(--bs-border-radius-xl)}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl);border-top-left-radius:var(--bs-border-radius-xxl)}.rounded-start-circle{border-bottom-left-radius:50%;border-top-left-radius:50%}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill);border-top-left-radius:var(--bs-border-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (min-width: 576px){.float-sm-start{float:left}.float-sm-end{float:right}.float-sm-none{float:none}.object-fit-sm-contain{object-fit:contain}.object-fit-sm-cover{object-fit:cover}.object-fit-sm-fill{object-fit:fill}.object-fit-sm-scale{object-fit:scale-down}.object-fit-sm-none{object-fit:none}.d-sm-inline{display:inline}.d-sm-inline-block{display:inline-block}.d-sm-block{display:block}.d-sm-grid{display:grid}.d-sm-inline-grid{display:inline-grid}.d-sm-table{display:table}.d-sm-table-row{display:table-row}.d-sm-table-cell{display:table-cell}.d-sm-flex{display:flex}.d-sm-inline-flex{display:inline-flex}.d-sm-none{display:none}.flex-sm-fill{flex:1 1 auto}.flex-sm-row{flex-direction:row}.flex-sm-column{flex-direction:column}.flex-sm-row-reverse{flex-direction:row-reverse}.flex-sm-column-reverse{flex-direction:column-reverse}.flex-sm-grow-0{flex-grow:0}.flex-sm-grow-1{flex-grow:1}.flex-sm-shrink-0{flex-shrink:0}.flex-sm-shrink-1{flex-shrink:1}.flex-sm-wrap{flex-wrap:wrap}.flex-sm-nowrap{flex-wrap:nowrap}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-sm-start{justify-content:flex-start}.justify-content-sm-end{justify-content:flex-end}.justify-content-sm-center{justify-content:center}.justify-content-sm-between{justify-content:space-between}.justify-content-sm-around{justify-content:space-around}.justify-content-sm-evenly{justify-content:space-evenly}.align-items-sm-start{align-items:flex-start}.align-items-sm-end{align-items:flex-end}.align-items-sm-center{align-items:center}.align-items-sm-baseline{align-items:baseline}.align-items-sm-stretch{align-items:stretch}.align-content-sm-start{align-content:flex-start}.align-content-sm-end{align-content:flex-end}.align-content-sm-center{align-content:center}.align-content-sm-between{align-content:space-between}.align-content-sm-around{align-content:space-around}.align-content-sm-stretch{align-content:stretch}.align-self-sm-auto{align-self:auto}.align-self-sm-start{align-self:flex-start}.align-self-sm-end{align-self:flex-end}.align-self-sm-center{align-self:center}.align-self-sm-baseline{align-self:baseline}.align-self-sm-stretch{align-self:stretch}.order-sm-first{order:-1}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-last{order:6}.m-sm-0{margin:0}.m-sm-1{margin:.25rem}.m-sm-2{margin:.5rem}.m-sm-3{margin:1rem}.m-sm-4{margin:1.5rem}.m-sm-5{margin:3rem}.m-sm-auto{margin:auto}.mx-sm-0{margin-right:0;margin-left:0}.mx-sm-1{margin-right:.25rem;margin-left:.25rem}.mx-sm-2{margin-right:.5rem;margin-left:.5rem}.mx-sm-3{margin-right:1rem;margin-left:1rem}.mx-sm-4{margin-right:1.5rem;margin-left:1.5rem}.mx-sm-5{margin-right:3rem;margin-left:3rem}.mx-sm-auto{margin-right:auto;margin-left:auto}.my-sm-0{margin-top:0;margin-bottom:0}.my-sm-1{margin-top:.25rem;margin-bottom:.25rem}.my-sm-2{margin-top:.5rem;margin-bottom:.5rem}.my-sm-3{margin-top:1rem;margin-bottom:1rem}.my-sm-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-sm-5{margin-top:3rem;margin-bottom:3rem}.my-sm-auto{margin-top:auto;margin-bottom:auto}.mt-sm-0{margin-top:0}.mt-sm-1{margin-top:.25rem}.mt-sm-2{margin-top:.5rem}.mt-sm-3{margin-top:1rem}.mt-sm-4{margin-top:1.5rem}.mt-sm-5{margin-top:3rem}.mt-sm-auto{margin-top:auto}.me-sm-0{margin-right:0}.me-sm-1{margin-right:.25rem}.me-sm-2{margin-right:.5rem}.me-sm-3{margin-right:1rem}.me-sm-4{margin-right:1.5rem}.me-sm-5{margin-right:3rem}.me-sm-auto{margin-right:auto}.mb-sm-0{margin-bottom:0}.mb-sm-1{margin-bottom:.25rem}.mb-sm-2{margin-bottom:.5rem}.mb-sm-3{margin-bottom:1rem}.mb-sm-4{margin-bottom:1.5rem}.mb-sm-5{margin-bottom:3rem}.mb-sm-auto{margin-bottom:auto}.ms-sm-0{margin-left:0}.ms-sm-1{margin-left:.25rem}.ms-sm-2{margin-left:.5rem}.ms-sm-3{margin-left:1rem}.ms-sm-4{margin-left:1.5rem}.ms-sm-5{margin-left:3rem}.ms-sm-auto{margin-left:auto}.p-sm-0{padding:0}.p-sm-1{padding:.25rem}.p-sm-2{padding:.5rem}.p-sm-3{padding:1rem}.p-sm-4{padding:1.5rem}.p-sm-5{padding:3rem}.px-sm-0{padding-right:0;padding-left:0}.px-sm-1{padding-right:.25rem;padding-left:.25rem}.px-sm-2{padding-right:.5rem;padding-left:.5rem}.px-sm-3{padding-right:1rem;padding-left:1rem}.px-sm-4{padding-right:1.5rem;padding-left:1.5rem}.px-sm-5{padding-right:3rem;padding-left:3rem}.py-sm-0{padding-top:0;padding-bottom:0}.py-sm-1{padding-top:.25rem;padding-bottom:.25rem}.py-sm-2{padding-top:.5rem;padding-bottom:.5rem}.py-sm-3{padding-top:1rem;padding-bottom:1rem}.py-sm-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-sm-5{padding-top:3rem;padding-bottom:3rem}.pt-sm-0{padding-top:0}.pt-sm-1{padding-top:.25rem}.pt-sm-2{padding-top:.5rem}.pt-sm-3{padding-top:1rem}.pt-sm-4{padding-top:1.5rem}.pt-sm-5{padding-top:3rem}.pe-sm-0{padding-right:0}.pe-sm-1{padding-right:.25rem}.pe-sm-2{padding-right:.5rem}.pe-sm-3{padding-right:1rem}.pe-sm-4{padding-right:1.5rem}.pe-sm-5{padding-right:3rem}.pb-sm-0{padding-bottom:0}.pb-sm-1{padding-bottom:.25rem}.pb-sm-2{padding-bottom:.5rem}.pb-sm-3{padding-bottom:1rem}.pb-sm-4{padding-bottom:1.5rem}.pb-sm-5{padding-bottom:3rem}.ps-sm-0{padding-left:0}.ps-sm-1{padding-left:.25rem}.ps-sm-2{padding-left:.5rem}.ps-sm-3{padding-left:1rem}.ps-sm-4{padding-left:1.5rem}.ps-sm-5{padding-left:3rem}.gap-sm-0{gap:0}.gap-sm-1{gap:.25rem}.gap-sm-2{gap:.5rem}.gap-sm-3{gap:1rem}.gap-sm-4{gap:1.5rem}.gap-sm-5{gap:3rem}.row-gap-sm-0{row-gap:0}.row-gap-sm-1{row-gap:.25rem}.row-gap-sm-2{row-gap:.5rem}.row-gap-sm-3{row-gap:1rem}.row-gap-sm-4{row-gap:1.5rem}.row-gap-sm-5{row-gap:3rem}.column-gap-sm-0{column-gap:0}.column-gap-sm-1{column-gap:.25rem}.column-gap-sm-2{column-gap:.5rem}.column-gap-sm-3{column-gap:1rem}.column-gap-sm-4{column-gap:1.5rem}.column-gap-sm-5{column-gap:3rem}.text-sm-start{text-align:left}.text-sm-end{text-align:right}.text-sm-center{text-align:center}}@media (min-width: 768px){.float-md-start{float:left}.float-md-end{float:right}.float-md-none{float:none}.object-fit-md-contain{object-fit:contain}.object-fit-md-cover{object-fit:cover}.object-fit-md-fill{object-fit:fill}.object-fit-md-scale{object-fit:scale-down}.object-fit-md-none{object-fit:none}.d-md-inline{display:inline}.d-md-inline-block{display:inline-block}.d-md-block{display:block}.d-md-grid{display:grid}.d-md-inline-grid{display:inline-grid}.d-md-table{display:table}.d-md-table-row{display:table-row}.d-md-table-cell{display:table-cell}.d-md-flex{display:flex}.d-md-inline-flex{display:inline-flex}.d-md-none{display:none}.flex-md-fill{flex:1 1 auto}.flex-md-row{flex-direction:row}.flex-md-column{flex-direction:column}.flex-md-row-reverse{flex-direction:row-reverse}.flex-md-column-reverse{flex-direction:column-reverse}.flex-md-grow-0{flex-grow:0}.flex-md-grow-1{flex-grow:1}.flex-md-shrink-0{flex-shrink:0}.flex-md-shrink-1{flex-shrink:1}.flex-md-wrap{flex-wrap:wrap}.flex-md-nowrap{flex-wrap:nowrap}.flex-md-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-md-start{justify-content:flex-start}.justify-content-md-end{justify-content:flex-end}.justify-content-md-center{justify-content:center}.justify-content-md-between{justify-content:space-between}.justify-content-md-around{justify-content:space-around}.justify-content-md-evenly{justify-content:space-evenly}.align-items-md-start{align-items:flex-start}.align-items-md-end{align-items:flex-end}.align-items-md-center{align-items:center}.align-items-md-baseline{align-items:baseline}.align-items-md-stretch{align-items:stretch}.align-content-md-start{align-content:flex-start}.align-content-md-end{align-content:flex-end}.align-content-md-center{align-content:center}.align-content-md-between{align-content:space-between}.align-content-md-around{align-content:space-around}.align-content-md-stretch{align-content:stretch}.align-self-md-auto{align-self:auto}.align-self-md-start{align-self:flex-start}.align-self-md-end{align-self:flex-end}.align-self-md-center{align-self:center}.align-self-md-baseline{align-self:baseline}.align-self-md-stretch{align-self:stretch}.order-md-first{order:-1}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-last{order:6}.m-md-0{margin:0}.m-md-1{margin:.25rem}.m-md-2{margin:.5rem}.m-md-3{margin:1rem}.m-md-4{margin:1.5rem}.m-md-5{margin:3rem}.m-md-auto{margin:auto}.mx-md-0{margin-right:0;margin-left:0}.mx-md-1{margin-right:.25rem;margin-left:.25rem}.mx-md-2{margin-right:.5rem;margin-left:.5rem}.mx-md-3{margin-right:1rem;margin-left:1rem}.mx-md-4{margin-right:1.5rem;margin-left:1.5rem}.mx-md-5{margin-right:3rem;margin-left:3rem}.mx-md-auto{margin-right:auto;margin-left:auto}.my-md-0{margin-top:0;margin-bottom:0}.my-md-1{margin-top:.25rem;margin-bottom:.25rem}.my-md-2{margin-top:.5rem;margin-bottom:.5rem}.my-md-3{margin-top:1rem;margin-bottom:1rem}.my-md-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-md-5{margin-top:3rem;margin-bottom:3rem}.my-md-auto{margin-top:auto;margin-bottom:auto}.mt-md-0{margin-top:0}.mt-md-1{margin-top:.25rem}.mt-md-2{margin-top:.5rem}.mt-md-3{margin-top:1rem}.mt-md-4{margin-top:1.5rem}.mt-md-5{margin-top:3rem}.mt-md-auto{margin-top:auto}.me-md-0{margin-right:0}.me-md-1{margin-right:.25rem}.me-md-2{margin-right:.5rem}.me-md-3{margin-right:1rem}.me-md-4{margin-right:1.5rem}.me-md-5{margin-right:3rem}.me-md-auto{margin-right:auto}.mb-md-0{margin-bottom:0}.mb-md-1{margin-bottom:.25rem}.mb-md-2{margin-bottom:.5rem}.mb-md-3{margin-bottom:1rem}.mb-md-4{margin-bottom:1.5rem}.mb-md-5{margin-bottom:3rem}.mb-md-auto{margin-bottom:auto}.ms-md-0{margin-left:0}.ms-md-1{margin-left:.25rem}.ms-md-2{margin-left:.5rem}.ms-md-3{margin-left:1rem}.ms-md-4{margin-left:1.5rem}.ms-md-5{margin-left:3rem}.ms-md-auto{margin-left:auto}.p-md-0{padding:0}.p-md-1{padding:.25rem}.p-md-2{padding:.5rem}.p-md-3{padding:1rem}.p-md-4{padding:1.5rem}.p-md-5{padding:3rem}.px-md-0{padding-right:0;padding-left:0}.px-md-1{padding-right:.25rem;padding-left:.25rem}.px-md-2{padding-right:.5rem;padding-left:.5rem}.px-md-3{padding-right:1rem;padding-left:1rem}.px-md-4{padding-right:1.5rem;padding-left:1.5rem}.px-md-5{padding-right:3rem;padding-left:3rem}.py-md-0{padding-top:0;padding-bottom:0}.py-md-1{padding-top:.25rem;padding-bottom:.25rem}.py-md-2{padding-top:.5rem;padding-bottom:.5rem}.py-md-3{padding-top:1rem;padding-bottom:1rem}.py-md-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-md-5{padding-top:3rem;padding-bottom:3rem}.pt-md-0{padding-top:0}.pt-md-1{padding-top:.25rem}.pt-md-2{padding-top:.5rem}.pt-md-3{padding-top:1rem}.pt-md-4{padding-top:1.5rem}.pt-md-5{padding-top:3rem}.pe-md-0{padding-right:0}.pe-md-1{padding-right:.25rem}.pe-md-2{padding-right:.5rem}.pe-md-3{padding-right:1rem}.pe-md-4{padding-right:1.5rem}.pe-md-5{padding-right:3rem}.pb-md-0{padding-bottom:0}.pb-md-1{padding-bottom:.25rem}.pb-md-2{padding-bottom:.5rem}.pb-md-3{padding-bottom:1rem}.pb-md-4{padding-bottom:1.5rem}.pb-md-5{padding-bottom:3rem}.ps-md-0{padding-left:0}.ps-md-1{padding-left:.25rem}.ps-md-2{padding-left:.5rem}.ps-md-3{padding-left:1rem}.ps-md-4{padding-left:1.5rem}.ps-md-5{padding-left:3rem}.gap-md-0{gap:0}.gap-md-1{gap:.25rem}.gap-md-2{gap:.5rem}.gap-md-3{gap:1rem}.gap-md-4{gap:1.5rem}.gap-md-5{gap:3rem}.row-gap-md-0{row-gap:0}.row-gap-md-1{row-gap:.25rem}.row-gap-md-2{row-gap:.5rem}.row-gap-md-3{row-gap:1rem}.row-gap-md-4{row-gap:1.5rem}.row-gap-md-5{row-gap:3rem}.column-gap-md-0{column-gap:0}.column-gap-md-1{column-gap:.25rem}.column-gap-md-2{column-gap:.5rem}.column-gap-md-3{column-gap:1rem}.column-gap-md-4{column-gap:1.5rem}.column-gap-md-5{column-gap:3rem}.text-md-start{text-align:left}.text-md-end{text-align:right}.text-md-center{text-align:center}}@media (min-width: 992px){.float-lg-start{float:left}.float-lg-end{float:right}.float-lg-none{float:none}.object-fit-lg-contain{object-fit:contain}.object-fit-lg-cover{object-fit:cover}.object-fit-lg-fill{object-fit:fill}.object-fit-lg-scale{object-fit:scale-down}.object-fit-lg-none{object-fit:none}.d-lg-inline{display:inline}.d-lg-inline-block{display:inline-block}.d-lg-block{display:block}.d-lg-grid{display:grid}.d-lg-inline-grid{display:inline-grid}.d-lg-table{display:table}.d-lg-table-row{display:table-row}.d-lg-table-cell{display:table-cell}.d-lg-flex{display:flex}.d-lg-inline-flex{display:inline-flex}.d-lg-none{display:none}.flex-lg-fill{flex:1 1 auto}.flex-lg-row{flex-direction:row}.flex-lg-column{flex-direction:column}.flex-lg-row-reverse{flex-direction:row-reverse}.flex-lg-column-reverse{flex-direction:column-reverse}.flex-lg-grow-0{flex-grow:0}.flex-lg-grow-1{flex-grow:1}.flex-lg-shrink-0{flex-shrink:0}.flex-lg-shrink-1{flex-shrink:1}.flex-lg-wrap{flex-wrap:wrap}.flex-lg-nowrap{flex-wrap:nowrap}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-lg-start{justify-content:flex-start}.justify-content-lg-end{justify-content:flex-end}.justify-content-lg-center{justify-content:center}.justify-content-lg-between{justify-content:space-between}.justify-content-lg-around{justify-content:space-around}.justify-content-lg-evenly{justify-content:space-evenly}.align-items-lg-start{align-items:flex-start}.align-items-lg-end{align-items:flex-end}.align-items-lg-center{align-items:center}.align-items-lg-baseline{align-items:baseline}.align-items-lg-stretch{align-items:stretch}.align-content-lg-start{align-content:flex-start}.align-content-lg-end{align-content:flex-end}.align-content-lg-center{align-content:center}.align-content-lg-between{align-content:space-between}.align-content-lg-around{align-content:space-around}.align-content-lg-stretch{align-content:stretch}.align-self-lg-auto{align-self:auto}.align-self-lg-start{align-self:flex-start}.align-self-lg-end{align-self:flex-end}.align-self-lg-center{align-self:center}.align-self-lg-baseline{align-self:baseline}.align-self-lg-stretch{align-self:stretch}.order-lg-first{order:-1}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-last{order:6}.m-lg-0{margin:0}.m-lg-1{margin:.25rem}.m-lg-2{margin:.5rem}.m-lg-3{margin:1rem}.m-lg-4{margin:1.5rem}.m-lg-5{margin:3rem}.m-lg-auto{margin:auto}.mx-lg-0{margin-right:0;margin-left:0}.mx-lg-1{margin-right:.25rem;margin-left:.25rem}.mx-lg-2{margin-right:.5rem;margin-left:.5rem}.mx-lg-3{margin-right:1rem;margin-left:1rem}.mx-lg-4{margin-right:1.5rem;margin-left:1.5rem}.mx-lg-5{margin-right:3rem;margin-left:3rem}.mx-lg-auto{margin-right:auto;margin-left:auto}.my-lg-0{margin-top:0;margin-bottom:0}.my-lg-1{margin-top:.25rem;margin-bottom:.25rem}.my-lg-2{margin-top:.5rem;margin-bottom:.5rem}.my-lg-3{margin-top:1rem;margin-bottom:1rem}.my-lg-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-lg-5{margin-top:3rem;margin-bottom:3rem}.my-lg-auto{margin-top:auto;margin-bottom:auto}.mt-lg-0{margin-top:0}.mt-lg-1{margin-top:.25rem}.mt-lg-2{margin-top:.5rem}.mt-lg-3{margin-top:1rem}.mt-lg-4{margin-top:1.5rem}.mt-lg-5{margin-top:3rem}.mt-lg-auto{margin-top:auto}.me-lg-0{margin-right:0}.me-lg-1{margin-right:.25rem}.me-lg-2{margin-right:.5rem}.me-lg-3{margin-right:1rem}.me-lg-4{margin-right:1.5rem}.me-lg-5{margin-right:3rem}.me-lg-auto{margin-right:auto}.mb-lg-0{margin-bottom:0}.mb-lg-1{margin-bottom:.25rem}.mb-lg-2{margin-bottom:.5rem}.mb-lg-3{margin-bottom:1rem}.mb-lg-4{margin-bottom:1.5rem}.mb-lg-5{margin-bottom:3rem}.mb-lg-auto{margin-bottom:auto}.ms-lg-0{margin-left:0}.ms-lg-1{margin-left:.25rem}.ms-lg-2{margin-left:.5rem}.ms-lg-3{margin-left:1rem}.ms-lg-4{margin-left:1.5rem}.ms-lg-5{margin-left:3rem}.ms-lg-auto{margin-left:auto}.p-lg-0{padding:0}.p-lg-1{padding:.25rem}.p-lg-2{padding:.5rem}.p-lg-3{padding:1rem}.p-lg-4{padding:1.5rem}.p-lg-5{padding:3rem}.px-lg-0{padding-right:0;padding-left:0}.px-lg-1{padding-right:.25rem;padding-left:.25rem}.px-lg-2{padding-right:.5rem;padding-left:.5rem}.px-lg-3{padding-right:1rem;padding-left:1rem}.px-lg-4{padding-right:1.5rem;padding-left:1.5rem}.px-lg-5{padding-right:3rem;padding-left:3rem}.py-lg-0{padding-top:0;padding-bottom:0}.py-lg-1{padding-top:.25rem;padding-bottom:.25rem}.py-lg-2{padding-top:.5rem;padding-bottom:.5rem}.py-lg-3{padding-top:1rem;padding-bottom:1rem}.py-lg-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-lg-5{padding-top:3rem;padding-bottom:3rem}.pt-lg-0{padding-top:0}.pt-lg-1{padding-top:.25rem}.pt-lg-2{padding-top:.5rem}.pt-lg-3{padding-top:1rem}.pt-lg-4{padding-top:1.5rem}.pt-lg-5{padding-top:3rem}.pe-lg-0{padding-right:0}.pe-lg-1{padding-right:.25rem}.pe-lg-2{padding-right:.5rem}.pe-lg-3{padding-right:1rem}.pe-lg-4{padding-right:1.5rem}.pe-lg-5{padding-right:3rem}.pb-lg-0{padding-bottom:0}.pb-lg-1{padding-bottom:.25rem}.pb-lg-2{padding-bottom:.5rem}.pb-lg-3{padding-bottom:1rem}.pb-lg-4{padding-bottom:1.5rem}.pb-lg-5{padding-bottom:3rem}.ps-lg-0{padding-left:0}.ps-lg-1{padding-left:.25rem}.ps-lg-2{padding-left:.5rem}.ps-lg-3{padding-left:1rem}.ps-lg-4{padding-left:1.5rem}.ps-lg-5{padding-left:3rem}.gap-lg-0{gap:0}.gap-lg-1{gap:.25rem}.gap-lg-2{gap:.5rem}.gap-lg-3{gap:1rem}.gap-lg-4{gap:1.5rem}.gap-lg-5{gap:3rem}.row-gap-lg-0{row-gap:0}.row-gap-lg-1{row-gap:.25rem}.row-gap-lg-2{row-gap:.5rem}.row-gap-lg-3{row-gap:1rem}.row-gap-lg-4{row-gap:1.5rem}.row-gap-lg-5{row-gap:3rem}.column-gap-lg-0{column-gap:0}.column-gap-lg-1{column-gap:.25rem}.column-gap-lg-2{column-gap:.5rem}.column-gap-lg-3{column-gap:1rem}.column-gap-lg-4{column-gap:1.5rem}.column-gap-lg-5{column-gap:3rem}.text-lg-start{text-align:left}.text-lg-end{text-align:right}.text-lg-center{text-align:center}}@media (min-width: 1200px){.float-xl-start{float:left}.float-xl-end{float:right}.float-xl-none{float:none}.object-fit-xl-contain{object-fit:contain}.object-fit-xl-cover{object-fit:cover}.object-fit-xl-fill{object-fit:fill}.object-fit-xl-scale{object-fit:scale-down}.object-fit-xl-none{object-fit:none}.d-xl-inline{display:inline}.d-xl-inline-block{display:inline-block}.d-xl-block{display:block}.d-xl-grid{display:grid}.d-xl-inline-grid{display:inline-grid}.d-xl-table{display:table}.d-xl-table-row{display:table-row}.d-xl-table-cell{display:table-cell}.d-xl-flex{display:flex}.d-xl-inline-flex{display:inline-flex}.d-xl-none{display:none}.flex-xl-fill{flex:1 1 auto}.flex-xl-row{flex-direction:row}.flex-xl-column{flex-direction:column}.flex-xl-row-reverse{flex-direction:row-reverse}.flex-xl-column-reverse{flex-direction:column-reverse}.flex-xl-grow-0{flex-grow:0}.flex-xl-grow-1{flex-grow:1}.flex-xl-shrink-0{flex-shrink:0}.flex-xl-shrink-1{flex-shrink:1}.flex-xl-wrap{flex-wrap:wrap}.flex-xl-nowrap{flex-wrap:nowrap}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-xl-start{justify-content:flex-start}.justify-content-xl-end{justify-content:flex-end}.justify-content-xl-center{justify-content:center}.justify-content-xl-between{justify-content:space-between}.justify-content-xl-around{justify-content:space-around}.justify-content-xl-evenly{justify-content:space-evenly}.align-items-xl-start{align-items:flex-start}.align-items-xl-end{align-items:flex-end}.align-items-xl-center{align-items:center}.align-items-xl-baseline{align-items:baseline}.align-items-xl-stretch{align-items:stretch}.align-content-xl-start{align-content:flex-start}.align-content-xl-end{align-content:flex-end}.align-content-xl-center{align-content:center}.align-content-xl-between{align-content:space-between}.align-content-xl-around{align-content:space-around}.align-content-xl-stretch{align-content:stretch}.align-self-xl-auto{align-self:auto}.align-self-xl-start{align-self:flex-start}.align-self-xl-end{align-self:flex-end}.align-self-xl-center{align-self:center}.align-self-xl-baseline{align-self:baseline}.align-self-xl-stretch{align-self:stretch}.order-xl-first{order:-1}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-last{order:6}.m-xl-0{margin:0}.m-xl-1{margin:.25rem}.m-xl-2{margin:.5rem}.m-xl-3{margin:1rem}.m-xl-4{margin:1.5rem}.m-xl-5{margin:3rem}.m-xl-auto{margin:auto}.mx-xl-0{margin-right:0;margin-left:0}.mx-xl-1{margin-right:.25rem;margin-left:.25rem}.mx-xl-2{margin-right:.5rem;margin-left:.5rem}.mx-xl-3{margin-right:1rem;margin-left:1rem}.mx-xl-4{margin-right:1.5rem;margin-left:1.5rem}.mx-xl-5{margin-right:3rem;margin-left:3rem}.mx-xl-auto{margin-right:auto;margin-left:auto}.my-xl-0{margin-top:0;margin-bottom:0}.my-xl-1{margin-top:.25rem;margin-bottom:.25rem}.my-xl-2{margin-top:.5rem;margin-bottom:.5rem}.my-xl-3{margin-top:1rem;margin-bottom:1rem}.my-xl-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-xl-5{margin-top:3rem;margin-bottom:3rem}.my-xl-auto{margin-top:auto;margin-bottom:auto}.mt-xl-0{margin-top:0}.mt-xl-1{margin-top:.25rem}.mt-xl-2{margin-top:.5rem}.mt-xl-3{margin-top:1rem}.mt-xl-4{margin-top:1.5rem}.mt-xl-5{margin-top:3rem}.mt-xl-auto{margin-top:auto}.me-xl-0{margin-right:0}.me-xl-1{margin-right:.25rem}.me-xl-2{margin-right:.5rem}.me-xl-3{margin-right:1rem}.me-xl-4{margin-right:1.5rem}.me-xl-5{margin-right:3rem}.me-xl-auto{margin-right:auto}.mb-xl-0{margin-bottom:0}.mb-xl-1{margin-bottom:.25rem}.mb-xl-2{margin-bottom:.5rem}.mb-xl-3{margin-bottom:1rem}.mb-xl-4{margin-bottom:1.5rem}.mb-xl-5{margin-bottom:3rem}.mb-xl-auto{margin-bottom:auto}.ms-xl-0{margin-left:0}.ms-xl-1{margin-left:.25rem}.ms-xl-2{margin-left:.5rem}.ms-xl-3{margin-left:1rem}.ms-xl-4{margin-left:1.5rem}.ms-xl-5{margin-left:3rem}.ms-xl-auto{margin-left:auto}.p-xl-0{padding:0}.p-xl-1{padding:.25rem}.p-xl-2{padding:.5rem}.p-xl-3{padding:1rem}.p-xl-4{padding:1.5rem}.p-xl-5{padding:3rem}.px-xl-0{padding-right:0;padding-left:0}.px-xl-1{padding-right:.25rem;padding-left:.25rem}.px-xl-2{padding-right:.5rem;padding-left:.5rem}.px-xl-3{padding-right:1rem;padding-left:1rem}.px-xl-4{padding-right:1.5rem;padding-left:1.5rem}.px-xl-5{padding-right:3rem;padding-left:3rem}.py-xl-0{padding-top:0;padding-bottom:0}.py-xl-1{padding-top:.25rem;padding-bottom:.25rem}.py-xl-2{padding-top:.5rem;padding-bottom:.5rem}.py-xl-3{padding-top:1rem;padding-bottom:1rem}.py-xl-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-xl-5{padding-top:3rem;padding-bottom:3rem}.pt-xl-0{padding-top:0}.pt-xl-1{padding-top:.25rem}.pt-xl-2{padding-top:.5rem}.pt-xl-3{padding-top:1rem}.pt-xl-4{padding-top:1.5rem}.pt-xl-5{padding-top:3rem}.pe-xl-0{padding-right:0}.pe-xl-1{padding-right:.25rem}.pe-xl-2{padding-right:.5rem}.pe-xl-3{padding-right:1rem}.pe-xl-4{padding-right:1.5rem}.pe-xl-5{padding-right:3rem}.pb-xl-0{padding-bottom:0}.pb-xl-1{padding-bottom:.25rem}.pb-xl-2{padding-bottom:.5rem}.pb-xl-3{padding-bottom:1rem}.pb-xl-4{padding-bottom:1.5rem}.pb-xl-5{padding-bottom:3rem}.ps-xl-0{padding-left:0}.ps-xl-1{padding-left:.25rem}.ps-xl-2{padding-left:.5rem}.ps-xl-3{padding-left:1rem}.ps-xl-4{padding-left:1.5rem}.ps-xl-5{padding-left:3rem}.gap-xl-0{gap:0}.gap-xl-1{gap:.25rem}.gap-xl-2{gap:.5rem}.gap-xl-3{gap:1rem}.gap-xl-4{gap:1.5rem}.gap-xl-5{gap:3rem}.row-gap-xl-0{row-gap:0}.row-gap-xl-1{row-gap:.25rem}.row-gap-xl-2{row-gap:.5rem}.row-gap-xl-3{row-gap:1rem}.row-gap-xl-4{row-gap:1.5rem}.row-gap-xl-5{row-gap:3rem}.column-gap-xl-0{column-gap:0}.column-gap-xl-1{column-gap:.25rem}.column-gap-xl-2{column-gap:.5rem}.column-gap-xl-3{column-gap:1rem}.column-gap-xl-4{column-gap:1.5rem}.column-gap-xl-5{column-gap:3rem}.text-xl-start{text-align:left}.text-xl-end{text-align:right}.text-xl-center{text-align:center}}@media (min-width: 1400px){.float-xxl-start{float:left}.float-xxl-end{float:right}.float-xxl-none{float:none}.object-fit-xxl-contain{object-fit:contain}.object-fit-xxl-cover{object-fit:cover}.object-fit-xxl-fill{object-fit:fill}.object-fit-xxl-scale{object-fit:scale-down}.object-fit-xxl-none{object-fit:none}.d-xxl-inline{display:inline}.d-xxl-inline-block{display:inline-block}.d-xxl-block{display:block}.d-xxl-grid{display:grid}.d-xxl-inline-grid{display:inline-grid}.d-xxl-table{display:table}.d-xxl-table-row{display:table-row}.d-xxl-table-cell{display:table-cell}.d-xxl-flex{display:flex}.d-xxl-inline-flex{display:inline-flex}.d-xxl-none{display:none}.flex-xxl-fill{flex:1 1 auto}.flex-xxl-row{flex-direction:row}.flex-xxl-column{flex-direction:column}.flex-xxl-row-reverse{flex-direction:row-reverse}.flex-xxl-column-reverse{flex-direction:column-reverse}.flex-xxl-grow-0{flex-grow:0}.flex-xxl-grow-1{flex-grow:1}.flex-xxl-shrink-0{flex-shrink:0}.flex-xxl-shrink-1{flex-shrink:1}.flex-xxl-wrap{flex-wrap:wrap}.flex-xxl-nowrap{flex-wrap:nowrap}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-xxl-start{justify-content:flex-start}.justify-content-xxl-end{justify-content:flex-end}.justify-content-xxl-center{justify-content:center}.justify-content-xxl-between{justify-content:space-between}.justify-content-xxl-around{justify-content:space-around}.justify-content-xxl-evenly{justify-content:space-evenly}.align-items-xxl-start{align-items:flex-start}.align-items-xxl-end{align-items:flex-end}.align-items-xxl-center{align-items:center}.align-items-xxl-baseline{align-items:baseline}.align-items-xxl-stretch{align-items:stretch}.align-content-xxl-start{align-content:flex-start}.align-content-xxl-end{align-content:flex-end}.align-content-xxl-center{align-content:center}.align-content-xxl-between{align-content:space-between}.align-content-xxl-around{align-content:space-around}.align-content-xxl-stretch{align-content:stretch}.align-self-xxl-auto{align-self:auto}.align-self-xxl-start{align-self:flex-start}.align-self-xxl-end{align-self:flex-end}.align-self-xxl-center{align-self:center}.align-self-xxl-baseline{align-self:baseline}.align-self-xxl-stretch{align-self:stretch}.order-xxl-first{order:-1}.order-xxl-0{order:0}.order-xxl-1{order:1}.order-xxl-2{order:2}.order-xxl-3{order:3}.order-xxl-4{order:4}.order-xxl-5{order:5}.order-xxl-last{order:6}.m-xxl-0{margin:0}.m-xxl-1{margin:.25rem}.m-xxl-2{margin:.5rem}.m-xxl-3{margin:1rem}.m-xxl-4{margin:1.5rem}.m-xxl-5{margin:3rem}.m-xxl-auto{margin:auto}.mx-xxl-0{margin-right:0;margin-left:0}.mx-xxl-1{margin-right:.25rem;margin-left:.25rem}.mx-xxl-2{margin-right:.5rem;margin-left:.5rem}.mx-xxl-3{margin-right:1rem;margin-left:1rem}.mx-xxl-4{margin-right:1.5rem;margin-left:1.5rem}.mx-xxl-5{margin-right:3rem;margin-left:3rem}.mx-xxl-auto{margin-right:auto;margin-left:auto}.my-xxl-0{margin-top:0;margin-bottom:0}.my-xxl-1{margin-top:.25rem;margin-bottom:.25rem}.my-xxl-2{margin-top:.5rem;margin-bottom:.5rem}.my-xxl-3{margin-top:1rem;margin-bottom:1rem}.my-xxl-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-xxl-5{margin-top:3rem;margin-bottom:3rem}.my-xxl-auto{margin-top:auto;margin-bottom:auto}.mt-xxl-0{margin-top:0}.mt-xxl-1{margin-top:.25rem}.mt-xxl-2{margin-top:.5rem}.mt-xxl-3{margin-top:1rem}.mt-xxl-4{margin-top:1.5rem}.mt-xxl-5{margin-top:3rem}.mt-xxl-auto{margin-top:auto}.me-xxl-0{margin-right:0}.me-xxl-1{margin-right:.25rem}.me-xxl-2{margin-right:.5rem}.me-xxl-3{margin-right:1rem}.me-xxl-4{margin-right:1.5rem}.me-xxl-5{margin-right:3rem}.me-xxl-auto{margin-right:auto}.mb-xxl-0{margin-bottom:0}.mb-xxl-1{margin-bottom:.25rem}.mb-xxl-2{margin-bottom:.5rem}.mb-xxl-3{margin-bottom:1rem}.mb-xxl-4{margin-bottom:1.5rem}.mb-xxl-5{margin-bottom:3rem}.mb-xxl-auto{margin-bottom:auto}.ms-xxl-0{margin-left:0}.ms-xxl-1{margin-left:.25rem}.ms-xxl-2{margin-left:.5rem}.ms-xxl-3{margin-left:1rem}.ms-xxl-4{margin-left:1.5rem}.ms-xxl-5{margin-left:3rem}.ms-xxl-auto{margin-left:auto}.p-xxl-0{padding:0}.p-xxl-1{padding:.25rem}.p-xxl-2{padding:.5rem}.p-xxl-3{padding:1rem}.p-xxl-4{padding:1.5rem}.p-xxl-5{padding:3rem}.px-xxl-0{padding-right:0;padding-left:0}.px-xxl-1{padding-right:.25rem;padding-left:.25rem}.px-xxl-2{padding-right:.5rem;padding-left:.5rem}.px-xxl-3{padding-right:1rem;padding-left:1rem}.px-xxl-4{padding-right:1.5rem;padding-left:1.5rem}.px-xxl-5{padding-right:3rem;padding-left:3rem}.py-xxl-0{padding-top:0;padding-bottom:0}.py-xxl-1{padding-top:.25rem;padding-bottom:.25rem}.py-xxl-2{padding-top:.5rem;padding-bottom:.5rem}.py-xxl-3{padding-top:1rem;padding-bottom:1rem}.py-xxl-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-xxl-5{padding-top:3rem;padding-bottom:3rem}.pt-xxl-0{padding-top:0}.pt-xxl-1{padding-top:.25rem}.pt-xxl-2{padding-top:.5rem}.pt-xxl-3{padding-top:1rem}.pt-xxl-4{padding-top:1.5rem}.pt-xxl-5{padding-top:3rem}.pe-xxl-0{padding-right:0}.pe-xxl-1{padding-right:.25rem}.pe-xxl-2{padding-right:.5rem}.pe-xxl-3{padding-right:1rem}.pe-xxl-4{padding-right:1.5rem}.pe-xxl-5{padding-right:3rem}.pb-xxl-0{padding-bottom:0}.pb-xxl-1{padding-bottom:.25rem}.pb-xxl-2{padding-bottom:.5rem}.pb-xxl-3{padding-bottom:1rem}.pb-xxl-4{padding-bottom:1.5rem}.pb-xxl-5{padding-bottom:3rem}.ps-xxl-0{padding-left:0}.ps-xxl-1{padding-left:.25rem}.ps-xxl-2{padding-left:.5rem}.ps-xxl-3{padding-left:1rem}.ps-xxl-4{padding-left:1.5rem}.ps-xxl-5{padding-left:3rem}.gap-xxl-0{gap:0}.gap-xxl-1{gap:.25rem}.gap-xxl-2{gap:.5rem}.gap-xxl-3{gap:1rem}.gap-xxl-4{gap:1.5rem}.gap-xxl-5{gap:3rem}.row-gap-xxl-0{row-gap:0}.row-gap-xxl-1{row-gap:.25rem}.row-gap-xxl-2{row-gap:.5rem}.row-gap-xxl-3{row-gap:1rem}.row-gap-xxl-4{row-gap:1.5rem}.row-gap-xxl-5{row-gap:3rem}.column-gap-xxl-0{column-gap:0}.column-gap-xxl-1{column-gap:.25rem}.column-gap-xxl-2{column-gap:.5rem}.column-gap-xxl-3{column-gap:1rem}.column-gap-xxl-4{column-gap:1.5rem}.column-gap-xxl-5{column-gap:3rem}.text-xxl-start{text-align:left}.text-xxl-end{text-align:right}.text-xxl-center{text-align:center}}@media (min-width: 1200px){.fs-1{font-size:2.5rem}.fs-2{font-size:2rem}.fs-3{font-size:1.75rem}.fs-4{font-size:1.5rem}}@media print{.d-print-inline{display:inline}.d-print-inline-block{display:inline-block}.d-print-block{display:block}.d-print-grid{display:grid}.d-print-inline-grid{display:inline-grid}.d-print-table{display:table}.d-print-table-row{display:table-row}.d-print-table-cell{display:table-cell}.d-print-flex{display:flex}.d-print-inline-flex{display:inline-flex}.d-print-none{display:none}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:white;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f}.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515}.hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af}.hljs-doctag{color:gray}.hljs-attr{color:red}.hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}[data-bs-theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}[data-bs-theme=dark] code.hljs{padding:3px 5px}[data-bs-theme=dark] .hljs{background:#1E1E1E;color:#dcdcdc}[data-bs-theme=dark] .hljs-keyword,[data-bs-theme=dark] .hljs-literal,[data-bs-theme=dark] .hljs-symbol,[data-bs-theme=dark] .hljs-name{color:#569cd6}[data-bs-theme=dark] .hljs-link{color:#569cd6;text-decoration:underline}[data-bs-theme=dark] .hljs-built_in,[data-bs-theme=dark] .hljs-type{color:#4ec9b0}[data-bs-theme=dark] .hljs-number,[data-bs-theme=dark] .hljs-class{color:#b8d7a3}[data-bs-theme=dark] .hljs-string,[data-bs-theme=dark] .hljs-meta .hljs-string{color:#d69d85}[data-bs-theme=dark] .hljs-regexp,[data-bs-theme=dark] .hljs-template-tag{color:#9a5334}[data-bs-theme=dark] .hljs-subst,[data-bs-theme=dark] .hljs-function,[data-bs-theme=dark] .hljs-title,[data-bs-theme=dark] .hljs-params,[data-bs-theme=dark] .hljs-formula{color:#dcdcdc}[data-bs-theme=dark] .hljs-comment,[data-bs-theme=dark] .hljs-quote{color:#57a64a;font-style:italic}[data-bs-theme=dark] .hljs-doctag{color:#608b4e}[data-bs-theme=dark] .hljs-meta,[data-bs-theme=dark] .hljs-meta .hljs-keyword,[data-bs-theme=dark] .hljs-tag{color:#9b9b9b}[data-bs-theme=dark] .hljs-variable,[data-bs-theme=dark] .hljs-template-variable{color:#bd63c5}[data-bs-theme=dark] .hljs-attr,[data-bs-theme=dark] .hljs-attribute{color:#9cdcfe}[data-bs-theme=dark] .hljs-section{color:gold}[data-bs-theme=dark] .hljs-emphasis{font-style:italic}[data-bs-theme=dark] .hljs-strong{font-weight:700}[data-bs-theme=dark] .hljs-bullet,[data-bs-theme=dark] .hljs-selector-tag,[data-bs-theme=dark] .hljs-selector-id,[data-bs-theme=dark] .hljs-selector-class,[data-bs-theme=dark] .hljs-selector-attr,[data-bs-theme=dark] .hljs-selector-pseudo{color:#d7ba7d}[data-bs-theme=dark] .hljs-addition{background-color:#144212;display:inline-block;width:100%}[data-bs-theme=dark] .hljs-deletion{background-color:#600;display:inline-block;width:100%}.hljs{background-color:#f5f5f5}@media print{.hljs{overflow-x:hidden;text-wrap:pretty}}pre>code .line-highlight{background-color:#ff0}[data-bs-theme=dark] pre>code .line-highlight{background-color:#4a4a00}html{width:calc(100vw - var(--scrollbar-width));min-height:100vh;overflow-x:hidden}body,body[data-layout=landing]{width:calc(100vw - var(--scrollbar-width));min-height:100vh;display:flex;flex-direction:column}body>header,body[data-layout=landing]>header{display:flex;align-items:stretch}@media (min-width: 768px){body>header,body[data-layout=landing]>header{position:sticky;top:0;z-index:1030}}@media (min-width: 768px){body>header,body[data-layout=landing]>header{height:60px}}body>header>nav,body[data-layout=landing]>header>nav{flex:1}body>footer,body[data-layout=landing]>footer{font-size:14px;padding:1rem 0;height:60px}body>footer>div,body[data-layout=landing]>footer>div{display:flex;align-items:center}body>main,body[data-layout=landing]>main{display:flex;flex:1;padding-top:1.6rem;padding-bottom:2rem}body>main>.content,body[data-layout=landing]>main>.content{display:flex;flex-direction:column;width:100%}body>main>.content>:not(article),body[data-layout=landing]>main>.content>:not(article){display:none}body>main>.content>article,body[data-layout=landing]>main>.content>article{flex:1}@media (min-width: 768px){body>main>.content>article [id],body[data-layout=landing]>main>.content>article [id]{scroll-margin-top:60px}}body>main>:not(.content),body[data-layout=landing]>main>:not(.content){display:none}@media print{body>main,body[data-layout=landing]>main{padding:0!important}body>header,body>footer,body[data-layout=landing]>header,body[data-layout=landing]>footer{display:none}}@media not print{body[data-search]>main{display:none}body[data-search]>.search-results{display:block;flex:1;padding-top:1.6rem;padding-bottom:2rem}body:not([data-search])>.search-results{display:none}body:not([data-search])[data-layout=""]>main,body:not([data-search])[data-layout=conceptual]>main{padding-bottom:0}body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:.35;display:block;overflow:hidden;max-width:360px;max-height:calc(100vh - 60px - 1.6rem)}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{position:sticky;top:calc(60px + 1.6rem)}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:0}}body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-body,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-body{height:100%}body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{display:flex;flex-direction:column;flex:1;min-width:0;margin:0 3rem;padding-bottom:2rem}body:not([data-search])[data-layout=""]>main>.content>.actionbar,body:not([data-search])[data-layout=conceptual]>main>.content>.actionbar{display:flex;align-items:flex-start;margin-top:.5rem;min-height:40px}body:not([data-search])[data-layout=""]>main>.content article,body:not([data-search])[data-layout=conceptual]>main>.content article{flex:1}body:not([data-search])[data-layout=""]>main>.content>.contribution,body:not([data-search])[data-layout=""]>main>.content>.next-article,body:not([data-search])[data-layout=conceptual]>main>.content>.contribution,body:not([data-search])[data-layout=conceptual]>main>.content>.next-article{display:flex}@media (max-width: 991.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0 1rem}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0}}body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:block;width:230px;max-height:calc(100vh - 60px - 1.6rem);overflow-x:hidden;overflow-y:auto}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{position:sticky;top:calc(60px + 1.6rem)}}}@media only screen and (width <= 1140px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:none}}@media not print{body:not([data-search])[data-layout=chromeless]>header,body:not([data-search])[data-layout=chromeless]>footer{display:none}}.breadcrumb{font-size:14px}.breadcrumb a{text-decoration:none}.breadcrumb a:hover,.breadcrumb a:focus{text-decoration:underline}.next-article{display:flex}.next-article:not(:has(div)){border-top-width:0}.next-article:has(div){margin-top:3rem;padding-top:1rem}.next-article>div{flex:1}.next-article>div.next{text-align:right}.next-article>div>span{opacity:.66;font-size:14px}.next-article>div>a{display:block}.navbar{padding:0}.navbar .navbar-brand{display:flex;align-items:center}.navbar .navbar-nav{display:flex;flex-wrap:nowrap}.navbar #navbar{display:flex;flex:1;justify-content:flex-end}.navbar #navbar form{display:flex;position:relative;align-items:center}.navbar #navbar form>i.bi{position:absolute;left:.8rem;opacity:.5}.navbar #navbar form>input{padding-left:2.5rem}.navbar #navbar form.search{order:50}.navbar #navbar form.icons{margin-left:auto}@media (max-width: 767.98px){.navbar #navbar{flex-direction:column;align-items:flex-start}.navbar #navbar form{margin:1rem 0 0}.navbar #navbar form.search{align-self:stretch;order:30}.navbar #navbar form.icons{align-self:center;order:40;margin:1rem 0}}.affix{font-size:14px}.affix h5,.affix .h5{display:inline-block;font-weight:300;text-transform:uppercase;padding:1em 0 .5em;font-size:14px;letter-spacing:2px}.affix h6,.affix .h6{font-size:14px}.affix ul{flex-direction:column;list-style-type:none;padding-left:0;margin-left:0}.affix ul h6,.affix ul .h6{margin-top:1rem}.affix ul li{margin:.4rem 0}.affix ul li a{text-decoration:none}.affix ul li a:hover,.affix ul li a:focus{text-decoration:underline}.contribution{margin-top:2rem}.contribution a.edit-link{text-decoration:none}.contribution a.edit-link:hover,.contribution a.edit-link:focus{text-decoration:underline}.contribution a.edit-link:before{content:"\f4ca";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.toc{min-width:0;width:100%;height:100%;display:flex;flex-direction:column}.toc ul{font-size:14px;flex-direction:column;list-style-type:none;padding-left:0;overflow-wrap:break-word}.toc li{font-weight:400;margin:.6em 0;padding-left:.85rem;position:relative}.toc li>a{display:inline;text-decoration:none}.toc li>a:hover,.toc li>a:focus{text-decoration:underline}.toc li>ul{display:none}.toc li.expanded>ul{display:block}.toc .expand-stub:before{display:inline-block;width:.85rem;cursor:pointer;font-family:bootstrap-icons;font-size:.8em;content:"\f285";position:absolute;margin-top:.2em;margin-left:-.85rem;transition:transform .35s ease;transform-origin:.5em 50%}@media (prefers-reduced-motion){.toc .expand-stub:before{transition:none}}.toc li.expanded>.expand-stub:before{transform:rotate(90deg)}.toc span.name-only{font-weight:600;display:inline-block;margin:.4rem 0}.toc form.filter{display:flex;position:relative;align-items:center;margin-bottom:.5rem}.toc form.filter>i.bi{position:absolute;left:.6rem;opacity:.5}.toc form.filter>input{padding-left:2rem}.toc>.no-result{font-size:.9em;color:#6c757d}.toc a.pdf-link{text-decoration:none}.toc a.pdf-link:hover,.toc a.pdf-link:focus{text-decoration:underline}.toc a.pdf-link:before{content:"\f756";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}a.external[href]:after{font-family:bootstrap-icons;content:"\f1c5";font-size:.6rem;margin:0 .2em;display:inline-block}blockquote{border-style:solid;border-width:0 0 0 3px;border-color:#c4c8cb;margin:1.2em 0 2em;padding:0 .8em;display:block}[data-bs-theme=dark] blockquote{border-color:#41464b}.alert{break-inside:avoid}.alert h5,.alert .h5{text-transform:uppercase;font-weight:700;font-size:1rem}.alert h5:before,.alert .h5:before{font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.alert:not(:has(h5))>p:last-child{margin-block-end:0}.alert-info h5:before,.alert-info .h5:before{content:"\f431"}.alert-warning h5:before,.alert-warning .h5:before{content:"\f333"}.alert-danger h5:before,.alert-danger .h5:before{content:"\f623"}div.embeddedvideo{padding-top:56.25%;position:relative;width:100%;margin-bottom:1em}div.embeddedvideo iframe{position:absolute;inset:0;width:100%;height:100%}pre{position:relative}pre>.code-action{display:none;position:absolute;top:.25rem;right:.2rem}pre>.code-action .bi-check-lg{font-size:1.2rem}pre:hover>.code-action{display:block}.tabGroup{margin-bottom:1rem}.tabGroup>section{margin:0;padding:1rem;border-top:0;border-top-left-radius:0;border-top-right-radius:0}#search-results{line-height:1.8}#search-results>.search-list{font-size:.9em;color:#6c757d}#search-results>.sr-items{flex:1}#search-results>.sr-items .sr-item{margin-bottom:1.5em}#search-results>.sr-items .sr-item>.item-title{font-size:x-large}#search-results>.sr-items .sr-item>.item-href{color:#093;font-size:small}#search-results>.sr-items .sr-item>.item-brief{font-size:small}body[data-yaml-mime=ManagedReference] article h1[data-uid],body[data-yaml-mime=ManagedReference] article [data-uid].h1,body[data-yaml-mime=ApiPage] article h1[data-uid],body[data-yaml-mime=ApiPage] article [data-uid].h1{position:relative;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h3[data-uid],body[data-yaml-mime=ManagedReference] article [data-uid].h3,body[data-yaml-mime=ApiPage] article h3[data-uid],body[data-yaml-mime=ApiPage] article [data-uid].h3{position:relative;font-weight:400;margin-top:3rem;padding-bottom:5px;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h2.section,body[data-yaml-mime=ManagedReference] article .section.h2,body[data-yaml-mime=ApiPage] article h2.section,body[data-yaml-mime=ApiPage] article .section.h2{margin-top:3rem}body[data-yaml-mime=ManagedReference] article h2.section+h3[data-uid],body[data-yaml-mime=ManagedReference] article .section.h2+h3[data-uid],body[data-yaml-mime=ManagedReference] article h2.section+[data-uid].h3,body[data-yaml-mime=ManagedReference] article .section.h2+[data-uid].h3,body[data-yaml-mime=ManagedReference] article h2.section+a+h3[data-uid],body[data-yaml-mime=ManagedReference] article .section.h2+a+h3[data-uid],body[data-yaml-mime=ManagedReference] article h2.section+a+[data-uid].h3,body[data-yaml-mime=ManagedReference] article .section.h2+a+[data-uid].h3,body[data-yaml-mime=ApiPage] article h2.section+h3[data-uid],body[data-yaml-mime=ApiPage] article .section.h2+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+[data-uid].h3,body[data-yaml-mime=ApiPage] article .section.h2+[data-uid].h3,body[data-yaml-mime=ApiPage] article h2.section+a+h3[data-uid],body[data-yaml-mime=ApiPage] article .section.h2+a+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+a+[data-uid].h3,body[data-yaml-mime=ApiPage] article .section.h2+a+[data-uid].h3{margin-top:1rem}body[data-yaml-mime=ManagedReference] article h4.section,body[data-yaml-mime=ManagedReference] article .section.h4,body[data-yaml-mime=ApiPage] article h4.section,body[data-yaml-mime=ApiPage] article .section.h4{font-weight:300;margin-top:1.6rem}body[data-yaml-mime=ManagedReference] article dl>dt,body[data-yaml-mime=ApiPage] article dl>dt{font-weight:400}body[data-yaml-mime=ManagedReference] article dl>dd,body[data-yaml-mime=ApiPage] article dl>dd{margin-left:1rem}body[data-yaml-mime=ManagedReference] article dl.typelist>dt,body[data-yaml-mime=ApiPage] article dl.typelist>dt{font-weight:600}body[data-yaml-mime=ManagedReference] article dl.typelist>dd,body[data-yaml-mime=ApiPage] article dl.typelist>dd{margin-left:0}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div{display:inline-block}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div:not(:last-child):after{content:", "}body[data-yaml-mime=ManagedReference] article dl.typelist.inheritance>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist.inheritance>dd>div:not(:last-child):after{font-family:bootstrap-icons;content:"\f12c";position:relative;top:.2em;opacity:.8}body[data-yaml-mime=ManagedReference] article dl.parameters>dt,body[data-yaml-mime=ApiPage] article dl.parameters>dt{margin:1em 0}body[data-yaml-mime=ManagedReference] article dl.parameters>dt>code,body[data-yaml-mime=ApiPage] article dl.parameters>dt>code{margin-right:.2em;font-size:1em}body[data-yaml-mime=ManagedReference] article div.facts,body[data-yaml-mime=ApiPage] article div.facts{font-size:14px;margin:2rem 0 1rem}body[data-yaml-mime=ManagedReference] article div.facts>dl,body[data-yaml-mime=ApiPage] article div.facts>dl{margin:0}body[data-yaml-mime=ManagedReference] article div.facts>dl>dd,body[data-yaml-mime=ApiPage] article div.facts>dl>dd{margin-left:.25rem;display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt,body[data-yaml-mime=ApiPage] article div.facts>dl>dt{display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt:after,body[data-yaml-mime=ApiPage] article div.facts>dl>dt:after{content:":"}body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{position:absolute;right:0;bottom:.2rem;font-size:1.2rem}@media print{body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{display:none}}body[data-yaml-mime=ManagedReference] article td.term,body[data-yaml-mime=ApiPage] article td.term{font-weight:600}body[data-yaml-mime=ManagedReference] article summary,body[data-yaml-mime=ApiPage] article summary{display:block;cursor:inherit}body[data-yaml-mime=ManagedReference] article li>span.term,body[data-yaml-mime=ApiPage] article li>span.term{font-weight:600}body[data-yaml-mime=ManagedReference] article li>span.term:after,body[data-yaml-mime=ApiPage] article li>span.term:after{content:"-";margin:0 .5em}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.xref,.text-break{word-wrap:break-word;word-break:break-word}.divider{margin:0 5px;color:#ccc}article span.small.pull-right{float:right}article img{max-width:100%;height:auto}.codewrapper{position:relative}.sample-response .response-content{max-height:200px}@media (width <= 768px){#mobile-indicator{display:block}.mobile-hide{display:none}h1:before,.h1:before,h2:before,.h2:before,h3:before,.h3:before,h4:before,.h4:before{content:"";display:none}}@media print{@page{margin:.4in}}.pdftoc ul{list-style:none}.pdftoc a{display:flex;text-decoration:none;color:var(--bs-body-color)}.pdftoc a .spacer{flex:1;border-bottom:1px dashed var(--bs-body-color);margin:.4em} +@charset "UTF-8";@font-face{font-display:block;font-family:bootstrap-icons;src:url("./bootstrap-icons-UDRIHJCM.woff2?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff2"),url("./bootstrap-icons-BNVXHMH5.woff?24e3eb84d0bcaf83d77f904c78ac1f47") format("woff")}.bi:before,[class^=bi-]:before,[class*=" bi-"]:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123:before{content:"\f67f"}.bi-alarm-fill:before{content:"\f101"}.bi-alarm:before{content:"\f102"}.bi-align-bottom:before{content:"\f103"}.bi-align-center:before{content:"\f104"}.bi-align-end:before{content:"\f105"}.bi-align-middle:before{content:"\f106"}.bi-align-start:before{content:"\f107"}.bi-align-top:before{content:"\f108"}.bi-alt:before{content:"\f109"}.bi-app-indicator:before{content:"\f10a"}.bi-app:before{content:"\f10b"}.bi-archive-fill:before{content:"\f10c"}.bi-archive:before{content:"\f10d"}.bi-arrow-90deg-down:before{content:"\f10e"}.bi-arrow-90deg-left:before{content:"\f10f"}.bi-arrow-90deg-right:before{content:"\f110"}.bi-arrow-90deg-up:before{content:"\f111"}.bi-arrow-bar-down:before{content:"\f112"}.bi-arrow-bar-left:before{content:"\f113"}.bi-arrow-bar-right:before{content:"\f114"}.bi-arrow-bar-up:before{content:"\f115"}.bi-arrow-clockwise:before{content:"\f116"}.bi-arrow-counterclockwise:before{content:"\f117"}.bi-arrow-down-circle-fill:before{content:"\f118"}.bi-arrow-down-circle:before{content:"\f119"}.bi-arrow-down-left-circle-fill:before{content:"\f11a"}.bi-arrow-down-left-circle:before{content:"\f11b"}.bi-arrow-down-left-square-fill:before{content:"\f11c"}.bi-arrow-down-left-square:before{content:"\f11d"}.bi-arrow-down-left:before{content:"\f11e"}.bi-arrow-down-right-circle-fill:before{content:"\f11f"}.bi-arrow-down-right-circle:before{content:"\f120"}.bi-arrow-down-right-square-fill:before{content:"\f121"}.bi-arrow-down-right-square:before{content:"\f122"}.bi-arrow-down-right:before{content:"\f123"}.bi-arrow-down-short:before{content:"\f124"}.bi-arrow-down-square-fill:before{content:"\f125"}.bi-arrow-down-square:before{content:"\f126"}.bi-arrow-down-up:before{content:"\f127"}.bi-arrow-down:before{content:"\f128"}.bi-arrow-left-circle-fill:before{content:"\f129"}.bi-arrow-left-circle:before{content:"\f12a"}.bi-arrow-left-right:before{content:"\f12b"}.bi-arrow-left-short:before{content:"\f12c"}.bi-arrow-left-square-fill:before{content:"\f12d"}.bi-arrow-left-square:before{content:"\f12e"}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-return-left:before{content:"\f131"}.bi-arrow-return-right:before{content:"\f132"}.bi-arrow-right-circle-fill:before{content:"\f133"}.bi-arrow-right-circle:before{content:"\f134"}.bi-arrow-right-short:before{content:"\f135"}.bi-arrow-right-square-fill:before{content:"\f136"}.bi-arrow-right-square:before{content:"\f137"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-circle-fill:before{content:"\f139"}.bi-arrow-up-circle:before{content:"\f13a"}.bi-arrow-up-left-circle-fill:before{content:"\f13b"}.bi-arrow-up-left-circle:before{content:"\f13c"}.bi-arrow-up-left-square-fill:before{content:"\f13d"}.bi-arrow-up-left-square:before{content:"\f13e"}.bi-arrow-up-left:before{content:"\f13f"}.bi-arrow-up-right-circle-fill:before{content:"\f140"}.bi-arrow-up-right-circle:before{content:"\f141"}.bi-arrow-up-right-square-fill:before{content:"\f142"}.bi-arrow-up-right-square:before{content:"\f143"}.bi-arrow-up-right:before{content:"\f144"}.bi-arrow-up-short:before{content:"\f145"}.bi-arrow-up-square-fill:before{content:"\f146"}.bi-arrow-up-square:before{content:"\f147"}.bi-arrow-up:before{content:"\f148"}.bi-arrows-angle-contract:before{content:"\f149"}.bi-arrows-angle-expand:before{content:"\f14a"}.bi-arrows-collapse:before{content:"\f14b"}.bi-arrows-expand:before{content:"\f14c"}.bi-arrows-fullscreen:before{content:"\f14d"}.bi-arrows-move:before{content:"\f14e"}.bi-aspect-ratio-fill:before{content:"\f14f"}.bi-aspect-ratio:before{content:"\f150"}.bi-asterisk:before{content:"\f151"}.bi-at:before{content:"\f152"}.bi-award-fill:before{content:"\f153"}.bi-award:before{content:"\f154"}.bi-back:before{content:"\f155"}.bi-backspace-fill:before{content:"\f156"}.bi-backspace-reverse-fill:before{content:"\f157"}.bi-backspace-reverse:before{content:"\f158"}.bi-backspace:before{content:"\f159"}.bi-badge-3d-fill:before{content:"\f15a"}.bi-badge-3d:before{content:"\f15b"}.bi-badge-4k-fill:before{content:"\f15c"}.bi-badge-4k:before{content:"\f15d"}.bi-badge-8k-fill:before{content:"\f15e"}.bi-badge-8k:before{content:"\f15f"}.bi-badge-ad-fill:before{content:"\f160"}.bi-badge-ad:before{content:"\f161"}.bi-badge-ar-fill:before{content:"\f162"}.bi-badge-ar:before{content:"\f163"}.bi-badge-cc-fill:before{content:"\f164"}.bi-badge-cc:before{content:"\f165"}.bi-badge-hd-fill:before{content:"\f166"}.bi-badge-hd:before{content:"\f167"}.bi-badge-tm-fill:before{content:"\f168"}.bi-badge-tm:before{content:"\f169"}.bi-badge-vo-fill:before{content:"\f16a"}.bi-badge-vo:before{content:"\f16b"}.bi-badge-vr-fill:before{content:"\f16c"}.bi-badge-vr:before{content:"\f16d"}.bi-badge-wc-fill:before{content:"\f16e"}.bi-badge-wc:before{content:"\f16f"}.bi-bag-check-fill:before{content:"\f170"}.bi-bag-check:before{content:"\f171"}.bi-bag-dash-fill:before{content:"\f172"}.bi-bag-dash:before{content:"\f173"}.bi-bag-fill:before{content:"\f174"}.bi-bag-plus-fill:before{content:"\f175"}.bi-bag-plus:before{content:"\f176"}.bi-bag-x-fill:before{content:"\f177"}.bi-bag-x:before{content:"\f178"}.bi-bag:before{content:"\f179"}.bi-bar-chart-fill:before{content:"\f17a"}.bi-bar-chart-line-fill:before{content:"\f17b"}.bi-bar-chart-line:before{content:"\f17c"}.bi-bar-chart-steps:before{content:"\f17d"}.bi-bar-chart:before{content:"\f17e"}.bi-basket-fill:before{content:"\f17f"}.bi-basket:before{content:"\f180"}.bi-basket2-fill:before{content:"\f181"}.bi-basket2:before{content:"\f182"}.bi-basket3-fill:before{content:"\f183"}.bi-basket3:before{content:"\f184"}.bi-battery-charging:before{content:"\f185"}.bi-battery-full:before{content:"\f186"}.bi-battery-half:before{content:"\f187"}.bi-battery:before{content:"\f188"}.bi-bell-fill:before{content:"\f189"}.bi-bell:before{content:"\f18a"}.bi-bezier:before{content:"\f18b"}.bi-bezier2:before{content:"\f18c"}.bi-bicycle:before{content:"\f18d"}.bi-binoculars-fill:before{content:"\f18e"}.bi-binoculars:before{content:"\f18f"}.bi-blockquote-left:before{content:"\f190"}.bi-blockquote-right:before{content:"\f191"}.bi-book-fill:before{content:"\f192"}.bi-book-half:before{content:"\f193"}.bi-book:before{content:"\f194"}.bi-bookmark-check-fill:before{content:"\f195"}.bi-bookmark-check:before{content:"\f196"}.bi-bookmark-dash-fill:before{content:"\f197"}.bi-bookmark-dash:before{content:"\f198"}.bi-bookmark-fill:before{content:"\f199"}.bi-bookmark-heart-fill:before{content:"\f19a"}.bi-bookmark-heart:before{content:"\f19b"}.bi-bookmark-plus-fill:before{content:"\f19c"}.bi-bookmark-plus:before{content:"\f19d"}.bi-bookmark-star-fill:before{content:"\f19e"}.bi-bookmark-star:before{content:"\f19f"}.bi-bookmark-x-fill:before{content:"\f1a0"}.bi-bookmark-x:before{content:"\f1a1"}.bi-bookmark:before{content:"\f1a2"}.bi-bookmarks-fill:before{content:"\f1a3"}.bi-bookmarks:before{content:"\f1a4"}.bi-bookshelf:before{content:"\f1a5"}.bi-bootstrap-fill:before{content:"\f1a6"}.bi-bootstrap-reboot:before{content:"\f1a7"}.bi-bootstrap:before{content:"\f1a8"}.bi-border-all:before{content:"\f1a9"}.bi-border-bottom:before{content:"\f1aa"}.bi-border-center:before{content:"\f1ab"}.bi-border-inner:before{content:"\f1ac"}.bi-border-left:before{content:"\f1ad"}.bi-border-middle:before{content:"\f1ae"}.bi-border-outer:before{content:"\f1af"}.bi-border-right:before{content:"\f1b0"}.bi-border-style:before{content:"\f1b1"}.bi-border-top:before{content:"\f1b2"}.bi-border-width:before{content:"\f1b3"}.bi-border:before{content:"\f1b4"}.bi-bounding-box-circles:before{content:"\f1b5"}.bi-bounding-box:before{content:"\f1b6"}.bi-box-arrow-down-left:before{content:"\f1b7"}.bi-box-arrow-down-right:before{content:"\f1b8"}.bi-box-arrow-down:before{content:"\f1b9"}.bi-box-arrow-in-down-left:before{content:"\f1ba"}.bi-box-arrow-in-down-right:before{content:"\f1bb"}.bi-box-arrow-in-down:before{content:"\f1bc"}.bi-box-arrow-in-left:before{content:"\f1bd"}.bi-box-arrow-in-right:before{content:"\f1be"}.bi-box-arrow-in-up-left:before{content:"\f1bf"}.bi-box-arrow-in-up-right:before{content:"\f1c0"}.bi-box-arrow-in-up:before{content:"\f1c1"}.bi-box-arrow-left:before{content:"\f1c2"}.bi-box-arrow-right:before{content:"\f1c3"}.bi-box-arrow-up-left:before{content:"\f1c4"}.bi-box-arrow-up-right:before{content:"\f1c5"}.bi-box-arrow-up:before{content:"\f1c6"}.bi-box-seam:before{content:"\f1c7"}.bi-box:before{content:"\f1c8"}.bi-braces:before{content:"\f1c9"}.bi-bricks:before{content:"\f1ca"}.bi-briefcase-fill:before{content:"\f1cb"}.bi-briefcase:before{content:"\f1cc"}.bi-brightness-alt-high-fill:before{content:"\f1cd"}.bi-brightness-alt-high:before{content:"\f1ce"}.bi-brightness-alt-low-fill:before{content:"\f1cf"}.bi-brightness-alt-low:before{content:"\f1d0"}.bi-brightness-high-fill:before{content:"\f1d1"}.bi-brightness-high:before{content:"\f1d2"}.bi-brightness-low-fill:before{content:"\f1d3"}.bi-brightness-low:before{content:"\f1d4"}.bi-broadcast-pin:before{content:"\f1d5"}.bi-broadcast:before{content:"\f1d6"}.bi-brush-fill:before{content:"\f1d7"}.bi-brush:before{content:"\f1d8"}.bi-bucket-fill:before{content:"\f1d9"}.bi-bucket:before{content:"\f1da"}.bi-bug-fill:before{content:"\f1db"}.bi-bug:before{content:"\f1dc"}.bi-building:before{content:"\f1dd"}.bi-bullseye:before{content:"\f1de"}.bi-calculator-fill:before{content:"\f1df"}.bi-calculator:before{content:"\f1e0"}.bi-calendar-check-fill:before{content:"\f1e1"}.bi-calendar-check:before{content:"\f1e2"}.bi-calendar-date-fill:before{content:"\f1e3"}.bi-calendar-date:before{content:"\f1e4"}.bi-calendar-day-fill:before{content:"\f1e5"}.bi-calendar-day:before{content:"\f1e6"}.bi-calendar-event-fill:before{content:"\f1e7"}.bi-calendar-event:before{content:"\f1e8"}.bi-calendar-fill:before{content:"\f1e9"}.bi-calendar-minus-fill:before{content:"\f1ea"}.bi-calendar-minus:before{content:"\f1eb"}.bi-calendar-month-fill:before{content:"\f1ec"}.bi-calendar-month:before{content:"\f1ed"}.bi-calendar-plus-fill:before{content:"\f1ee"}.bi-calendar-plus:before{content:"\f1ef"}.bi-calendar-range-fill:before{content:"\f1f0"}.bi-calendar-range:before{content:"\f1f1"}.bi-calendar-week-fill:before{content:"\f1f2"}.bi-calendar-week:before{content:"\f1f3"}.bi-calendar-x-fill:before{content:"\f1f4"}.bi-calendar-x:before{content:"\f1f5"}.bi-calendar:before{content:"\f1f6"}.bi-calendar2-check-fill:before{content:"\f1f7"}.bi-calendar2-check:before{content:"\f1f8"}.bi-calendar2-date-fill:before{content:"\f1f9"}.bi-calendar2-date:before{content:"\f1fa"}.bi-calendar2-day-fill:before{content:"\f1fb"}.bi-calendar2-day:before{content:"\f1fc"}.bi-calendar2-event-fill:before{content:"\f1fd"}.bi-calendar2-event:before{content:"\f1fe"}.bi-calendar2-fill:before{content:"\f1ff"}.bi-calendar2-minus-fill:before{content:"\f200"}.bi-calendar2-minus:before{content:"\f201"}.bi-calendar2-month-fill:before{content:"\f202"}.bi-calendar2-month:before{content:"\f203"}.bi-calendar2-plus-fill:before{content:"\f204"}.bi-calendar2-plus:before{content:"\f205"}.bi-calendar2-range-fill:before{content:"\f206"}.bi-calendar2-range:before{content:"\f207"}.bi-calendar2-week-fill:before{content:"\f208"}.bi-calendar2-week:before{content:"\f209"}.bi-calendar2-x-fill:before{content:"\f20a"}.bi-calendar2-x:before{content:"\f20b"}.bi-calendar2:before{content:"\f20c"}.bi-calendar3-event-fill:before{content:"\f20d"}.bi-calendar3-event:before{content:"\f20e"}.bi-calendar3-fill:before{content:"\f20f"}.bi-calendar3-range-fill:before{content:"\f210"}.bi-calendar3-range:before{content:"\f211"}.bi-calendar3-week-fill:before{content:"\f212"}.bi-calendar3-week:before{content:"\f213"}.bi-calendar3:before{content:"\f214"}.bi-calendar4-event:before{content:"\f215"}.bi-calendar4-range:before{content:"\f216"}.bi-calendar4-week:before{content:"\f217"}.bi-calendar4:before{content:"\f218"}.bi-camera-fill:before{content:"\f219"}.bi-camera-reels-fill:before{content:"\f21a"}.bi-camera-reels:before{content:"\f21b"}.bi-camera-video-fill:before{content:"\f21c"}.bi-camera-video-off-fill:before{content:"\f21d"}.bi-camera-video-off:before{content:"\f21e"}.bi-camera-video:before{content:"\f21f"}.bi-camera:before{content:"\f220"}.bi-camera2:before{content:"\f221"}.bi-capslock-fill:before{content:"\f222"}.bi-capslock:before{content:"\f223"}.bi-card-checklist:before{content:"\f224"}.bi-card-heading:before{content:"\f225"}.bi-card-image:before{content:"\f226"}.bi-card-list:before{content:"\f227"}.bi-card-text:before{content:"\f228"}.bi-caret-down-fill:before{content:"\f229"}.bi-caret-down-square-fill:before{content:"\f22a"}.bi-caret-down-square:before{content:"\f22b"}.bi-caret-down:before{content:"\f22c"}.bi-caret-left-fill:before{content:"\f22d"}.bi-caret-left-square-fill:before{content:"\f22e"}.bi-caret-left-square:before{content:"\f22f"}.bi-caret-left:before{content:"\f230"}.bi-caret-right-fill:before{content:"\f231"}.bi-caret-right-square-fill:before{content:"\f232"}.bi-caret-right-square:before{content:"\f233"}.bi-caret-right:before{content:"\f234"}.bi-caret-up-fill:before{content:"\f235"}.bi-caret-up-square-fill:before{content:"\f236"}.bi-caret-up-square:before{content:"\f237"}.bi-caret-up:before{content:"\f238"}.bi-cart-check-fill:before{content:"\f239"}.bi-cart-check:before{content:"\f23a"}.bi-cart-dash-fill:before{content:"\f23b"}.bi-cart-dash:before{content:"\f23c"}.bi-cart-fill:before{content:"\f23d"}.bi-cart-plus-fill:before{content:"\f23e"}.bi-cart-plus:before{content:"\f23f"}.bi-cart-x-fill:before{content:"\f240"}.bi-cart-x:before{content:"\f241"}.bi-cart:before{content:"\f242"}.bi-cart2:before{content:"\f243"}.bi-cart3:before{content:"\f244"}.bi-cart4:before{content:"\f245"}.bi-cash-stack:before{content:"\f246"}.bi-cash:before{content:"\f247"}.bi-cast:before{content:"\f248"}.bi-chat-dots-fill:before{content:"\f249"}.bi-chat-dots:before{content:"\f24a"}.bi-chat-fill:before{content:"\f24b"}.bi-chat-left-dots-fill:before{content:"\f24c"}.bi-chat-left-dots:before{content:"\f24d"}.bi-chat-left-fill:before{content:"\f24e"}.bi-chat-left-quote-fill:before{content:"\f24f"}.bi-chat-left-quote:before{content:"\f250"}.bi-chat-left-text-fill:before{content:"\f251"}.bi-chat-left-text:before{content:"\f252"}.bi-chat-left:before{content:"\f253"}.bi-chat-quote-fill:before{content:"\f254"}.bi-chat-quote:before{content:"\f255"}.bi-chat-right-dots-fill:before{content:"\f256"}.bi-chat-right-dots:before{content:"\f257"}.bi-chat-right-fill:before{content:"\f258"}.bi-chat-right-quote-fill:before{content:"\f259"}.bi-chat-right-quote:before{content:"\f25a"}.bi-chat-right-text-fill:before{content:"\f25b"}.bi-chat-right-text:before{content:"\f25c"}.bi-chat-right:before{content:"\f25d"}.bi-chat-square-dots-fill:before{content:"\f25e"}.bi-chat-square-dots:before{content:"\f25f"}.bi-chat-square-fill:before{content:"\f260"}.bi-chat-square-quote-fill:before{content:"\f261"}.bi-chat-square-quote:before{content:"\f262"}.bi-chat-square-text-fill:before{content:"\f263"}.bi-chat-square-text:before{content:"\f264"}.bi-chat-square:before{content:"\f265"}.bi-chat-text-fill:before{content:"\f266"}.bi-chat-text:before{content:"\f267"}.bi-chat:before{content:"\f268"}.bi-check-all:before{content:"\f269"}.bi-check-circle-fill:before{content:"\f26a"}.bi-check-circle:before{content:"\f26b"}.bi-check-square-fill:before{content:"\f26c"}.bi-check-square:before{content:"\f26d"}.bi-check:before{content:"\f26e"}.bi-check2-all:before{content:"\f26f"}.bi-check2-circle:before{content:"\f270"}.bi-check2-square:before{content:"\f271"}.bi-check2:before{content:"\f272"}.bi-chevron-bar-contract:before{content:"\f273"}.bi-chevron-bar-down:before{content:"\f274"}.bi-chevron-bar-expand:before{content:"\f275"}.bi-chevron-bar-left:before{content:"\f276"}.bi-chevron-bar-right:before{content:"\f277"}.bi-chevron-bar-up:before{content:"\f278"}.bi-chevron-compact-down:before{content:"\f279"}.bi-chevron-compact-left:before{content:"\f27a"}.bi-chevron-compact-right:before{content:"\f27b"}.bi-chevron-compact-up:before{content:"\f27c"}.bi-chevron-contract:before{content:"\f27d"}.bi-chevron-double-down:before{content:"\f27e"}.bi-chevron-double-left:before{content:"\f27f"}.bi-chevron-double-right:before{content:"\f280"}.bi-chevron-double-up:before{content:"\f281"}.bi-chevron-down:before{content:"\f282"}.bi-chevron-expand:before{content:"\f283"}.bi-chevron-left:before{content:"\f284"}.bi-chevron-right:before{content:"\f285"}.bi-chevron-up:before{content:"\f286"}.bi-circle-fill:before{content:"\f287"}.bi-circle-half:before{content:"\f288"}.bi-circle-square:before{content:"\f289"}.bi-circle:before{content:"\f28a"}.bi-clipboard-check:before{content:"\f28b"}.bi-clipboard-data:before{content:"\f28c"}.bi-clipboard-minus:before{content:"\f28d"}.bi-clipboard-plus:before{content:"\f28e"}.bi-clipboard-x:before{content:"\f28f"}.bi-clipboard:before{content:"\f290"}.bi-clock-fill:before{content:"\f291"}.bi-clock-history:before{content:"\f292"}.bi-clock:before{content:"\f293"}.bi-cloud-arrow-down-fill:before{content:"\f294"}.bi-cloud-arrow-down:before{content:"\f295"}.bi-cloud-arrow-up-fill:before{content:"\f296"}.bi-cloud-arrow-up:before{content:"\f297"}.bi-cloud-check-fill:before{content:"\f298"}.bi-cloud-check:before{content:"\f299"}.bi-cloud-download-fill:before{content:"\f29a"}.bi-cloud-download:before{content:"\f29b"}.bi-cloud-drizzle-fill:before{content:"\f29c"}.bi-cloud-drizzle:before{content:"\f29d"}.bi-cloud-fill:before{content:"\f29e"}.bi-cloud-fog-fill:before{content:"\f29f"}.bi-cloud-fog:before{content:"\f2a0"}.bi-cloud-fog2-fill:before{content:"\f2a1"}.bi-cloud-fog2:before{content:"\f2a2"}.bi-cloud-hail-fill:before{content:"\f2a3"}.bi-cloud-hail:before{content:"\f2a4"}.bi-cloud-haze-fill:before{content:"\f2a6"}.bi-cloud-haze:before{content:"\f2a7"}.bi-cloud-haze2-fill:before{content:"\f2a8"}.bi-cloud-lightning-fill:before{content:"\f2a9"}.bi-cloud-lightning-rain-fill:before{content:"\f2aa"}.bi-cloud-lightning-rain:before{content:"\f2ab"}.bi-cloud-lightning:before{content:"\f2ac"}.bi-cloud-minus-fill:before{content:"\f2ad"}.bi-cloud-minus:before{content:"\f2ae"}.bi-cloud-moon-fill:before{content:"\f2af"}.bi-cloud-moon:before{content:"\f2b0"}.bi-cloud-plus-fill:before{content:"\f2b1"}.bi-cloud-plus:before{content:"\f2b2"}.bi-cloud-rain-fill:before{content:"\f2b3"}.bi-cloud-rain-heavy-fill:before{content:"\f2b4"}.bi-cloud-rain-heavy:before{content:"\f2b5"}.bi-cloud-rain:before{content:"\f2b6"}.bi-cloud-slash-fill:before{content:"\f2b7"}.bi-cloud-slash:before{content:"\f2b8"}.bi-cloud-sleet-fill:before{content:"\f2b9"}.bi-cloud-sleet:before{content:"\f2ba"}.bi-cloud-snow-fill:before{content:"\f2bb"}.bi-cloud-snow:before{content:"\f2bc"}.bi-cloud-sun-fill:before{content:"\f2bd"}.bi-cloud-sun:before{content:"\f2be"}.bi-cloud-upload-fill:before{content:"\f2bf"}.bi-cloud-upload:before{content:"\f2c0"}.bi-cloud:before{content:"\f2c1"}.bi-clouds-fill:before{content:"\f2c2"}.bi-clouds:before{content:"\f2c3"}.bi-cloudy-fill:before{content:"\f2c4"}.bi-cloudy:before{content:"\f2c5"}.bi-code-slash:before{content:"\f2c6"}.bi-code-square:before{content:"\f2c7"}.bi-code:before{content:"\f2c8"}.bi-collection-fill:before{content:"\f2c9"}.bi-collection-play-fill:before{content:"\f2ca"}.bi-collection-play:before{content:"\f2cb"}.bi-collection:before{content:"\f2cc"}.bi-columns-gap:before{content:"\f2cd"}.bi-columns:before{content:"\f2ce"}.bi-command:before{content:"\f2cf"}.bi-compass-fill:before{content:"\f2d0"}.bi-compass:before{content:"\f2d1"}.bi-cone-striped:before{content:"\f2d2"}.bi-cone:before{content:"\f2d3"}.bi-controller:before{content:"\f2d4"}.bi-cpu-fill:before{content:"\f2d5"}.bi-cpu:before{content:"\f2d6"}.bi-credit-card-2-back-fill:before{content:"\f2d7"}.bi-credit-card-2-back:before{content:"\f2d8"}.bi-credit-card-2-front-fill:before{content:"\f2d9"}.bi-credit-card-2-front:before{content:"\f2da"}.bi-credit-card-fill:before{content:"\f2db"}.bi-credit-card:before{content:"\f2dc"}.bi-crop:before{content:"\f2dd"}.bi-cup-fill:before{content:"\f2de"}.bi-cup-straw:before{content:"\f2df"}.bi-cup:before{content:"\f2e0"}.bi-cursor-fill:before{content:"\f2e1"}.bi-cursor-text:before{content:"\f2e2"}.bi-cursor:before{content:"\f2e3"}.bi-dash-circle-dotted:before{content:"\f2e4"}.bi-dash-circle-fill:before{content:"\f2e5"}.bi-dash-circle:before{content:"\f2e6"}.bi-dash-square-dotted:before{content:"\f2e7"}.bi-dash-square-fill:before{content:"\f2e8"}.bi-dash-square:before{content:"\f2e9"}.bi-dash:before{content:"\f2ea"}.bi-diagram-2-fill:before{content:"\f2eb"}.bi-diagram-2:before{content:"\f2ec"}.bi-diagram-3-fill:before{content:"\f2ed"}.bi-diagram-3:before{content:"\f2ee"}.bi-diamond-fill:before{content:"\f2ef"}.bi-diamond-half:before{content:"\f2f0"}.bi-diamond:before{content:"\f2f1"}.bi-dice-1-fill:before{content:"\f2f2"}.bi-dice-1:before{content:"\f2f3"}.bi-dice-2-fill:before{content:"\f2f4"}.bi-dice-2:before{content:"\f2f5"}.bi-dice-3-fill:before{content:"\f2f6"}.bi-dice-3:before{content:"\f2f7"}.bi-dice-4-fill:before{content:"\f2f8"}.bi-dice-4:before{content:"\f2f9"}.bi-dice-5-fill:before{content:"\f2fa"}.bi-dice-5:before{content:"\f2fb"}.bi-dice-6-fill:before{content:"\f2fc"}.bi-dice-6:before{content:"\f2fd"}.bi-disc-fill:before{content:"\f2fe"}.bi-disc:before{content:"\f2ff"}.bi-discord:before{content:"\f300"}.bi-display-fill:before{content:"\f301"}.bi-display:before{content:"\f302"}.bi-distribute-horizontal:before{content:"\f303"}.bi-distribute-vertical:before{content:"\f304"}.bi-door-closed-fill:before{content:"\f305"}.bi-door-closed:before{content:"\f306"}.bi-door-open-fill:before{content:"\f307"}.bi-door-open:before{content:"\f308"}.bi-dot:before{content:"\f309"}.bi-download:before{content:"\f30a"}.bi-droplet-fill:before{content:"\f30b"}.bi-droplet-half:before{content:"\f30c"}.bi-droplet:before{content:"\f30d"}.bi-earbuds:before{content:"\f30e"}.bi-easel-fill:before{content:"\f30f"}.bi-easel:before{content:"\f310"}.bi-egg-fill:before{content:"\f311"}.bi-egg-fried:before{content:"\f312"}.bi-egg:before{content:"\f313"}.bi-eject-fill:before{content:"\f314"}.bi-eject:before{content:"\f315"}.bi-emoji-angry-fill:before{content:"\f316"}.bi-emoji-angry:before{content:"\f317"}.bi-emoji-dizzy-fill:before{content:"\f318"}.bi-emoji-dizzy:before{content:"\f319"}.bi-emoji-expressionless-fill:before{content:"\f31a"}.bi-emoji-expressionless:before{content:"\f31b"}.bi-emoji-frown-fill:before{content:"\f31c"}.bi-emoji-frown:before{content:"\f31d"}.bi-emoji-heart-eyes-fill:before{content:"\f31e"}.bi-emoji-heart-eyes:before{content:"\f31f"}.bi-emoji-laughing-fill:before{content:"\f320"}.bi-emoji-laughing:before{content:"\f321"}.bi-emoji-neutral-fill:before{content:"\f322"}.bi-emoji-neutral:before{content:"\f323"}.bi-emoji-smile-fill:before{content:"\f324"}.bi-emoji-smile-upside-down-fill:before{content:"\f325"}.bi-emoji-smile-upside-down:before{content:"\f326"}.bi-emoji-smile:before{content:"\f327"}.bi-emoji-sunglasses-fill:before{content:"\f328"}.bi-emoji-sunglasses:before{content:"\f329"}.bi-emoji-wink-fill:before{content:"\f32a"}.bi-emoji-wink:before{content:"\f32b"}.bi-envelope-fill:before{content:"\f32c"}.bi-envelope-open-fill:before{content:"\f32d"}.bi-envelope-open:before{content:"\f32e"}.bi-envelope:before{content:"\f32f"}.bi-eraser-fill:before{content:"\f330"}.bi-eraser:before{content:"\f331"}.bi-exclamation-circle-fill:before{content:"\f332"}.bi-exclamation-circle:before{content:"\f333"}.bi-exclamation-diamond-fill:before{content:"\f334"}.bi-exclamation-diamond:before{content:"\f335"}.bi-exclamation-octagon-fill:before{content:"\f336"}.bi-exclamation-octagon:before{content:"\f337"}.bi-exclamation-square-fill:before{content:"\f338"}.bi-exclamation-square:before{content:"\f339"}.bi-exclamation-triangle-fill:before{content:"\f33a"}.bi-exclamation-triangle:before{content:"\f33b"}.bi-exclamation:before{content:"\f33c"}.bi-exclude:before{content:"\f33d"}.bi-eye-fill:before{content:"\f33e"}.bi-eye-slash-fill:before{content:"\f33f"}.bi-eye-slash:before{content:"\f340"}.bi-eye:before{content:"\f341"}.bi-eyedropper:before{content:"\f342"}.bi-eyeglasses:before{content:"\f343"}.bi-facebook:before{content:"\f344"}.bi-file-arrow-down-fill:before{content:"\f345"}.bi-file-arrow-down:before{content:"\f346"}.bi-file-arrow-up-fill:before{content:"\f347"}.bi-file-arrow-up:before{content:"\f348"}.bi-file-bar-graph-fill:before{content:"\f349"}.bi-file-bar-graph:before{content:"\f34a"}.bi-file-binary-fill:before{content:"\f34b"}.bi-file-binary:before{content:"\f34c"}.bi-file-break-fill:before{content:"\f34d"}.bi-file-break:before{content:"\f34e"}.bi-file-check-fill:before{content:"\f34f"}.bi-file-check:before{content:"\f350"}.bi-file-code-fill:before{content:"\f351"}.bi-file-code:before{content:"\f352"}.bi-file-diff-fill:before{content:"\f353"}.bi-file-diff:before{content:"\f354"}.bi-file-earmark-arrow-down-fill:before{content:"\f355"}.bi-file-earmark-arrow-down:before{content:"\f356"}.bi-file-earmark-arrow-up-fill:before{content:"\f357"}.bi-file-earmark-arrow-up:before{content:"\f358"}.bi-file-earmark-bar-graph-fill:before{content:"\f359"}.bi-file-earmark-bar-graph:before{content:"\f35a"}.bi-file-earmark-binary-fill:before{content:"\f35b"}.bi-file-earmark-binary:before{content:"\f35c"}.bi-file-earmark-break-fill:before{content:"\f35d"}.bi-file-earmark-break:before{content:"\f35e"}.bi-file-earmark-check-fill:before{content:"\f35f"}.bi-file-earmark-check:before{content:"\f360"}.bi-file-earmark-code-fill:before{content:"\f361"}.bi-file-earmark-code:before{content:"\f362"}.bi-file-earmark-diff-fill:before{content:"\f363"}.bi-file-earmark-diff:before{content:"\f364"}.bi-file-earmark-easel-fill:before{content:"\f365"}.bi-file-earmark-easel:before{content:"\f366"}.bi-file-earmark-excel-fill:before{content:"\f367"}.bi-file-earmark-excel:before{content:"\f368"}.bi-file-earmark-fill:before{content:"\f369"}.bi-file-earmark-font-fill:before{content:"\f36a"}.bi-file-earmark-font:before{content:"\f36b"}.bi-file-earmark-image-fill:before{content:"\f36c"}.bi-file-earmark-image:before{content:"\f36d"}.bi-file-earmark-lock-fill:before{content:"\f36e"}.bi-file-earmark-lock:before{content:"\f36f"}.bi-file-earmark-lock2-fill:before{content:"\f370"}.bi-file-earmark-lock2:before{content:"\f371"}.bi-file-earmark-medical-fill:before{content:"\f372"}.bi-file-earmark-medical:before{content:"\f373"}.bi-file-earmark-minus-fill:before{content:"\f374"}.bi-file-earmark-minus:before{content:"\f375"}.bi-file-earmark-music-fill:before{content:"\f376"}.bi-file-earmark-music:before{content:"\f377"}.bi-file-earmark-person-fill:before{content:"\f378"}.bi-file-earmark-person:before{content:"\f379"}.bi-file-earmark-play-fill:before{content:"\f37a"}.bi-file-earmark-play:before{content:"\f37b"}.bi-file-earmark-plus-fill:before{content:"\f37c"}.bi-file-earmark-plus:before{content:"\f37d"}.bi-file-earmark-post-fill:before{content:"\f37e"}.bi-file-earmark-post:before{content:"\f37f"}.bi-file-earmark-ppt-fill:before{content:"\f380"}.bi-file-earmark-ppt:before{content:"\f381"}.bi-file-earmark-richtext-fill:before{content:"\f382"}.bi-file-earmark-richtext:before{content:"\f383"}.bi-file-earmark-ruled-fill:before{content:"\f384"}.bi-file-earmark-ruled:before{content:"\f385"}.bi-file-earmark-slides-fill:before{content:"\f386"}.bi-file-earmark-slides:before{content:"\f387"}.bi-file-earmark-spreadsheet-fill:before{content:"\f388"}.bi-file-earmark-spreadsheet:before{content:"\f389"}.bi-file-earmark-text-fill:before{content:"\f38a"}.bi-file-earmark-text:before{content:"\f38b"}.bi-file-earmark-word-fill:before{content:"\f38c"}.bi-file-earmark-word:before{content:"\f38d"}.bi-file-earmark-x-fill:before{content:"\f38e"}.bi-file-earmark-x:before{content:"\f38f"}.bi-file-earmark-zip-fill:before{content:"\f390"}.bi-file-earmark-zip:before{content:"\f391"}.bi-file-earmark:before{content:"\f392"}.bi-file-easel-fill:before{content:"\f393"}.bi-file-easel:before{content:"\f394"}.bi-file-excel-fill:before{content:"\f395"}.bi-file-excel:before{content:"\f396"}.bi-file-fill:before{content:"\f397"}.bi-file-font-fill:before{content:"\f398"}.bi-file-font:before{content:"\f399"}.bi-file-image-fill:before{content:"\f39a"}.bi-file-image:before{content:"\f39b"}.bi-file-lock-fill:before{content:"\f39c"}.bi-file-lock:before{content:"\f39d"}.bi-file-lock2-fill:before{content:"\f39e"}.bi-file-lock2:before{content:"\f39f"}.bi-file-medical-fill:before{content:"\f3a0"}.bi-file-medical:before{content:"\f3a1"}.bi-file-minus-fill:before{content:"\f3a2"}.bi-file-minus:before{content:"\f3a3"}.bi-file-music-fill:before{content:"\f3a4"}.bi-file-music:before{content:"\f3a5"}.bi-file-person-fill:before{content:"\f3a6"}.bi-file-person:before{content:"\f3a7"}.bi-file-play-fill:before{content:"\f3a8"}.bi-file-play:before{content:"\f3a9"}.bi-file-plus-fill:before{content:"\f3aa"}.bi-file-plus:before{content:"\f3ab"}.bi-file-post-fill:before{content:"\f3ac"}.bi-file-post:before{content:"\f3ad"}.bi-file-ppt-fill:before{content:"\f3ae"}.bi-file-ppt:before{content:"\f3af"}.bi-file-richtext-fill:before{content:"\f3b0"}.bi-file-richtext:before{content:"\f3b1"}.bi-file-ruled-fill:before{content:"\f3b2"}.bi-file-ruled:before{content:"\f3b3"}.bi-file-slides-fill:before{content:"\f3b4"}.bi-file-slides:before{content:"\f3b5"}.bi-file-spreadsheet-fill:before{content:"\f3b6"}.bi-file-spreadsheet:before{content:"\f3b7"}.bi-file-text-fill:before{content:"\f3b8"}.bi-file-text:before{content:"\f3b9"}.bi-file-word-fill:before{content:"\f3ba"}.bi-file-word:before{content:"\f3bb"}.bi-file-x-fill:before{content:"\f3bc"}.bi-file-x:before{content:"\f3bd"}.bi-file-zip-fill:before{content:"\f3be"}.bi-file-zip:before{content:"\f3bf"}.bi-file:before{content:"\f3c0"}.bi-files-alt:before{content:"\f3c1"}.bi-files:before{content:"\f3c2"}.bi-film:before{content:"\f3c3"}.bi-filter-circle-fill:before{content:"\f3c4"}.bi-filter-circle:before{content:"\f3c5"}.bi-filter-left:before{content:"\f3c6"}.bi-filter-right:before{content:"\f3c7"}.bi-filter-square-fill:before{content:"\f3c8"}.bi-filter-square:before{content:"\f3c9"}.bi-filter:before{content:"\f3ca"}.bi-flag-fill:before{content:"\f3cb"}.bi-flag:before{content:"\f3cc"}.bi-flower1:before{content:"\f3cd"}.bi-flower2:before{content:"\f3ce"}.bi-flower3:before{content:"\f3cf"}.bi-folder-check:before{content:"\f3d0"}.bi-folder-fill:before{content:"\f3d1"}.bi-folder-minus:before{content:"\f3d2"}.bi-folder-plus:before{content:"\f3d3"}.bi-folder-symlink-fill:before{content:"\f3d4"}.bi-folder-symlink:before{content:"\f3d5"}.bi-folder-x:before{content:"\f3d6"}.bi-folder:before{content:"\f3d7"}.bi-folder2-open:before{content:"\f3d8"}.bi-folder2:before{content:"\f3d9"}.bi-fonts:before{content:"\f3da"}.bi-forward-fill:before{content:"\f3db"}.bi-forward:before{content:"\f3dc"}.bi-front:before{content:"\f3dd"}.bi-fullscreen-exit:before{content:"\f3de"}.bi-fullscreen:before{content:"\f3df"}.bi-funnel-fill:before{content:"\f3e0"}.bi-funnel:before{content:"\f3e1"}.bi-gear-fill:before{content:"\f3e2"}.bi-gear-wide-connected:before{content:"\f3e3"}.bi-gear-wide:before{content:"\f3e4"}.bi-gear:before{content:"\f3e5"}.bi-gem:before{content:"\f3e6"}.bi-geo-alt-fill:before{content:"\f3e7"}.bi-geo-alt:before{content:"\f3e8"}.bi-geo-fill:before{content:"\f3e9"}.bi-geo:before{content:"\f3ea"}.bi-gift-fill:before{content:"\f3eb"}.bi-gift:before{content:"\f3ec"}.bi-github:before{content:"\f3ed"}.bi-globe:before{content:"\f3ee"}.bi-globe2:before{content:"\f3ef"}.bi-google:before{content:"\f3f0"}.bi-graph-down:before{content:"\f3f1"}.bi-graph-up:before{content:"\f3f2"}.bi-grid-1x2-fill:before{content:"\f3f3"}.bi-grid-1x2:before{content:"\f3f4"}.bi-grid-3x2-gap-fill:before{content:"\f3f5"}.bi-grid-3x2-gap:before{content:"\f3f6"}.bi-grid-3x2:before{content:"\f3f7"}.bi-grid-3x3-gap-fill:before{content:"\f3f8"}.bi-grid-3x3-gap:before{content:"\f3f9"}.bi-grid-3x3:before{content:"\f3fa"}.bi-grid-fill:before{content:"\f3fb"}.bi-grid:before{content:"\f3fc"}.bi-grip-horizontal:before{content:"\f3fd"}.bi-grip-vertical:before{content:"\f3fe"}.bi-hammer:before{content:"\f3ff"}.bi-hand-index-fill:before{content:"\f400"}.bi-hand-index-thumb-fill:before{content:"\f401"}.bi-hand-index-thumb:before{content:"\f402"}.bi-hand-index:before{content:"\f403"}.bi-hand-thumbs-down-fill:before{content:"\f404"}.bi-hand-thumbs-down:before{content:"\f405"}.bi-hand-thumbs-up-fill:before{content:"\f406"}.bi-hand-thumbs-up:before{content:"\f407"}.bi-handbag-fill:before{content:"\f408"}.bi-handbag:before{content:"\f409"}.bi-hash:before{content:"\f40a"}.bi-hdd-fill:before{content:"\f40b"}.bi-hdd-network-fill:before{content:"\f40c"}.bi-hdd-network:before{content:"\f40d"}.bi-hdd-rack-fill:before{content:"\f40e"}.bi-hdd-rack:before{content:"\f40f"}.bi-hdd-stack-fill:before{content:"\f410"}.bi-hdd-stack:before{content:"\f411"}.bi-hdd:before{content:"\f412"}.bi-headphones:before{content:"\f413"}.bi-headset:before{content:"\f414"}.bi-heart-fill:before{content:"\f415"}.bi-heart-half:before{content:"\f416"}.bi-heart:before{content:"\f417"}.bi-heptagon-fill:before{content:"\f418"}.bi-heptagon-half:before{content:"\f419"}.bi-heptagon:before{content:"\f41a"}.bi-hexagon-fill:before{content:"\f41b"}.bi-hexagon-half:before{content:"\f41c"}.bi-hexagon:before{content:"\f41d"}.bi-hourglass-bottom:before{content:"\f41e"}.bi-hourglass-split:before{content:"\f41f"}.bi-hourglass-top:before{content:"\f420"}.bi-hourglass:before{content:"\f421"}.bi-house-door-fill:before{content:"\f422"}.bi-house-door:before{content:"\f423"}.bi-house-fill:before{content:"\f424"}.bi-house:before{content:"\f425"}.bi-hr:before{content:"\f426"}.bi-hurricane:before{content:"\f427"}.bi-image-alt:before{content:"\f428"}.bi-image-fill:before{content:"\f429"}.bi-image:before{content:"\f42a"}.bi-images:before{content:"\f42b"}.bi-inbox-fill:before{content:"\f42c"}.bi-inbox:before{content:"\f42d"}.bi-inboxes-fill:before{content:"\f42e"}.bi-inboxes:before{content:"\f42f"}.bi-info-circle-fill:before{content:"\f430"}.bi-info-circle:before{content:"\f431"}.bi-info-square-fill:before{content:"\f432"}.bi-info-square:before{content:"\f433"}.bi-info:before{content:"\f434"}.bi-input-cursor-text:before{content:"\f435"}.bi-input-cursor:before{content:"\f436"}.bi-instagram:before{content:"\f437"}.bi-intersect:before{content:"\f438"}.bi-journal-album:before{content:"\f439"}.bi-journal-arrow-down:before{content:"\f43a"}.bi-journal-arrow-up:before{content:"\f43b"}.bi-journal-bookmark-fill:before{content:"\f43c"}.bi-journal-bookmark:before{content:"\f43d"}.bi-journal-check:before{content:"\f43e"}.bi-journal-code:before{content:"\f43f"}.bi-journal-medical:before{content:"\f440"}.bi-journal-minus:before{content:"\f441"}.bi-journal-plus:before{content:"\f442"}.bi-journal-richtext:before{content:"\f443"}.bi-journal-text:before{content:"\f444"}.bi-journal-x:before{content:"\f445"}.bi-journal:before{content:"\f446"}.bi-journals:before{content:"\f447"}.bi-joystick:before{content:"\f448"}.bi-justify-left:before{content:"\f449"}.bi-justify-right:before{content:"\f44a"}.bi-justify:before{content:"\f44b"}.bi-kanban-fill:before{content:"\f44c"}.bi-kanban:before{content:"\f44d"}.bi-key-fill:before{content:"\f44e"}.bi-key:before{content:"\f44f"}.bi-keyboard-fill:before{content:"\f450"}.bi-keyboard:before{content:"\f451"}.bi-ladder:before{content:"\f452"}.bi-lamp-fill:before{content:"\f453"}.bi-lamp:before{content:"\f454"}.bi-laptop-fill:before{content:"\f455"}.bi-laptop:before{content:"\f456"}.bi-layer-backward:before{content:"\f457"}.bi-layer-forward:before{content:"\f458"}.bi-layers-fill:before{content:"\f459"}.bi-layers-half:before{content:"\f45a"}.bi-layers:before{content:"\f45b"}.bi-layout-sidebar-inset-reverse:before{content:"\f45c"}.bi-layout-sidebar-inset:before{content:"\f45d"}.bi-layout-sidebar-reverse:before{content:"\f45e"}.bi-layout-sidebar:before{content:"\f45f"}.bi-layout-split:before{content:"\f460"}.bi-layout-text-sidebar-reverse:before{content:"\f461"}.bi-layout-text-sidebar:before{content:"\f462"}.bi-layout-text-window-reverse:before{content:"\f463"}.bi-layout-text-window:before{content:"\f464"}.bi-layout-three-columns:before{content:"\f465"}.bi-layout-wtf:before{content:"\f466"}.bi-life-preserver:before{content:"\f467"}.bi-lightbulb-fill:before{content:"\f468"}.bi-lightbulb-off-fill:before{content:"\f469"}.bi-lightbulb-off:before{content:"\f46a"}.bi-lightbulb:before{content:"\f46b"}.bi-lightning-charge-fill:before{content:"\f46c"}.bi-lightning-charge:before{content:"\f46d"}.bi-lightning-fill:before{content:"\f46e"}.bi-lightning:before{content:"\f46f"}.bi-link-45deg:before{content:"\f470"}.bi-link:before{content:"\f471"}.bi-linkedin:before{content:"\f472"}.bi-list-check:before{content:"\f473"}.bi-list-nested:before{content:"\f474"}.bi-list-ol:before{content:"\f475"}.bi-list-stars:before{content:"\f476"}.bi-list-task:before{content:"\f477"}.bi-list-ul:before{content:"\f478"}.bi-list:before{content:"\f479"}.bi-lock-fill:before{content:"\f47a"}.bi-lock:before{content:"\f47b"}.bi-mailbox:before{content:"\f47c"}.bi-mailbox2:before{content:"\f47d"}.bi-map-fill:before{content:"\f47e"}.bi-map:before{content:"\f47f"}.bi-markdown-fill:before{content:"\f480"}.bi-markdown:before{content:"\f481"}.bi-mask:before{content:"\f482"}.bi-megaphone-fill:before{content:"\f483"}.bi-megaphone:before{content:"\f484"}.bi-menu-app-fill:before{content:"\f485"}.bi-menu-app:before{content:"\f486"}.bi-menu-button-fill:before{content:"\f487"}.bi-menu-button-wide-fill:before{content:"\f488"}.bi-menu-button-wide:before{content:"\f489"}.bi-menu-button:before{content:"\f48a"}.bi-menu-down:before{content:"\f48b"}.bi-menu-up:before{content:"\f48c"}.bi-mic-fill:before{content:"\f48d"}.bi-mic-mute-fill:before{content:"\f48e"}.bi-mic-mute:before{content:"\f48f"}.bi-mic:before{content:"\f490"}.bi-minecart-loaded:before{content:"\f491"}.bi-minecart:before{content:"\f492"}.bi-moisture:before{content:"\f493"}.bi-moon-fill:before{content:"\f494"}.bi-moon-stars-fill:before{content:"\f495"}.bi-moon-stars:before{content:"\f496"}.bi-moon:before{content:"\f497"}.bi-mouse-fill:before{content:"\f498"}.bi-mouse:before{content:"\f499"}.bi-mouse2-fill:before{content:"\f49a"}.bi-mouse2:before{content:"\f49b"}.bi-mouse3-fill:before{content:"\f49c"}.bi-mouse3:before{content:"\f49d"}.bi-music-note-beamed:before{content:"\f49e"}.bi-music-note-list:before{content:"\f49f"}.bi-music-note:before{content:"\f4a0"}.bi-music-player-fill:before{content:"\f4a1"}.bi-music-player:before{content:"\f4a2"}.bi-newspaper:before{content:"\f4a3"}.bi-node-minus-fill:before{content:"\f4a4"}.bi-node-minus:before{content:"\f4a5"}.bi-node-plus-fill:before{content:"\f4a6"}.bi-node-plus:before{content:"\f4a7"}.bi-nut-fill:before{content:"\f4a8"}.bi-nut:before{content:"\f4a9"}.bi-octagon-fill:before{content:"\f4aa"}.bi-octagon-half:before{content:"\f4ab"}.bi-octagon:before{content:"\f4ac"}.bi-option:before{content:"\f4ad"}.bi-outlet:before{content:"\f4ae"}.bi-paint-bucket:before{content:"\f4af"}.bi-palette-fill:before{content:"\f4b0"}.bi-palette:before{content:"\f4b1"}.bi-palette2:before{content:"\f4b2"}.bi-paperclip:before{content:"\f4b3"}.bi-paragraph:before{content:"\f4b4"}.bi-patch-check-fill:before{content:"\f4b5"}.bi-patch-check:before{content:"\f4b6"}.bi-patch-exclamation-fill:before{content:"\f4b7"}.bi-patch-exclamation:before{content:"\f4b8"}.bi-patch-minus-fill:before{content:"\f4b9"}.bi-patch-minus:before{content:"\f4ba"}.bi-patch-plus-fill:before{content:"\f4bb"}.bi-patch-plus:before{content:"\f4bc"}.bi-patch-question-fill:before{content:"\f4bd"}.bi-patch-question:before{content:"\f4be"}.bi-pause-btn-fill:before{content:"\f4bf"}.bi-pause-btn:before{content:"\f4c0"}.bi-pause-circle-fill:before{content:"\f4c1"}.bi-pause-circle:before{content:"\f4c2"}.bi-pause-fill:before{content:"\f4c3"}.bi-pause:before{content:"\f4c4"}.bi-peace-fill:before{content:"\f4c5"}.bi-peace:before{content:"\f4c6"}.bi-pen-fill:before{content:"\f4c7"}.bi-pen:before{content:"\f4c8"}.bi-pencil-fill:before{content:"\f4c9"}.bi-pencil-square:before{content:"\f4ca"}.bi-pencil:before{content:"\f4cb"}.bi-pentagon-fill:before{content:"\f4cc"}.bi-pentagon-half:before{content:"\f4cd"}.bi-pentagon:before{content:"\f4ce"}.bi-people-fill:before{content:"\f4cf"}.bi-people:before{content:"\f4d0"}.bi-percent:before{content:"\f4d1"}.bi-person-badge-fill:before{content:"\f4d2"}.bi-person-badge:before{content:"\f4d3"}.bi-person-bounding-box:before{content:"\f4d4"}.bi-person-check-fill:before{content:"\f4d5"}.bi-person-check:before{content:"\f4d6"}.bi-person-circle:before{content:"\f4d7"}.bi-person-dash-fill:before{content:"\f4d8"}.bi-person-dash:before{content:"\f4d9"}.bi-person-fill:before{content:"\f4da"}.bi-person-lines-fill:before{content:"\f4db"}.bi-person-plus-fill:before{content:"\f4dc"}.bi-person-plus:before{content:"\f4dd"}.bi-person-square:before{content:"\f4de"}.bi-person-x-fill:before{content:"\f4df"}.bi-person-x:before{content:"\f4e0"}.bi-person:before{content:"\f4e1"}.bi-phone-fill:before{content:"\f4e2"}.bi-phone-landscape-fill:before{content:"\f4e3"}.bi-phone-landscape:before{content:"\f4e4"}.bi-phone-vibrate-fill:before{content:"\f4e5"}.bi-phone-vibrate:before{content:"\f4e6"}.bi-phone:before{content:"\f4e7"}.bi-pie-chart-fill:before{content:"\f4e8"}.bi-pie-chart:before{content:"\f4e9"}.bi-pin-angle-fill:before{content:"\f4ea"}.bi-pin-angle:before{content:"\f4eb"}.bi-pin-fill:before{content:"\f4ec"}.bi-pin:before{content:"\f4ed"}.bi-pip-fill:before{content:"\f4ee"}.bi-pip:before{content:"\f4ef"}.bi-play-btn-fill:before{content:"\f4f0"}.bi-play-btn:before{content:"\f4f1"}.bi-play-circle-fill:before{content:"\f4f2"}.bi-play-circle:before{content:"\f4f3"}.bi-play-fill:before{content:"\f4f4"}.bi-play:before{content:"\f4f5"}.bi-plug-fill:before{content:"\f4f6"}.bi-plug:before{content:"\f4f7"}.bi-plus-circle-dotted:before{content:"\f4f8"}.bi-plus-circle-fill:before{content:"\f4f9"}.bi-plus-circle:before{content:"\f4fa"}.bi-plus-square-dotted:before{content:"\f4fb"}.bi-plus-square-fill:before{content:"\f4fc"}.bi-plus-square:before{content:"\f4fd"}.bi-plus:before{content:"\f4fe"}.bi-power:before{content:"\f4ff"}.bi-printer-fill:before{content:"\f500"}.bi-printer:before{content:"\f501"}.bi-puzzle-fill:before{content:"\f502"}.bi-puzzle:before{content:"\f503"}.bi-question-circle-fill:before{content:"\f504"}.bi-question-circle:before{content:"\f505"}.bi-question-diamond-fill:before{content:"\f506"}.bi-question-diamond:before{content:"\f507"}.bi-question-octagon-fill:before{content:"\f508"}.bi-question-octagon:before{content:"\f509"}.bi-question-square-fill:before{content:"\f50a"}.bi-question-square:before{content:"\f50b"}.bi-question:before{content:"\f50c"}.bi-rainbow:before{content:"\f50d"}.bi-receipt-cutoff:before{content:"\f50e"}.bi-receipt:before{content:"\f50f"}.bi-reception-0:before{content:"\f510"}.bi-reception-1:before{content:"\f511"}.bi-reception-2:before{content:"\f512"}.bi-reception-3:before{content:"\f513"}.bi-reception-4:before{content:"\f514"}.bi-record-btn-fill:before{content:"\f515"}.bi-record-btn:before{content:"\f516"}.bi-record-circle-fill:before{content:"\f517"}.bi-record-circle:before{content:"\f518"}.bi-record-fill:before{content:"\f519"}.bi-record:before{content:"\f51a"}.bi-record2-fill:before{content:"\f51b"}.bi-record2:before{content:"\f51c"}.bi-reply-all-fill:before{content:"\f51d"}.bi-reply-all:before{content:"\f51e"}.bi-reply-fill:before{content:"\f51f"}.bi-reply:before{content:"\f520"}.bi-rss-fill:before{content:"\f521"}.bi-rss:before{content:"\f522"}.bi-rulers:before{content:"\f523"}.bi-save-fill:before{content:"\f524"}.bi-save:before{content:"\f525"}.bi-save2-fill:before{content:"\f526"}.bi-save2:before{content:"\f527"}.bi-scissors:before{content:"\f528"}.bi-screwdriver:before{content:"\f529"}.bi-search:before{content:"\f52a"}.bi-segmented-nav:before{content:"\f52b"}.bi-server:before{content:"\f52c"}.bi-share-fill:before{content:"\f52d"}.bi-share:before{content:"\f52e"}.bi-shield-check:before{content:"\f52f"}.bi-shield-exclamation:before{content:"\f530"}.bi-shield-fill-check:before{content:"\f531"}.bi-shield-fill-exclamation:before{content:"\f532"}.bi-shield-fill-minus:before{content:"\f533"}.bi-shield-fill-plus:before{content:"\f534"}.bi-shield-fill-x:before{content:"\f535"}.bi-shield-fill:before{content:"\f536"}.bi-shield-lock-fill:before{content:"\f537"}.bi-shield-lock:before{content:"\f538"}.bi-shield-minus:before{content:"\f539"}.bi-shield-plus:before{content:"\f53a"}.bi-shield-shaded:before{content:"\f53b"}.bi-shield-slash-fill:before{content:"\f53c"}.bi-shield-slash:before{content:"\f53d"}.bi-shield-x:before{content:"\f53e"}.bi-shield:before{content:"\f53f"}.bi-shift-fill:before{content:"\f540"}.bi-shift:before{content:"\f541"}.bi-shop-window:before{content:"\f542"}.bi-shop:before{content:"\f543"}.bi-shuffle:before{content:"\f544"}.bi-signpost-2-fill:before{content:"\f545"}.bi-signpost-2:before{content:"\f546"}.bi-signpost-fill:before{content:"\f547"}.bi-signpost-split-fill:before{content:"\f548"}.bi-signpost-split:before{content:"\f549"}.bi-signpost:before{content:"\f54a"}.bi-sim-fill:before{content:"\f54b"}.bi-sim:before{content:"\f54c"}.bi-skip-backward-btn-fill:before{content:"\f54d"}.bi-skip-backward-btn:before{content:"\f54e"}.bi-skip-backward-circle-fill:before{content:"\f54f"}.bi-skip-backward-circle:before{content:"\f550"}.bi-skip-backward-fill:before{content:"\f551"}.bi-skip-backward:before{content:"\f552"}.bi-skip-end-btn-fill:before{content:"\f553"}.bi-skip-end-btn:before{content:"\f554"}.bi-skip-end-circle-fill:before{content:"\f555"}.bi-skip-end-circle:before{content:"\f556"}.bi-skip-end-fill:before{content:"\f557"}.bi-skip-end:before{content:"\f558"}.bi-skip-forward-btn-fill:before{content:"\f559"}.bi-skip-forward-btn:before{content:"\f55a"}.bi-skip-forward-circle-fill:before{content:"\f55b"}.bi-skip-forward-circle:before{content:"\f55c"}.bi-skip-forward-fill:before{content:"\f55d"}.bi-skip-forward:before{content:"\f55e"}.bi-skip-start-btn-fill:before{content:"\f55f"}.bi-skip-start-btn:before{content:"\f560"}.bi-skip-start-circle-fill:before{content:"\f561"}.bi-skip-start-circle:before{content:"\f562"}.bi-skip-start-fill:before{content:"\f563"}.bi-skip-start:before{content:"\f564"}.bi-slack:before{content:"\f565"}.bi-slash-circle-fill:before{content:"\f566"}.bi-slash-circle:before{content:"\f567"}.bi-slash-square-fill:before{content:"\f568"}.bi-slash-square:before{content:"\f569"}.bi-slash:before{content:"\f56a"}.bi-sliders:before{content:"\f56b"}.bi-smartwatch:before{content:"\f56c"}.bi-snow:before{content:"\f56d"}.bi-snow2:before{content:"\f56e"}.bi-snow3:before{content:"\f56f"}.bi-sort-alpha-down-alt:before{content:"\f570"}.bi-sort-alpha-down:before{content:"\f571"}.bi-sort-alpha-up-alt:before{content:"\f572"}.bi-sort-alpha-up:before{content:"\f573"}.bi-sort-down-alt:before{content:"\f574"}.bi-sort-down:before{content:"\f575"}.bi-sort-numeric-down-alt:before{content:"\f576"}.bi-sort-numeric-down:before{content:"\f577"}.bi-sort-numeric-up-alt:before{content:"\f578"}.bi-sort-numeric-up:before{content:"\f579"}.bi-sort-up-alt:before{content:"\f57a"}.bi-sort-up:before{content:"\f57b"}.bi-soundwave:before{content:"\f57c"}.bi-speaker-fill:before{content:"\f57d"}.bi-speaker:before{content:"\f57e"}.bi-speedometer:before{content:"\f57f"}.bi-speedometer2:before{content:"\f580"}.bi-spellcheck:before{content:"\f581"}.bi-square-fill:before{content:"\f582"}.bi-square-half:before{content:"\f583"}.bi-square:before{content:"\f584"}.bi-stack:before{content:"\f585"}.bi-star-fill:before{content:"\f586"}.bi-star-half:before{content:"\f587"}.bi-star:before{content:"\f588"}.bi-stars:before{content:"\f589"}.bi-stickies-fill:before{content:"\f58a"}.bi-stickies:before{content:"\f58b"}.bi-sticky-fill:before{content:"\f58c"}.bi-sticky:before{content:"\f58d"}.bi-stop-btn-fill:before{content:"\f58e"}.bi-stop-btn:before{content:"\f58f"}.bi-stop-circle-fill:before{content:"\f590"}.bi-stop-circle:before{content:"\f591"}.bi-stop-fill:before{content:"\f592"}.bi-stop:before{content:"\f593"}.bi-stoplights-fill:before{content:"\f594"}.bi-stoplights:before{content:"\f595"}.bi-stopwatch-fill:before{content:"\f596"}.bi-stopwatch:before{content:"\f597"}.bi-subtract:before{content:"\f598"}.bi-suit-club-fill:before{content:"\f599"}.bi-suit-club:before{content:"\f59a"}.bi-suit-diamond-fill:before{content:"\f59b"}.bi-suit-diamond:before{content:"\f59c"}.bi-suit-heart-fill:before{content:"\f59d"}.bi-suit-heart:before{content:"\f59e"}.bi-suit-spade-fill:before{content:"\f59f"}.bi-suit-spade:before{content:"\f5a0"}.bi-sun-fill:before{content:"\f5a1"}.bi-sun:before{content:"\f5a2"}.bi-sunglasses:before{content:"\f5a3"}.bi-sunrise-fill:before{content:"\f5a4"}.bi-sunrise:before{content:"\f5a5"}.bi-sunset-fill:before{content:"\f5a6"}.bi-sunset:before{content:"\f5a7"}.bi-symmetry-horizontal:before{content:"\f5a8"}.bi-symmetry-vertical:before{content:"\f5a9"}.bi-table:before{content:"\f5aa"}.bi-tablet-fill:before{content:"\f5ab"}.bi-tablet-landscape-fill:before{content:"\f5ac"}.bi-tablet-landscape:before{content:"\f5ad"}.bi-tablet:before{content:"\f5ae"}.bi-tag-fill:before{content:"\f5af"}.bi-tag:before{content:"\f5b0"}.bi-tags-fill:before{content:"\f5b1"}.bi-tags:before{content:"\f5b2"}.bi-telegram:before{content:"\f5b3"}.bi-telephone-fill:before{content:"\f5b4"}.bi-telephone-forward-fill:before{content:"\f5b5"}.bi-telephone-forward:before{content:"\f5b6"}.bi-telephone-inbound-fill:before{content:"\f5b7"}.bi-telephone-inbound:before{content:"\f5b8"}.bi-telephone-minus-fill:before{content:"\f5b9"}.bi-telephone-minus:before{content:"\f5ba"}.bi-telephone-outbound-fill:before{content:"\f5bb"}.bi-telephone-outbound:before{content:"\f5bc"}.bi-telephone-plus-fill:before{content:"\f5bd"}.bi-telephone-plus:before{content:"\f5be"}.bi-telephone-x-fill:before{content:"\f5bf"}.bi-telephone-x:before{content:"\f5c0"}.bi-telephone:before{content:"\f5c1"}.bi-terminal-fill:before{content:"\f5c2"}.bi-terminal:before{content:"\f5c3"}.bi-text-center:before{content:"\f5c4"}.bi-text-indent-left:before{content:"\f5c5"}.bi-text-indent-right:before{content:"\f5c6"}.bi-text-left:before{content:"\f5c7"}.bi-text-paragraph:before{content:"\f5c8"}.bi-text-right:before{content:"\f5c9"}.bi-textarea-resize:before{content:"\f5ca"}.bi-textarea-t:before{content:"\f5cb"}.bi-textarea:before{content:"\f5cc"}.bi-thermometer-half:before{content:"\f5cd"}.bi-thermometer-high:before{content:"\f5ce"}.bi-thermometer-low:before{content:"\f5cf"}.bi-thermometer-snow:before{content:"\f5d0"}.bi-thermometer-sun:before{content:"\f5d1"}.bi-thermometer:before{content:"\f5d2"}.bi-three-dots-vertical:before{content:"\f5d3"}.bi-three-dots:before{content:"\f5d4"}.bi-toggle-off:before{content:"\f5d5"}.bi-toggle-on:before{content:"\f5d6"}.bi-toggle2-off:before{content:"\f5d7"}.bi-toggle2-on:before{content:"\f5d8"}.bi-toggles:before{content:"\f5d9"}.bi-toggles2:before{content:"\f5da"}.bi-tools:before{content:"\f5db"}.bi-tornado:before{content:"\f5dc"}.bi-trash-fill:before{content:"\f5dd"}.bi-trash:before{content:"\f5de"}.bi-trash2-fill:before{content:"\f5df"}.bi-trash2:before{content:"\f5e0"}.bi-tree-fill:before{content:"\f5e1"}.bi-tree:before{content:"\f5e2"}.bi-triangle-fill:before{content:"\f5e3"}.bi-triangle-half:before{content:"\f5e4"}.bi-triangle:before{content:"\f5e5"}.bi-trophy-fill:before{content:"\f5e6"}.bi-trophy:before{content:"\f5e7"}.bi-tropical-storm:before{content:"\f5e8"}.bi-truck-flatbed:before{content:"\f5e9"}.bi-truck:before{content:"\f5ea"}.bi-tsunami:before{content:"\f5eb"}.bi-tv-fill:before{content:"\f5ec"}.bi-tv:before{content:"\f5ed"}.bi-twitch:before{content:"\f5ee"}.bi-twitter:before{content:"\f5ef"}.bi-type-bold:before{content:"\f5f0"}.bi-type-h1:before{content:"\f5f1"}.bi-type-h2:before{content:"\f5f2"}.bi-type-h3:before{content:"\f5f3"}.bi-type-italic:before{content:"\f5f4"}.bi-type-strikethrough:before{content:"\f5f5"}.bi-type-underline:before{content:"\f5f6"}.bi-type:before{content:"\f5f7"}.bi-ui-checks-grid:before{content:"\f5f8"}.bi-ui-checks:before{content:"\f5f9"}.bi-ui-radios-grid:before{content:"\f5fa"}.bi-ui-radios:before{content:"\f5fb"}.bi-umbrella-fill:before{content:"\f5fc"}.bi-umbrella:before{content:"\f5fd"}.bi-union:before{content:"\f5fe"}.bi-unlock-fill:before{content:"\f5ff"}.bi-unlock:before{content:"\f600"}.bi-upc-scan:before{content:"\f601"}.bi-upc:before{content:"\f602"}.bi-upload:before{content:"\f603"}.bi-vector-pen:before{content:"\f604"}.bi-view-list:before{content:"\f605"}.bi-view-stacked:before{content:"\f606"}.bi-vinyl-fill:before{content:"\f607"}.bi-vinyl:before{content:"\f608"}.bi-voicemail:before{content:"\f609"}.bi-volume-down-fill:before{content:"\f60a"}.bi-volume-down:before{content:"\f60b"}.bi-volume-mute-fill:before{content:"\f60c"}.bi-volume-mute:before{content:"\f60d"}.bi-volume-off-fill:before{content:"\f60e"}.bi-volume-off:before{content:"\f60f"}.bi-volume-up-fill:before{content:"\f610"}.bi-volume-up:before{content:"\f611"}.bi-vr:before{content:"\f612"}.bi-wallet-fill:before{content:"\f613"}.bi-wallet:before{content:"\f614"}.bi-wallet2:before{content:"\f615"}.bi-watch:before{content:"\f616"}.bi-water:before{content:"\f617"}.bi-whatsapp:before{content:"\f618"}.bi-wifi-1:before{content:"\f619"}.bi-wifi-2:before{content:"\f61a"}.bi-wifi-off:before{content:"\f61b"}.bi-wifi:before{content:"\f61c"}.bi-wind:before{content:"\f61d"}.bi-window-dock:before{content:"\f61e"}.bi-window-sidebar:before{content:"\f61f"}.bi-window:before{content:"\f620"}.bi-wrench:before{content:"\f621"}.bi-x-circle-fill:before{content:"\f622"}.bi-x-circle:before{content:"\f623"}.bi-x-diamond-fill:before{content:"\f624"}.bi-x-diamond:before{content:"\f625"}.bi-x-octagon-fill:before{content:"\f626"}.bi-x-octagon:before{content:"\f627"}.bi-x-square-fill:before{content:"\f628"}.bi-x-square:before{content:"\f629"}.bi-x:before{content:"\f62a"}.bi-youtube:before{content:"\f62b"}.bi-zoom-in:before{content:"\f62c"}.bi-zoom-out:before{content:"\f62d"}.bi-bank:before{content:"\f62e"}.bi-bank2:before{content:"\f62f"}.bi-bell-slash-fill:before{content:"\f630"}.bi-bell-slash:before{content:"\f631"}.bi-cash-coin:before{content:"\f632"}.bi-check-lg:before{content:"\f633"}.bi-coin:before{content:"\f634"}.bi-currency-bitcoin:before{content:"\f635"}.bi-currency-dollar:before{content:"\f636"}.bi-currency-euro:before{content:"\f637"}.bi-currency-exchange:before{content:"\f638"}.bi-currency-pound:before{content:"\f639"}.bi-currency-yen:before{content:"\f63a"}.bi-dash-lg:before{content:"\f63b"}.bi-exclamation-lg:before{content:"\f63c"}.bi-file-earmark-pdf-fill:before{content:"\f63d"}.bi-file-earmark-pdf:before{content:"\f63e"}.bi-file-pdf-fill:before{content:"\f63f"}.bi-file-pdf:before{content:"\f640"}.bi-gender-ambiguous:before{content:"\f641"}.bi-gender-female:before{content:"\f642"}.bi-gender-male:before{content:"\f643"}.bi-gender-trans:before{content:"\f644"}.bi-headset-vr:before{content:"\f645"}.bi-info-lg:before{content:"\f646"}.bi-mastodon:before{content:"\f647"}.bi-messenger:before{content:"\f648"}.bi-piggy-bank-fill:before{content:"\f649"}.bi-piggy-bank:before{content:"\f64a"}.bi-pin-map-fill:before{content:"\f64b"}.bi-pin-map:before{content:"\f64c"}.bi-plus-lg:before{content:"\f64d"}.bi-question-lg:before{content:"\f64e"}.bi-recycle:before{content:"\f64f"}.bi-reddit:before{content:"\f650"}.bi-safe-fill:before{content:"\f651"}.bi-safe2-fill:before{content:"\f652"}.bi-safe2:before{content:"\f653"}.bi-sd-card-fill:before{content:"\f654"}.bi-sd-card:before{content:"\f655"}.bi-skype:before{content:"\f656"}.bi-slash-lg:before{content:"\f657"}.bi-translate:before{content:"\f658"}.bi-x-lg:before{content:"\f659"}.bi-safe:before{content:"\f65a"}.bi-apple:before{content:"\f65b"}.bi-microsoft:before{content:"\f65d"}.bi-windows:before{content:"\f65e"}.bi-behance:before{content:"\f65c"}.bi-dribbble:before{content:"\f65f"}.bi-line:before{content:"\f660"}.bi-medium:before{content:"\f661"}.bi-paypal:before{content:"\f662"}.bi-pinterest:before{content:"\f663"}.bi-signal:before{content:"\f664"}.bi-snapchat:before{content:"\f665"}.bi-spotify:before{content:"\f666"}.bi-stack-overflow:before{content:"\f667"}.bi-strava:before{content:"\f668"}.bi-wordpress:before{content:"\f669"}.bi-vimeo:before{content:"\f66a"}.bi-activity:before{content:"\f66b"}.bi-easel2-fill:before{content:"\f66c"}.bi-easel2:before{content:"\f66d"}.bi-easel3-fill:before{content:"\f66e"}.bi-easel3:before{content:"\f66f"}.bi-fan:before{content:"\f670"}.bi-fingerprint:before{content:"\f671"}.bi-graph-down-arrow:before{content:"\f672"}.bi-graph-up-arrow:before{content:"\f673"}.bi-hypnotize:before{content:"\f674"}.bi-magic:before{content:"\f675"}.bi-person-rolodex:before{content:"\f676"}.bi-person-video:before{content:"\f677"}.bi-person-video2:before{content:"\f678"}.bi-person-video3:before{content:"\f679"}.bi-person-workspace:before{content:"\f67a"}.bi-radioactive:before{content:"\f67b"}.bi-webcam-fill:before{content:"\f67c"}.bi-webcam:before{content:"\f67d"}.bi-yin-yang:before{content:"\f67e"}.bi-bandaid-fill:before{content:"\f680"}.bi-bandaid:before{content:"\f681"}.bi-bluetooth:before{content:"\f682"}.bi-body-text:before{content:"\f683"}.bi-boombox:before{content:"\f684"}.bi-boxes:before{content:"\f685"}.bi-dpad-fill:before{content:"\f686"}.bi-dpad:before{content:"\f687"}.bi-ear-fill:before{content:"\f688"}.bi-ear:before{content:"\f689"}.bi-envelope-check-fill:before{content:"\f68b"}.bi-envelope-check:before{content:"\f68c"}.bi-envelope-dash-fill:before{content:"\f68e"}.bi-envelope-dash:before{content:"\f68f"}.bi-envelope-exclamation-fill:before{content:"\f691"}.bi-envelope-exclamation:before{content:"\f692"}.bi-envelope-plus-fill:before{content:"\f693"}.bi-envelope-plus:before{content:"\f694"}.bi-envelope-slash-fill:before{content:"\f696"}.bi-envelope-slash:before{content:"\f697"}.bi-envelope-x-fill:before{content:"\f699"}.bi-envelope-x:before{content:"\f69a"}.bi-explicit-fill:before{content:"\f69b"}.bi-explicit:before{content:"\f69c"}.bi-git:before{content:"\f69d"}.bi-infinity:before{content:"\f69e"}.bi-list-columns-reverse:before{content:"\f69f"}.bi-list-columns:before{content:"\f6a0"}.bi-meta:before{content:"\f6a1"}.bi-nintendo-switch:before{content:"\f6a4"}.bi-pc-display-horizontal:before{content:"\f6a5"}.bi-pc-display:before{content:"\f6a6"}.bi-pc-horizontal:before{content:"\f6a7"}.bi-pc:before{content:"\f6a8"}.bi-playstation:before{content:"\f6a9"}.bi-plus-slash-minus:before{content:"\f6aa"}.bi-projector-fill:before{content:"\f6ab"}.bi-projector:before{content:"\f6ac"}.bi-qr-code-scan:before{content:"\f6ad"}.bi-qr-code:before{content:"\f6ae"}.bi-quora:before{content:"\f6af"}.bi-quote:before{content:"\f6b0"}.bi-robot:before{content:"\f6b1"}.bi-send-check-fill:before{content:"\f6b2"}.bi-send-check:before{content:"\f6b3"}.bi-send-dash-fill:before{content:"\f6b4"}.bi-send-dash:before{content:"\f6b5"}.bi-send-exclamation-fill:before{content:"\f6b7"}.bi-send-exclamation:before{content:"\f6b8"}.bi-send-fill:before{content:"\f6b9"}.bi-send-plus-fill:before{content:"\f6ba"}.bi-send-plus:before{content:"\f6bb"}.bi-send-slash-fill:before{content:"\f6bc"}.bi-send-slash:before{content:"\f6bd"}.bi-send-x-fill:before{content:"\f6be"}.bi-send-x:before{content:"\f6bf"}.bi-send:before{content:"\f6c0"}.bi-steam:before{content:"\f6c1"}.bi-terminal-dash:before{content:"\f6c3"}.bi-terminal-plus:before{content:"\f6c4"}.bi-terminal-split:before{content:"\f6c5"}.bi-ticket-detailed-fill:before{content:"\f6c6"}.bi-ticket-detailed:before{content:"\f6c7"}.bi-ticket-fill:before{content:"\f6c8"}.bi-ticket-perforated-fill:before{content:"\f6c9"}.bi-ticket-perforated:before{content:"\f6ca"}.bi-ticket:before{content:"\f6cb"}.bi-tiktok:before{content:"\f6cc"}.bi-window-dash:before{content:"\f6cd"}.bi-window-desktop:before{content:"\f6ce"}.bi-window-fullscreen:before{content:"\f6cf"}.bi-window-plus:before{content:"\f6d0"}.bi-window-split:before{content:"\f6d1"}.bi-window-stack:before{content:"\f6d2"}.bi-window-x:before{content:"\f6d3"}.bi-xbox:before{content:"\f6d4"}.bi-ethernet:before{content:"\f6d5"}.bi-hdmi-fill:before{content:"\f6d6"}.bi-hdmi:before{content:"\f6d7"}.bi-usb-c-fill:before{content:"\f6d8"}.bi-usb-c:before{content:"\f6d9"}.bi-usb-fill:before{content:"\f6da"}.bi-usb-plug-fill:before{content:"\f6db"}.bi-usb-plug:before{content:"\f6dc"}.bi-usb-symbol:before{content:"\f6dd"}.bi-usb:before{content:"\f6de"}.bi-boombox-fill:before{content:"\f6df"}.bi-displayport:before{content:"\f6e1"}.bi-gpu-card:before{content:"\f6e2"}.bi-memory:before{content:"\f6e3"}.bi-modem-fill:before{content:"\f6e4"}.bi-modem:before{content:"\f6e5"}.bi-motherboard-fill:before{content:"\f6e6"}.bi-motherboard:before{content:"\f6e7"}.bi-optical-audio-fill:before{content:"\f6e8"}.bi-optical-audio:before{content:"\f6e9"}.bi-pci-card:before{content:"\f6ea"}.bi-router-fill:before{content:"\f6eb"}.bi-router:before{content:"\f6ec"}.bi-thunderbolt-fill:before{content:"\f6ef"}.bi-thunderbolt:before{content:"\f6f0"}.bi-usb-drive-fill:before{content:"\f6f1"}.bi-usb-drive:before{content:"\f6f2"}.bi-usb-micro-fill:before{content:"\f6f3"}.bi-usb-micro:before{content:"\f6f4"}.bi-usb-mini-fill:before{content:"\f6f5"}.bi-usb-mini:before{content:"\f6f6"}.bi-cloud-haze2:before{content:"\f6f7"}.bi-device-hdd-fill:before{content:"\f6f8"}.bi-device-hdd:before{content:"\f6f9"}.bi-device-ssd-fill:before{content:"\f6fa"}.bi-device-ssd:before{content:"\f6fb"}.bi-displayport-fill:before{content:"\f6fc"}.bi-mortarboard-fill:before{content:"\f6fd"}.bi-mortarboard:before{content:"\f6fe"}.bi-terminal-x:before{content:"\f6ff"}.bi-arrow-through-heart-fill:before{content:"\f700"}.bi-arrow-through-heart:before{content:"\f701"}.bi-badge-sd-fill:before{content:"\f702"}.bi-badge-sd:before{content:"\f703"}.bi-bag-heart-fill:before{content:"\f704"}.bi-bag-heart:before{content:"\f705"}.bi-balloon-fill:before{content:"\f706"}.bi-balloon-heart-fill:before{content:"\f707"}.bi-balloon-heart:before{content:"\f708"}.bi-balloon:before{content:"\f709"}.bi-box2-fill:before{content:"\f70a"}.bi-box2-heart-fill:before{content:"\f70b"}.bi-box2-heart:before{content:"\f70c"}.bi-box2:before{content:"\f70d"}.bi-braces-asterisk:before{content:"\f70e"}.bi-calendar-heart-fill:before{content:"\f70f"}.bi-calendar-heart:before{content:"\f710"}.bi-calendar2-heart-fill:before{content:"\f711"}.bi-calendar2-heart:before{content:"\f712"}.bi-chat-heart-fill:before{content:"\f713"}.bi-chat-heart:before{content:"\f714"}.bi-chat-left-heart-fill:before{content:"\f715"}.bi-chat-left-heart:before{content:"\f716"}.bi-chat-right-heart-fill:before{content:"\f717"}.bi-chat-right-heart:before{content:"\f718"}.bi-chat-square-heart-fill:before{content:"\f719"}.bi-chat-square-heart:before{content:"\f71a"}.bi-clipboard-check-fill:before{content:"\f71b"}.bi-clipboard-data-fill:before{content:"\f71c"}.bi-clipboard-fill:before{content:"\f71d"}.bi-clipboard-heart-fill:before{content:"\f71e"}.bi-clipboard-heart:before{content:"\f71f"}.bi-clipboard-minus-fill:before{content:"\f720"}.bi-clipboard-plus-fill:before{content:"\f721"}.bi-clipboard-pulse:before{content:"\f722"}.bi-clipboard-x-fill:before{content:"\f723"}.bi-clipboard2-check-fill:before{content:"\f724"}.bi-clipboard2-check:before{content:"\f725"}.bi-clipboard2-data-fill:before{content:"\f726"}.bi-clipboard2-data:before{content:"\f727"}.bi-clipboard2-fill:before{content:"\f728"}.bi-clipboard2-heart-fill:before{content:"\f729"}.bi-clipboard2-heart:before{content:"\f72a"}.bi-clipboard2-minus-fill:before{content:"\f72b"}.bi-clipboard2-minus:before{content:"\f72c"}.bi-clipboard2-plus-fill:before{content:"\f72d"}.bi-clipboard2-plus:before{content:"\f72e"}.bi-clipboard2-pulse-fill:before{content:"\f72f"}.bi-clipboard2-pulse:before{content:"\f730"}.bi-clipboard2-x-fill:before{content:"\f731"}.bi-clipboard2-x:before{content:"\f732"}.bi-clipboard2:before{content:"\f733"}.bi-emoji-kiss-fill:before{content:"\f734"}.bi-emoji-kiss:before{content:"\f735"}.bi-envelope-heart-fill:before{content:"\f736"}.bi-envelope-heart:before{content:"\f737"}.bi-envelope-open-heart-fill:before{content:"\f738"}.bi-envelope-open-heart:before{content:"\f739"}.bi-envelope-paper-fill:before{content:"\f73a"}.bi-envelope-paper-heart-fill:before{content:"\f73b"}.bi-envelope-paper-heart:before{content:"\f73c"}.bi-envelope-paper:before{content:"\f73d"}.bi-filetype-aac:before{content:"\f73e"}.bi-filetype-ai:before{content:"\f73f"}.bi-filetype-bmp:before{content:"\f740"}.bi-filetype-cs:before{content:"\f741"}.bi-filetype-css:before{content:"\f742"}.bi-filetype-csv:before{content:"\f743"}.bi-filetype-doc:before{content:"\f744"}.bi-filetype-docx:before{content:"\f745"}.bi-filetype-exe:before{content:"\f746"}.bi-filetype-gif:before{content:"\f747"}.bi-filetype-heic:before{content:"\f748"}.bi-filetype-html:before{content:"\f749"}.bi-filetype-java:before{content:"\f74a"}.bi-filetype-jpg:before{content:"\f74b"}.bi-filetype-js:before{content:"\f74c"}.bi-filetype-jsx:before{content:"\f74d"}.bi-filetype-key:before{content:"\f74e"}.bi-filetype-m4p:before{content:"\f74f"}.bi-filetype-md:before{content:"\f750"}.bi-filetype-mdx:before{content:"\f751"}.bi-filetype-mov:before{content:"\f752"}.bi-filetype-mp3:before{content:"\f753"}.bi-filetype-mp4:before{content:"\f754"}.bi-filetype-otf:before{content:"\f755"}.bi-filetype-pdf:before{content:"\f756"}.bi-filetype-php:before{content:"\f757"}.bi-filetype-png:before{content:"\f758"}.bi-filetype-ppt:before{content:"\f75a"}.bi-filetype-psd:before{content:"\f75b"}.bi-filetype-py:before{content:"\f75c"}.bi-filetype-raw:before{content:"\f75d"}.bi-filetype-rb:before{content:"\f75e"}.bi-filetype-sass:before{content:"\f75f"}.bi-filetype-scss:before{content:"\f760"}.bi-filetype-sh:before{content:"\f761"}.bi-filetype-svg:before{content:"\f762"}.bi-filetype-tiff:before{content:"\f763"}.bi-filetype-tsx:before{content:"\f764"}.bi-filetype-ttf:before{content:"\f765"}.bi-filetype-txt:before{content:"\f766"}.bi-filetype-wav:before{content:"\f767"}.bi-filetype-woff:before{content:"\f768"}.bi-filetype-xls:before{content:"\f76a"}.bi-filetype-xml:before{content:"\f76b"}.bi-filetype-yml:before{content:"\f76c"}.bi-heart-arrow:before{content:"\f76d"}.bi-heart-pulse-fill:before{content:"\f76e"}.bi-heart-pulse:before{content:"\f76f"}.bi-heartbreak-fill:before{content:"\f770"}.bi-heartbreak:before{content:"\f771"}.bi-hearts:before{content:"\f772"}.bi-hospital-fill:before{content:"\f773"}.bi-hospital:before{content:"\f774"}.bi-house-heart-fill:before{content:"\f775"}.bi-house-heart:before{content:"\f776"}.bi-incognito:before{content:"\f777"}.bi-magnet-fill:before{content:"\f778"}.bi-magnet:before{content:"\f779"}.bi-person-heart:before{content:"\f77a"}.bi-person-hearts:before{content:"\f77b"}.bi-phone-flip:before{content:"\f77c"}.bi-plugin:before{content:"\f77d"}.bi-postage-fill:before{content:"\f77e"}.bi-postage-heart-fill:before{content:"\f77f"}.bi-postage-heart:before{content:"\f780"}.bi-postage:before{content:"\f781"}.bi-postcard-fill:before{content:"\f782"}.bi-postcard-heart-fill:before{content:"\f783"}.bi-postcard-heart:before{content:"\f784"}.bi-postcard:before{content:"\f785"}.bi-search-heart-fill:before{content:"\f786"}.bi-search-heart:before{content:"\f787"}.bi-sliders2-vertical:before{content:"\f788"}.bi-sliders2:before{content:"\f789"}.bi-trash3-fill:before{content:"\f78a"}.bi-trash3:before{content:"\f78b"}.bi-valentine:before{content:"\f78c"}.bi-valentine2:before{content:"\f78d"}.bi-wrench-adjustable-circle-fill:before{content:"\f78e"}.bi-wrench-adjustable-circle:before{content:"\f78f"}.bi-wrench-adjustable:before{content:"\f790"}.bi-filetype-json:before{content:"\f791"}.bi-filetype-pptx:before{content:"\f792"}.bi-filetype-xlsx:before{content:"\f793"}.bi-1-circle-fill:before{content:"\f796"}.bi-1-circle:before{content:"\f797"}.bi-1-square-fill:before{content:"\f798"}.bi-1-square:before{content:"\f799"}.bi-2-circle-fill:before{content:"\f79c"}.bi-2-circle:before{content:"\f79d"}.bi-2-square-fill:before{content:"\f79e"}.bi-2-square:before{content:"\f79f"}.bi-3-circle-fill:before{content:"\f7a2"}.bi-3-circle:before{content:"\f7a3"}.bi-3-square-fill:before{content:"\f7a4"}.bi-3-square:before{content:"\f7a5"}.bi-4-circle-fill:before{content:"\f7a8"}.bi-4-circle:before{content:"\f7a9"}.bi-4-square-fill:before{content:"\f7aa"}.bi-4-square:before{content:"\f7ab"}.bi-5-circle-fill:before{content:"\f7ae"}.bi-5-circle:before{content:"\f7af"}.bi-5-square-fill:before{content:"\f7b0"}.bi-5-square:before{content:"\f7b1"}.bi-6-circle-fill:before{content:"\f7b4"}.bi-6-circle:before{content:"\f7b5"}.bi-6-square-fill:before{content:"\f7b6"}.bi-6-square:before{content:"\f7b7"}.bi-7-circle-fill:before{content:"\f7ba"}.bi-7-circle:before{content:"\f7bb"}.bi-7-square-fill:before{content:"\f7bc"}.bi-7-square:before{content:"\f7bd"}.bi-8-circle-fill:before{content:"\f7c0"}.bi-8-circle:before{content:"\f7c1"}.bi-8-square-fill:before{content:"\f7c2"}.bi-8-square:before{content:"\f7c3"}.bi-9-circle-fill:before{content:"\f7c6"}.bi-9-circle:before{content:"\f7c7"}.bi-9-square-fill:before{content:"\f7c8"}.bi-9-square:before{content:"\f7c9"}.bi-airplane-engines-fill:before{content:"\f7ca"}.bi-airplane-engines:before{content:"\f7cb"}.bi-airplane-fill:before{content:"\f7cc"}.bi-airplane:before{content:"\f7cd"}.bi-alexa:before{content:"\f7ce"}.bi-alipay:before{content:"\f7cf"}.bi-android:before{content:"\f7d0"}.bi-android2:before{content:"\f7d1"}.bi-box-fill:before{content:"\f7d2"}.bi-box-seam-fill:before{content:"\f7d3"}.bi-browser-chrome:before{content:"\f7d4"}.bi-browser-edge:before{content:"\f7d5"}.bi-browser-firefox:before{content:"\f7d6"}.bi-browser-safari:before{content:"\f7d7"}.bi-c-circle-fill:before{content:"\f7da"}.bi-c-circle:before{content:"\f7db"}.bi-c-square-fill:before{content:"\f7dc"}.bi-c-square:before{content:"\f7dd"}.bi-capsule-pill:before{content:"\f7de"}.bi-capsule:before{content:"\f7df"}.bi-car-front-fill:before{content:"\f7e0"}.bi-car-front:before{content:"\f7e1"}.bi-cassette-fill:before{content:"\f7e2"}.bi-cassette:before{content:"\f7e3"}.bi-cc-circle-fill:before{content:"\f7e6"}.bi-cc-circle:before{content:"\f7e7"}.bi-cc-square-fill:before{content:"\f7e8"}.bi-cc-square:before{content:"\f7e9"}.bi-cup-hot-fill:before{content:"\f7ea"}.bi-cup-hot:before{content:"\f7eb"}.bi-currency-rupee:before{content:"\f7ec"}.bi-dropbox:before{content:"\f7ed"}.bi-escape:before{content:"\f7ee"}.bi-fast-forward-btn-fill:before{content:"\f7ef"}.bi-fast-forward-btn:before{content:"\f7f0"}.bi-fast-forward-circle-fill:before{content:"\f7f1"}.bi-fast-forward-circle:before{content:"\f7f2"}.bi-fast-forward-fill:before{content:"\f7f3"}.bi-fast-forward:before{content:"\f7f4"}.bi-filetype-sql:before{content:"\f7f5"}.bi-fire:before{content:"\f7f6"}.bi-google-play:before{content:"\f7f7"}.bi-h-circle-fill:before{content:"\f7fa"}.bi-h-circle:before{content:"\f7fb"}.bi-h-square-fill:before{content:"\f7fc"}.bi-h-square:before{content:"\f7fd"}.bi-indent:before{content:"\f7fe"}.bi-lungs-fill:before{content:"\f7ff"}.bi-lungs:before{content:"\f800"}.bi-microsoft-teams:before{content:"\f801"}.bi-p-circle-fill:before{content:"\f804"}.bi-p-circle:before{content:"\f805"}.bi-p-square-fill:before{content:"\f806"}.bi-p-square:before{content:"\f807"}.bi-pass-fill:before{content:"\f808"}.bi-pass:before{content:"\f809"}.bi-prescription:before{content:"\f80a"}.bi-prescription2:before{content:"\f80b"}.bi-r-circle-fill:before{content:"\f80e"}.bi-r-circle:before{content:"\f80f"}.bi-r-square-fill:before{content:"\f810"}.bi-r-square:before{content:"\f811"}.bi-repeat-1:before{content:"\f812"}.bi-repeat:before{content:"\f813"}.bi-rewind-btn-fill:before{content:"\f814"}.bi-rewind-btn:before{content:"\f815"}.bi-rewind-circle-fill:before{content:"\f816"}.bi-rewind-circle:before{content:"\f817"}.bi-rewind-fill:before{content:"\f818"}.bi-rewind:before{content:"\f819"}.bi-train-freight-front-fill:before{content:"\f81a"}.bi-train-freight-front:before{content:"\f81b"}.bi-train-front-fill:before{content:"\f81c"}.bi-train-front:before{content:"\f81d"}.bi-train-lightrail-front-fill:before{content:"\f81e"}.bi-train-lightrail-front:before{content:"\f81f"}.bi-truck-front-fill:before{content:"\f820"}.bi-truck-front:before{content:"\f821"}.bi-ubuntu:before{content:"\f822"}.bi-unindent:before{content:"\f823"}.bi-unity:before{content:"\f824"}.bi-universal-access-circle:before{content:"\f825"}.bi-universal-access:before{content:"\f826"}.bi-virus:before{content:"\f827"}.bi-virus2:before{content:"\f828"}.bi-wechat:before{content:"\f829"}.bi-yelp:before{content:"\f82a"}.bi-sign-stop-fill:before{content:"\f82b"}.bi-sign-stop-lights-fill:before{content:"\f82c"}.bi-sign-stop-lights:before{content:"\f82d"}.bi-sign-stop:before{content:"\f82e"}.bi-sign-turn-left-fill:before{content:"\f82f"}.bi-sign-turn-left:before{content:"\f830"}.bi-sign-turn-right-fill:before{content:"\f831"}.bi-sign-turn-right:before{content:"\f832"}.bi-sign-turn-slight-left-fill:before{content:"\f833"}.bi-sign-turn-slight-left:before{content:"\f834"}.bi-sign-turn-slight-right-fill:before{content:"\f835"}.bi-sign-turn-slight-right:before{content:"\f836"}.bi-sign-yield-fill:before{content:"\f837"}.bi-sign-yield:before{content:"\f838"}.bi-ev-station-fill:before{content:"\f839"}.bi-ev-station:before{content:"\f83a"}.bi-fuel-pump-diesel-fill:before{content:"\f83b"}.bi-fuel-pump-diesel:before{content:"\f83c"}.bi-fuel-pump-fill:before{content:"\f83d"}.bi-fuel-pump:before{content:"\f83e"}.bi-0-circle-fill:before{content:"\f83f"}.bi-0-circle:before{content:"\f840"}.bi-0-square-fill:before{content:"\f841"}.bi-0-square:before{content:"\f842"}.bi-rocket-fill:before{content:"\f843"}.bi-rocket-takeoff-fill:before{content:"\f844"}.bi-rocket-takeoff:before{content:"\f845"}.bi-rocket:before{content:"\f846"}.bi-stripe:before{content:"\f847"}.bi-subscript:before{content:"\f848"}.bi-superscript:before{content:"\f849"}.bi-trello:before{content:"\f84a"}.bi-envelope-at-fill:before{content:"\f84b"}.bi-envelope-at:before{content:"\f84c"}.bi-regex:before{content:"\f84d"}.bi-text-wrap:before{content:"\f84e"}.bi-sign-dead-end-fill:before{content:"\f84f"}.bi-sign-dead-end:before{content:"\f850"}.bi-sign-do-not-enter-fill:before{content:"\f851"}.bi-sign-do-not-enter:before{content:"\f852"}.bi-sign-intersection-fill:before{content:"\f853"}.bi-sign-intersection-side-fill:before{content:"\f854"}.bi-sign-intersection-side:before{content:"\f855"}.bi-sign-intersection-t-fill:before{content:"\f856"}.bi-sign-intersection-t:before{content:"\f857"}.bi-sign-intersection-y-fill:before{content:"\f858"}.bi-sign-intersection-y:before{content:"\f859"}.bi-sign-intersection:before{content:"\f85a"}.bi-sign-merge-left-fill:before{content:"\f85b"}.bi-sign-merge-left:before{content:"\f85c"}.bi-sign-merge-right-fill:before{content:"\f85d"}.bi-sign-merge-right:before{content:"\f85e"}.bi-sign-no-left-turn-fill:before{content:"\f85f"}.bi-sign-no-left-turn:before{content:"\f860"}.bi-sign-no-parking-fill:before{content:"\f861"}.bi-sign-no-parking:before{content:"\f862"}.bi-sign-no-right-turn-fill:before{content:"\f863"}.bi-sign-no-right-turn:before{content:"\f864"}.bi-sign-railroad-fill:before{content:"\f865"}.bi-sign-railroad:before{content:"\f866"}.bi-building-add:before{content:"\f867"}.bi-building-check:before{content:"\f868"}.bi-building-dash:before{content:"\f869"}.bi-building-down:before{content:"\f86a"}.bi-building-exclamation:before{content:"\f86b"}.bi-building-fill-add:before{content:"\f86c"}.bi-building-fill-check:before{content:"\f86d"}.bi-building-fill-dash:before{content:"\f86e"}.bi-building-fill-down:before{content:"\f86f"}.bi-building-fill-exclamation:before{content:"\f870"}.bi-building-fill-gear:before{content:"\f871"}.bi-building-fill-lock:before{content:"\f872"}.bi-building-fill-slash:before{content:"\f873"}.bi-building-fill-up:before{content:"\f874"}.bi-building-fill-x:before{content:"\f875"}.bi-building-fill:before{content:"\f876"}.bi-building-gear:before{content:"\f877"}.bi-building-lock:before{content:"\f878"}.bi-building-slash:before{content:"\f879"}.bi-building-up:before{content:"\f87a"}.bi-building-x:before{content:"\f87b"}.bi-buildings-fill:before{content:"\f87c"}.bi-buildings:before{content:"\f87d"}.bi-bus-front-fill:before{content:"\f87e"}.bi-bus-front:before{content:"\f87f"}.bi-ev-front-fill:before{content:"\f880"}.bi-ev-front:before{content:"\f881"}.bi-globe-americas:before{content:"\f882"}.bi-globe-asia-australia:before{content:"\f883"}.bi-globe-central-south-asia:before{content:"\f884"}.bi-globe-europe-africa:before{content:"\f885"}.bi-house-add-fill:before{content:"\f886"}.bi-house-add:before{content:"\f887"}.bi-house-check-fill:before{content:"\f888"}.bi-house-check:before{content:"\f889"}.bi-house-dash-fill:before{content:"\f88a"}.bi-house-dash:before{content:"\f88b"}.bi-house-down-fill:before{content:"\f88c"}.bi-house-down:before{content:"\f88d"}.bi-house-exclamation-fill:before{content:"\f88e"}.bi-house-exclamation:before{content:"\f88f"}.bi-house-gear-fill:before{content:"\f890"}.bi-house-gear:before{content:"\f891"}.bi-house-lock-fill:before{content:"\f892"}.bi-house-lock:before{content:"\f893"}.bi-house-slash-fill:before{content:"\f894"}.bi-house-slash:before{content:"\f895"}.bi-house-up-fill:before{content:"\f896"}.bi-house-up:before{content:"\f897"}.bi-house-x-fill:before{content:"\f898"}.bi-house-x:before{content:"\f899"}.bi-person-add:before{content:"\f89a"}.bi-person-down:before{content:"\f89b"}.bi-person-exclamation:before{content:"\f89c"}.bi-person-fill-add:before{content:"\f89d"}.bi-person-fill-check:before{content:"\f89e"}.bi-person-fill-dash:before{content:"\f89f"}.bi-person-fill-down:before{content:"\f8a0"}.bi-person-fill-exclamation:before{content:"\f8a1"}.bi-person-fill-gear:before{content:"\f8a2"}.bi-person-fill-lock:before{content:"\f8a3"}.bi-person-fill-slash:before{content:"\f8a4"}.bi-person-fill-up:before{content:"\f8a5"}.bi-person-fill-x:before{content:"\f8a6"}.bi-person-gear:before{content:"\f8a7"}.bi-person-lock:before{content:"\f8a8"}.bi-person-slash:before{content:"\f8a9"}.bi-person-up:before{content:"\f8aa"}.bi-scooter:before{content:"\f8ab"}.bi-taxi-front-fill:before{content:"\f8ac"}.bi-taxi-front:before{content:"\f8ad"}.bi-amd:before{content:"\f8ae"}.bi-database-add:before{content:"\f8af"}.bi-database-check:before{content:"\f8b0"}.bi-database-dash:before{content:"\f8b1"}.bi-database-down:before{content:"\f8b2"}.bi-database-exclamation:before{content:"\f8b3"}.bi-database-fill-add:before{content:"\f8b4"}.bi-database-fill-check:before{content:"\f8b5"}.bi-database-fill-dash:before{content:"\f8b6"}.bi-database-fill-down:before{content:"\f8b7"}.bi-database-fill-exclamation:before{content:"\f8b8"}.bi-database-fill-gear:before{content:"\f8b9"}.bi-database-fill-lock:before{content:"\f8ba"}.bi-database-fill-slash:before{content:"\f8bb"}.bi-database-fill-up:before{content:"\f8bc"}.bi-database-fill-x:before{content:"\f8bd"}.bi-database-fill:before{content:"\f8be"}.bi-database-gear:before{content:"\f8bf"}.bi-database-lock:before{content:"\f8c0"}.bi-database-slash:before{content:"\f8c1"}.bi-database-up:before{content:"\f8c2"}.bi-database-x:before{content:"\f8c3"}.bi-database:before{content:"\f8c4"}.bi-houses-fill:before{content:"\f8c5"}.bi-houses:before{content:"\f8c6"}.bi-nvidia:before{content:"\f8c7"}.bi-person-vcard-fill:before{content:"\f8c8"}.bi-person-vcard:before{content:"\f8c9"}.bi-sina-weibo:before{content:"\f8ca"}.bi-tencent-qq:before{content:"\f8cb"}.bi-wikipedia:before{content:"\f8cc"}.bi-alphabet-uppercase:before{content:"\f2a5"}.bi-alphabet:before{content:"\f68a"}.bi-amazon:before{content:"\f68d"}.bi-arrows-collapse-vertical:before{content:"\f690"}.bi-arrows-expand-vertical:before{content:"\f695"}.bi-arrows-vertical:before{content:"\f698"}.bi-arrows:before{content:"\f6a2"}.bi-ban-fill:before{content:"\f6a3"}.bi-ban:before{content:"\f6b6"}.bi-bing:before{content:"\f6c2"}.bi-cake:before{content:"\f6e0"}.bi-cake2:before{content:"\f6ed"}.bi-cookie:before{content:"\f6ee"}.bi-copy:before{content:"\f759"}.bi-crosshair:before{content:"\f769"}.bi-crosshair2:before{content:"\f794"}.bi-emoji-astonished-fill:before{content:"\f795"}.bi-emoji-astonished:before{content:"\f79a"}.bi-emoji-grimace-fill:before{content:"\f79b"}.bi-emoji-grimace:before{content:"\f7a0"}.bi-emoji-grin-fill:before{content:"\f7a1"}.bi-emoji-grin:before{content:"\f7a6"}.bi-emoji-surprise-fill:before{content:"\f7a7"}.bi-emoji-surprise:before{content:"\f7ac"}.bi-emoji-tear-fill:before{content:"\f7ad"}.bi-emoji-tear:before{content:"\f7b2"}.bi-envelope-arrow-down-fill:before{content:"\f7b3"}.bi-envelope-arrow-down:before{content:"\f7b8"}.bi-envelope-arrow-up-fill:before{content:"\f7b9"}.bi-envelope-arrow-up:before{content:"\f7be"}.bi-feather:before{content:"\f7bf"}.bi-feather2:before{content:"\f7c4"}.bi-floppy-fill:before{content:"\f7c5"}.bi-floppy:before{content:"\f7d8"}.bi-floppy2-fill:before{content:"\f7d9"}.bi-floppy2:before{content:"\f7e4"}.bi-gitlab:before{content:"\f7e5"}.bi-highlighter:before{content:"\f7f8"}.bi-marker-tip:before{content:"\f802"}.bi-nvme-fill:before{content:"\f803"}.bi-nvme:before{content:"\f80c"}.bi-opencollective:before{content:"\f80d"}.bi-pci-card-network:before{content:"\f8cd"}.bi-pci-card-sound:before{content:"\f8ce"}.bi-radar:before{content:"\f8cf"}.bi-send-arrow-down-fill:before{content:"\f8d0"}.bi-send-arrow-down:before{content:"\f8d1"}.bi-send-arrow-up-fill:before{content:"\f8d2"}.bi-send-arrow-up:before{content:"\f8d3"}.bi-sim-slash-fill:before{content:"\f8d4"}.bi-sim-slash:before{content:"\f8d5"}.bi-sourceforge:before{content:"\f8d6"}.bi-substack:before{content:"\f8d7"}.bi-threads-fill:before{content:"\f8d8"}.bi-threads:before{content:"\f8d9"}.bi-transparency:before{content:"\f8da"}.bi-twitter-x:before{content:"\f8db"}.bi-type-h4:before{content:"\f8dc"}.bi-type-h5:before{content:"\f8dd"}.bi-type-h6:before{content:"\f8de"}.bi-backpack-fill:before{content:"\f8df"}.bi-backpack:before{content:"\f8e0"}.bi-backpack2-fill:before{content:"\f8e1"}.bi-backpack2:before{content:"\f8e2"}.bi-backpack3-fill:before{content:"\f8e3"}.bi-backpack3:before{content:"\f8e4"}.bi-backpack4-fill:before{content:"\f8e5"}.bi-backpack4:before{content:"\f8e6"}.bi-brilliance:before{content:"\f8e7"}.bi-cake-fill:before{content:"\f8e8"}.bi-cake2-fill:before{content:"\f8e9"}.bi-duffle-fill:before{content:"\f8ea"}.bi-duffle:before{content:"\f8eb"}.bi-exposure:before{content:"\f8ec"}.bi-gender-neuter:before{content:"\f8ed"}.bi-highlights:before{content:"\f8ee"}.bi-luggage-fill:before{content:"\f8ef"}.bi-luggage:before{content:"\f8f0"}.bi-mailbox-flag:before{content:"\f8f1"}.bi-mailbox2-flag:before{content:"\f8f2"}.bi-noise-reduction:before{content:"\f8f3"}.bi-passport-fill:before{content:"\f8f4"}.bi-passport:before{content:"\f8f5"}.bi-person-arms-up:before{content:"\f8f6"}.bi-person-raised-hand:before{content:"\f8f7"}.bi-person-standing-dress:before{content:"\f8f8"}.bi-person-standing:before{content:"\f8f9"}.bi-person-walking:before{content:"\f8fa"}.bi-person-wheelchair:before{content:"\f8fb"}.bi-shadows:before{content:"\f8fc"}.bi-suitcase-fill:before{content:"\f8fd"}.bi-suitcase-lg-fill:before{content:"\f8fe"}.bi-suitcase-lg:before{content:"\f8ff"}.bi-suitcase:before{content:"\f900"}.bi-suitcase2-fill:before{content:"\f901"}.bi-suitcase2:before{content:"\f902"}.bi-vignette:before{content:"\f903"}:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-highlight-color: #212529;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13, 110, 253, .25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: #e685b5;--bs-highlight-color: #dee2e6;--bs-highlight-bg: #664d03;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"\2014\a0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1768px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #a6b5cc;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #b5b6b7;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #a7b9b1;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #a6c3ca;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #ccc2a4;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #c6acae;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #4d5154;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-control-plaintext~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label:after,.form-floating>.form-control:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #86b7fe;--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: ;--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))}.text-bg-secondary{color:#fff;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))}.text-bg-success{color:#fff;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))}.text-bg-info{color:#000;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))}.text-bg-warning{color:#000;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))}.text-bg-danger{color:#fff;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))}.text-bg-light{color:#000;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))}.text-bg-dark{color:#fff;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202,var(--bs-link-opacity, 1));text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100,var(--bs-link-opacity, 1));text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))}.link-success:hover,.link-success:focus{color:RGBA(20,108,67,var(--bs-link-opacity, 1));text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))}.link-info:hover,.link-info:focus{color:RGBA(61,213,243,var(--bs-link-opacity, 1));text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1));text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1));text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1));text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1));text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1));text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75));text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}.float-start{float:left}.float-end{float:right}.float-none{float:none}.object-fit-contain{object-fit:contain}.object-fit-cover{object-fit:cover}.object-fit-fill{object-fit:fill}.object-fit-scale{object-fit:scale-down}.object-fit-none{object-fit:none}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-visible{overflow-x:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-block{display:block}.d-grid{display:grid}.d-inline-grid{display:inline-grid}.d-table{display:table}.d-table-row{display:table-row}.d-table-cell{display:table-cell}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-none{display:none}.shadow{box-shadow:var(--bs-box-shadow)}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)}.shadow-none{box-shadow:none}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}.position-sticky{position:sticky}.top-0{top:0}.top-50{top:50%}.top-100{top:100%}.bottom-0{bottom:0}.bottom-50{bottom:50%}.bottom-100{bottom:100%}.start-0{left:0}.start-50{left:50%}.start-100{left:100%}.end-0{right:0}.end-50{right:50%}.end-100{right:100%}.translate-middle{transform:translate(-50%,-50%)}.translate-middle-x{transform:translate(-50%)}.translate-middle-y{transform:translateY(-50%)}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-0{border:0}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-top-0{border-top:0}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-end-0{border-right:0}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-bottom-0{border-bottom:0}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)}.border-start-0{border-left:0}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)}.border-success-subtle{border-color:var(--bs-success-border-subtle)}.border-info-subtle{border-color:var(--bs-info-border-subtle)}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)}.border-light-subtle{border-color:var(--bs-light-border-subtle)}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)}.border-1{border-width:1px}.border-2{border-width:2px}.border-3{border-width:3px}.border-4{border-width:4px}.border-5{border-width:5px}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%}.w-50{width:50%}.w-75{width:75%}.w-100{width:100%}.w-auto{width:auto}.mw-100{max-width:100%}.vw-100{width:100vw}.min-vw-100{min-width:100vw}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.h-auto{height:auto}.mh-100{max-height:100%}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.flex-fill{flex:1 1 auto}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.align-items-start{align-items:flex-start}.align-items-end{align-items:flex-end}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.align-items-stretch{align-items:stretch}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-stretch{align-content:stretch}.align-self-auto{align-self:auto}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-self-stretch{align-self:stretch}.order-first{order:-1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-last{order:6}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:1rem}.m-4{margin:1.5rem}.m-5{margin:3rem}.m-auto{margin:auto}.mx-0{margin-right:0;margin-left:0}.mx-1{margin-right:.25rem;margin-left:.25rem}.mx-2{margin-right:.5rem;margin-left:.5rem}.mx-3{margin-right:1rem;margin-left:1rem}.mx-4{margin-right:1.5rem;margin-left:1.5rem}.mx-5{margin-right:3rem;margin-left:3rem}.mx-auto{margin-right:auto;margin-left:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:1rem;margin-bottom:1rem}.my-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-5{margin-top:3rem;margin-bottom:3rem}.my-auto{margin-top:auto;margin-bottom:auto}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mt-auto{margin-top:auto}.me-0{margin-right:0}.me-1{margin-right:.25rem}.me-2{margin-right:.5rem}.me-3{margin-right:1rem}.me-4{margin-right:1.5rem}.me-5{margin-right:3rem}.me-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.mb-auto{margin-bottom:auto}.ms-0{margin-left:0}.ms-1{margin-left:.25rem}.ms-2{margin-left:.5rem}.ms-3{margin-left:1rem}.ms-4{margin-left:1.5rem}.ms-5{margin-left:3rem}.ms-auto{margin-left:auto}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.px-0{padding-right:0;padding-left:0}.px-1{padding-right:.25rem;padding-left:.25rem}.px-2{padding-right:.5rem;padding-left:.5rem}.px-3{padding-right:1rem;padding-left:1rem}.px-4{padding-right:1.5rem;padding-left:1.5rem}.px-5{padding-right:3rem;padding-left:3rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:1rem;padding-bottom:1rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:1rem}.pt-4{padding-top:1.5rem}.pt-5{padding-top:3rem}.pe-0{padding-right:0}.pe-1{padding-right:.25rem}.pe-2{padding-right:.5rem}.pe-3{padding-right:1rem}.pe-4{padding-right:1.5rem}.pe-5{padding-right:3rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:1rem}.pb-4{padding-bottom:1.5rem}.pb-5{padding-bottom:3rem}.ps-0{padding-left:0}.ps-1{padding-left:.25rem}.ps-2{padding-left:.5rem}.ps-3{padding-left:1rem}.ps-4{padding-left:1.5rem}.ps-5{padding-left:3rem}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}.gap-4{gap:1.5rem}.gap-5{gap:3rem}.row-gap-0{row-gap:0}.row-gap-1{row-gap:.25rem}.row-gap-2{row-gap:.5rem}.row-gap-3{row-gap:1rem}.row-gap-4{row-gap:1.5rem}.row-gap-5{row-gap:3rem}.column-gap-0{column-gap:0}.column-gap-1{column-gap:.25rem}.column-gap-2{column-gap:.5rem}.column-gap-3{column-gap:1rem}.column-gap-4{column-gap:1.5rem}.column-gap-5{column-gap:3rem}.font-monospace{font-family:var(--bs-font-monospace)}.fs-1{font-size:calc(1.375rem + 1.5vw)}.fs-2{font-size:calc(1.325rem + .9vw)}.fs-3{font-size:calc(1.3rem + .6vw)}.fs-4{font-size:calc(1.275rem + .3vw)}.fs-5{font-size:1.25rem}.fs-6{font-size:1rem}.fst-italic{font-style:italic}.fst-normal{font-style:normal}.fw-lighter{font-weight:lighter}.fw-light{font-weight:300}.fw-normal{font-weight:400}.fw-medium{font-weight:500}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.fw-bolder{font-weight:bolder}.lh-1{line-height:1}.lh-sm{line-height:1.25}.lh-base{line-height:1.5}.lh-lg{line-height:2}.text-start{text-align:left}.text-end{text-align:right}.text-center{text-align:center}.text-decoration-none{text-decoration:none}.text-decoration-underline{text-decoration:underline}.text-decoration-line-through{text-decoration:line-through}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-wrap{white-space:normal}.text-nowrap{white-space:nowrap}.text-break{word-wrap:break-word;word-break:break-word}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)}.text-black-50{--bs-text-opacity: 1;color:#00000080}.text-white-50{--bs-text-opacity: 1;color:#ffffff80}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)}.text-reset{--bs-text-opacity: 1;color:inherit}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)}.text-success-emphasis{color:var(--bs-success-text-emphasis)}.text-info-emphasis{color:var(--bs-info-text-emphasis)}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)}.text-light-emphasis{color:var(--bs-light-text-emphasis)}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)}.bg-gradient{background-image:var(--bs-gradient)}.user-select-all{user-select:all}.user-select-auto{user-select:auto}.user-select-none{user-select:none}.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}.rounded{border-radius:var(--bs-border-radius)}.rounded-0{border-radius:0}.rounded-1{border-radius:var(--bs-border-radius-sm)}.rounded-2{border-radius:var(--bs-border-radius)}.rounded-3{border-radius:var(--bs-border-radius-lg)}.rounded-4{border-radius:var(--bs-border-radius-xl)}.rounded-5{border-radius:var(--bs-border-radius-xxl)}.rounded-circle{border-radius:50%}.rounded-pill{border-radius:var(--bs-border-radius-pill)}.rounded-top{border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.rounded-top-0{border-top-left-radius:0;border-top-right-radius:0}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm);border-top-right-radius:var(--bs-border-radius-sm)}.rounded-top-2{border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius)}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg);border-top-right-radius:var(--bs-border-radius-lg)}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl);border-top-right-radius:var(--bs-border-radius-xl)}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl);border-top-right-radius:var(--bs-border-radius-xxl)}.rounded-top-circle{border-top-left-radius:50%;border-top-right-radius:50%}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill);border-top-right-radius:var(--bs-border-radius-pill)}.rounded-end{border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.rounded-end-0{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm);border-bottom-right-radius:var(--bs-border-radius-sm)}.rounded-end-2{border-top-right-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius)}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg);border-bottom-right-radius:var(--bs-border-radius-lg)}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl);border-bottom-right-radius:var(--bs-border-radius-xl)}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl);border-bottom-right-radius:var(--bs-border-radius-xxl)}.rounded-end-circle{border-top-right-radius:50%;border-bottom-right-radius:50%}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill);border-bottom-right-radius:var(--bs-border-radius-pill)}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius);border-bottom-left-radius:var(--bs-border-radius)}.rounded-bottom-0{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm);border-bottom-left-radius:var(--bs-border-radius-sm)}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius);border-bottom-left-radius:var(--bs-border-radius)}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg);border-bottom-left-radius:var(--bs-border-radius-lg)}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl);border-bottom-left-radius:var(--bs-border-radius-xl)}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl);border-bottom-left-radius:var(--bs-border-radius-xxl)}.rounded-bottom-circle{border-bottom-right-radius:50%;border-bottom-left-radius:50%}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill);border-bottom-left-radius:var(--bs-border-radius-pill)}.rounded-start{border-bottom-left-radius:var(--bs-border-radius);border-top-left-radius:var(--bs-border-radius)}.rounded-start-0{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm);border-top-left-radius:var(--bs-border-radius-sm)}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius);border-top-left-radius:var(--bs-border-radius)}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg);border-top-left-radius:var(--bs-border-radius-lg)}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl);border-top-left-radius:var(--bs-border-radius-xl)}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl);border-top-left-radius:var(--bs-border-radius-xxl)}.rounded-start-circle{border-bottom-left-radius:50%;border-top-left-radius:50%}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill);border-top-left-radius:var(--bs-border-radius-pill)}.visible{visibility:visible}.invisible{visibility:hidden}.z-n1{z-index:-1}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}@media (min-width: 576px){.float-sm-start{float:left}.float-sm-end{float:right}.float-sm-none{float:none}.object-fit-sm-contain{object-fit:contain}.object-fit-sm-cover{object-fit:cover}.object-fit-sm-fill{object-fit:fill}.object-fit-sm-scale{object-fit:scale-down}.object-fit-sm-none{object-fit:none}.d-sm-inline{display:inline}.d-sm-inline-block{display:inline-block}.d-sm-block{display:block}.d-sm-grid{display:grid}.d-sm-inline-grid{display:inline-grid}.d-sm-table{display:table}.d-sm-table-row{display:table-row}.d-sm-table-cell{display:table-cell}.d-sm-flex{display:flex}.d-sm-inline-flex{display:inline-flex}.d-sm-none{display:none}.flex-sm-fill{flex:1 1 auto}.flex-sm-row{flex-direction:row}.flex-sm-column{flex-direction:column}.flex-sm-row-reverse{flex-direction:row-reverse}.flex-sm-column-reverse{flex-direction:column-reverse}.flex-sm-grow-0{flex-grow:0}.flex-sm-grow-1{flex-grow:1}.flex-sm-shrink-0{flex-shrink:0}.flex-sm-shrink-1{flex-shrink:1}.flex-sm-wrap{flex-wrap:wrap}.flex-sm-nowrap{flex-wrap:nowrap}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-sm-start{justify-content:flex-start}.justify-content-sm-end{justify-content:flex-end}.justify-content-sm-center{justify-content:center}.justify-content-sm-between{justify-content:space-between}.justify-content-sm-around{justify-content:space-around}.justify-content-sm-evenly{justify-content:space-evenly}.align-items-sm-start{align-items:flex-start}.align-items-sm-end{align-items:flex-end}.align-items-sm-center{align-items:center}.align-items-sm-baseline{align-items:baseline}.align-items-sm-stretch{align-items:stretch}.align-content-sm-start{align-content:flex-start}.align-content-sm-end{align-content:flex-end}.align-content-sm-center{align-content:center}.align-content-sm-between{align-content:space-between}.align-content-sm-around{align-content:space-around}.align-content-sm-stretch{align-content:stretch}.align-self-sm-auto{align-self:auto}.align-self-sm-start{align-self:flex-start}.align-self-sm-end{align-self:flex-end}.align-self-sm-center{align-self:center}.align-self-sm-baseline{align-self:baseline}.align-self-sm-stretch{align-self:stretch}.order-sm-first{order:-1}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-last{order:6}.m-sm-0{margin:0}.m-sm-1{margin:.25rem}.m-sm-2{margin:.5rem}.m-sm-3{margin:1rem}.m-sm-4{margin:1.5rem}.m-sm-5{margin:3rem}.m-sm-auto{margin:auto}.mx-sm-0{margin-right:0;margin-left:0}.mx-sm-1{margin-right:.25rem;margin-left:.25rem}.mx-sm-2{margin-right:.5rem;margin-left:.5rem}.mx-sm-3{margin-right:1rem;margin-left:1rem}.mx-sm-4{margin-right:1.5rem;margin-left:1.5rem}.mx-sm-5{margin-right:3rem;margin-left:3rem}.mx-sm-auto{margin-right:auto;margin-left:auto}.my-sm-0{margin-top:0;margin-bottom:0}.my-sm-1{margin-top:.25rem;margin-bottom:.25rem}.my-sm-2{margin-top:.5rem;margin-bottom:.5rem}.my-sm-3{margin-top:1rem;margin-bottom:1rem}.my-sm-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-sm-5{margin-top:3rem;margin-bottom:3rem}.my-sm-auto{margin-top:auto;margin-bottom:auto}.mt-sm-0{margin-top:0}.mt-sm-1{margin-top:.25rem}.mt-sm-2{margin-top:.5rem}.mt-sm-3{margin-top:1rem}.mt-sm-4{margin-top:1.5rem}.mt-sm-5{margin-top:3rem}.mt-sm-auto{margin-top:auto}.me-sm-0{margin-right:0}.me-sm-1{margin-right:.25rem}.me-sm-2{margin-right:.5rem}.me-sm-3{margin-right:1rem}.me-sm-4{margin-right:1.5rem}.me-sm-5{margin-right:3rem}.me-sm-auto{margin-right:auto}.mb-sm-0{margin-bottom:0}.mb-sm-1{margin-bottom:.25rem}.mb-sm-2{margin-bottom:.5rem}.mb-sm-3{margin-bottom:1rem}.mb-sm-4{margin-bottom:1.5rem}.mb-sm-5{margin-bottom:3rem}.mb-sm-auto{margin-bottom:auto}.ms-sm-0{margin-left:0}.ms-sm-1{margin-left:.25rem}.ms-sm-2{margin-left:.5rem}.ms-sm-3{margin-left:1rem}.ms-sm-4{margin-left:1.5rem}.ms-sm-5{margin-left:3rem}.ms-sm-auto{margin-left:auto}.p-sm-0{padding:0}.p-sm-1{padding:.25rem}.p-sm-2{padding:.5rem}.p-sm-3{padding:1rem}.p-sm-4{padding:1.5rem}.p-sm-5{padding:3rem}.px-sm-0{padding-right:0;padding-left:0}.px-sm-1{padding-right:.25rem;padding-left:.25rem}.px-sm-2{padding-right:.5rem;padding-left:.5rem}.px-sm-3{padding-right:1rem;padding-left:1rem}.px-sm-4{padding-right:1.5rem;padding-left:1.5rem}.px-sm-5{padding-right:3rem;padding-left:3rem}.py-sm-0{padding-top:0;padding-bottom:0}.py-sm-1{padding-top:.25rem;padding-bottom:.25rem}.py-sm-2{padding-top:.5rem;padding-bottom:.5rem}.py-sm-3{padding-top:1rem;padding-bottom:1rem}.py-sm-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-sm-5{padding-top:3rem;padding-bottom:3rem}.pt-sm-0{padding-top:0}.pt-sm-1{padding-top:.25rem}.pt-sm-2{padding-top:.5rem}.pt-sm-3{padding-top:1rem}.pt-sm-4{padding-top:1.5rem}.pt-sm-5{padding-top:3rem}.pe-sm-0{padding-right:0}.pe-sm-1{padding-right:.25rem}.pe-sm-2{padding-right:.5rem}.pe-sm-3{padding-right:1rem}.pe-sm-4{padding-right:1.5rem}.pe-sm-5{padding-right:3rem}.pb-sm-0{padding-bottom:0}.pb-sm-1{padding-bottom:.25rem}.pb-sm-2{padding-bottom:.5rem}.pb-sm-3{padding-bottom:1rem}.pb-sm-4{padding-bottom:1.5rem}.pb-sm-5{padding-bottom:3rem}.ps-sm-0{padding-left:0}.ps-sm-1{padding-left:.25rem}.ps-sm-2{padding-left:.5rem}.ps-sm-3{padding-left:1rem}.ps-sm-4{padding-left:1.5rem}.ps-sm-5{padding-left:3rem}.gap-sm-0{gap:0}.gap-sm-1{gap:.25rem}.gap-sm-2{gap:.5rem}.gap-sm-3{gap:1rem}.gap-sm-4{gap:1.5rem}.gap-sm-5{gap:3rem}.row-gap-sm-0{row-gap:0}.row-gap-sm-1{row-gap:.25rem}.row-gap-sm-2{row-gap:.5rem}.row-gap-sm-3{row-gap:1rem}.row-gap-sm-4{row-gap:1.5rem}.row-gap-sm-5{row-gap:3rem}.column-gap-sm-0{column-gap:0}.column-gap-sm-1{column-gap:.25rem}.column-gap-sm-2{column-gap:.5rem}.column-gap-sm-3{column-gap:1rem}.column-gap-sm-4{column-gap:1.5rem}.column-gap-sm-5{column-gap:3rem}.text-sm-start{text-align:left}.text-sm-end{text-align:right}.text-sm-center{text-align:center}}@media (min-width: 768px){.float-md-start{float:left}.float-md-end{float:right}.float-md-none{float:none}.object-fit-md-contain{object-fit:contain}.object-fit-md-cover{object-fit:cover}.object-fit-md-fill{object-fit:fill}.object-fit-md-scale{object-fit:scale-down}.object-fit-md-none{object-fit:none}.d-md-inline{display:inline}.d-md-inline-block{display:inline-block}.d-md-block{display:block}.d-md-grid{display:grid}.d-md-inline-grid{display:inline-grid}.d-md-table{display:table}.d-md-table-row{display:table-row}.d-md-table-cell{display:table-cell}.d-md-flex{display:flex}.d-md-inline-flex{display:inline-flex}.d-md-none{display:none}.flex-md-fill{flex:1 1 auto}.flex-md-row{flex-direction:row}.flex-md-column{flex-direction:column}.flex-md-row-reverse{flex-direction:row-reverse}.flex-md-column-reverse{flex-direction:column-reverse}.flex-md-grow-0{flex-grow:0}.flex-md-grow-1{flex-grow:1}.flex-md-shrink-0{flex-shrink:0}.flex-md-shrink-1{flex-shrink:1}.flex-md-wrap{flex-wrap:wrap}.flex-md-nowrap{flex-wrap:nowrap}.flex-md-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-md-start{justify-content:flex-start}.justify-content-md-end{justify-content:flex-end}.justify-content-md-center{justify-content:center}.justify-content-md-between{justify-content:space-between}.justify-content-md-around{justify-content:space-around}.justify-content-md-evenly{justify-content:space-evenly}.align-items-md-start{align-items:flex-start}.align-items-md-end{align-items:flex-end}.align-items-md-center{align-items:center}.align-items-md-baseline{align-items:baseline}.align-items-md-stretch{align-items:stretch}.align-content-md-start{align-content:flex-start}.align-content-md-end{align-content:flex-end}.align-content-md-center{align-content:center}.align-content-md-between{align-content:space-between}.align-content-md-around{align-content:space-around}.align-content-md-stretch{align-content:stretch}.align-self-md-auto{align-self:auto}.align-self-md-start{align-self:flex-start}.align-self-md-end{align-self:flex-end}.align-self-md-center{align-self:center}.align-self-md-baseline{align-self:baseline}.align-self-md-stretch{align-self:stretch}.order-md-first{order:-1}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-last{order:6}.m-md-0{margin:0}.m-md-1{margin:.25rem}.m-md-2{margin:.5rem}.m-md-3{margin:1rem}.m-md-4{margin:1.5rem}.m-md-5{margin:3rem}.m-md-auto{margin:auto}.mx-md-0{margin-right:0;margin-left:0}.mx-md-1{margin-right:.25rem;margin-left:.25rem}.mx-md-2{margin-right:.5rem;margin-left:.5rem}.mx-md-3{margin-right:1rem;margin-left:1rem}.mx-md-4{margin-right:1.5rem;margin-left:1.5rem}.mx-md-5{margin-right:3rem;margin-left:3rem}.mx-md-auto{margin-right:auto;margin-left:auto}.my-md-0{margin-top:0;margin-bottom:0}.my-md-1{margin-top:.25rem;margin-bottom:.25rem}.my-md-2{margin-top:.5rem;margin-bottom:.5rem}.my-md-3{margin-top:1rem;margin-bottom:1rem}.my-md-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-md-5{margin-top:3rem;margin-bottom:3rem}.my-md-auto{margin-top:auto;margin-bottom:auto}.mt-md-0{margin-top:0}.mt-md-1{margin-top:.25rem}.mt-md-2{margin-top:.5rem}.mt-md-3{margin-top:1rem}.mt-md-4{margin-top:1.5rem}.mt-md-5{margin-top:3rem}.mt-md-auto{margin-top:auto}.me-md-0{margin-right:0}.me-md-1{margin-right:.25rem}.me-md-2{margin-right:.5rem}.me-md-3{margin-right:1rem}.me-md-4{margin-right:1.5rem}.me-md-5{margin-right:3rem}.me-md-auto{margin-right:auto}.mb-md-0{margin-bottom:0}.mb-md-1{margin-bottom:.25rem}.mb-md-2{margin-bottom:.5rem}.mb-md-3{margin-bottom:1rem}.mb-md-4{margin-bottom:1.5rem}.mb-md-5{margin-bottom:3rem}.mb-md-auto{margin-bottom:auto}.ms-md-0{margin-left:0}.ms-md-1{margin-left:.25rem}.ms-md-2{margin-left:.5rem}.ms-md-3{margin-left:1rem}.ms-md-4{margin-left:1.5rem}.ms-md-5{margin-left:3rem}.ms-md-auto{margin-left:auto}.p-md-0{padding:0}.p-md-1{padding:.25rem}.p-md-2{padding:.5rem}.p-md-3{padding:1rem}.p-md-4{padding:1.5rem}.p-md-5{padding:3rem}.px-md-0{padding-right:0;padding-left:0}.px-md-1{padding-right:.25rem;padding-left:.25rem}.px-md-2{padding-right:.5rem;padding-left:.5rem}.px-md-3{padding-right:1rem;padding-left:1rem}.px-md-4{padding-right:1.5rem;padding-left:1.5rem}.px-md-5{padding-right:3rem;padding-left:3rem}.py-md-0{padding-top:0;padding-bottom:0}.py-md-1{padding-top:.25rem;padding-bottom:.25rem}.py-md-2{padding-top:.5rem;padding-bottom:.5rem}.py-md-3{padding-top:1rem;padding-bottom:1rem}.py-md-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-md-5{padding-top:3rem;padding-bottom:3rem}.pt-md-0{padding-top:0}.pt-md-1{padding-top:.25rem}.pt-md-2{padding-top:.5rem}.pt-md-3{padding-top:1rem}.pt-md-4{padding-top:1.5rem}.pt-md-5{padding-top:3rem}.pe-md-0{padding-right:0}.pe-md-1{padding-right:.25rem}.pe-md-2{padding-right:.5rem}.pe-md-3{padding-right:1rem}.pe-md-4{padding-right:1.5rem}.pe-md-5{padding-right:3rem}.pb-md-0{padding-bottom:0}.pb-md-1{padding-bottom:.25rem}.pb-md-2{padding-bottom:.5rem}.pb-md-3{padding-bottom:1rem}.pb-md-4{padding-bottom:1.5rem}.pb-md-5{padding-bottom:3rem}.ps-md-0{padding-left:0}.ps-md-1{padding-left:.25rem}.ps-md-2{padding-left:.5rem}.ps-md-3{padding-left:1rem}.ps-md-4{padding-left:1.5rem}.ps-md-5{padding-left:3rem}.gap-md-0{gap:0}.gap-md-1{gap:.25rem}.gap-md-2{gap:.5rem}.gap-md-3{gap:1rem}.gap-md-4{gap:1.5rem}.gap-md-5{gap:3rem}.row-gap-md-0{row-gap:0}.row-gap-md-1{row-gap:.25rem}.row-gap-md-2{row-gap:.5rem}.row-gap-md-3{row-gap:1rem}.row-gap-md-4{row-gap:1.5rem}.row-gap-md-5{row-gap:3rem}.column-gap-md-0{column-gap:0}.column-gap-md-1{column-gap:.25rem}.column-gap-md-2{column-gap:.5rem}.column-gap-md-3{column-gap:1rem}.column-gap-md-4{column-gap:1.5rem}.column-gap-md-5{column-gap:3rem}.text-md-start{text-align:left}.text-md-end{text-align:right}.text-md-center{text-align:center}}@media (min-width: 992px){.float-lg-start{float:left}.float-lg-end{float:right}.float-lg-none{float:none}.object-fit-lg-contain{object-fit:contain}.object-fit-lg-cover{object-fit:cover}.object-fit-lg-fill{object-fit:fill}.object-fit-lg-scale{object-fit:scale-down}.object-fit-lg-none{object-fit:none}.d-lg-inline{display:inline}.d-lg-inline-block{display:inline-block}.d-lg-block{display:block}.d-lg-grid{display:grid}.d-lg-inline-grid{display:inline-grid}.d-lg-table{display:table}.d-lg-table-row{display:table-row}.d-lg-table-cell{display:table-cell}.d-lg-flex{display:flex}.d-lg-inline-flex{display:inline-flex}.d-lg-none{display:none}.flex-lg-fill{flex:1 1 auto}.flex-lg-row{flex-direction:row}.flex-lg-column{flex-direction:column}.flex-lg-row-reverse{flex-direction:row-reverse}.flex-lg-column-reverse{flex-direction:column-reverse}.flex-lg-grow-0{flex-grow:0}.flex-lg-grow-1{flex-grow:1}.flex-lg-shrink-0{flex-shrink:0}.flex-lg-shrink-1{flex-shrink:1}.flex-lg-wrap{flex-wrap:wrap}.flex-lg-nowrap{flex-wrap:nowrap}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-lg-start{justify-content:flex-start}.justify-content-lg-end{justify-content:flex-end}.justify-content-lg-center{justify-content:center}.justify-content-lg-between{justify-content:space-between}.justify-content-lg-around{justify-content:space-around}.justify-content-lg-evenly{justify-content:space-evenly}.align-items-lg-start{align-items:flex-start}.align-items-lg-end{align-items:flex-end}.align-items-lg-center{align-items:center}.align-items-lg-baseline{align-items:baseline}.align-items-lg-stretch{align-items:stretch}.align-content-lg-start{align-content:flex-start}.align-content-lg-end{align-content:flex-end}.align-content-lg-center{align-content:center}.align-content-lg-between{align-content:space-between}.align-content-lg-around{align-content:space-around}.align-content-lg-stretch{align-content:stretch}.align-self-lg-auto{align-self:auto}.align-self-lg-start{align-self:flex-start}.align-self-lg-end{align-self:flex-end}.align-self-lg-center{align-self:center}.align-self-lg-baseline{align-self:baseline}.align-self-lg-stretch{align-self:stretch}.order-lg-first{order:-1}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-last{order:6}.m-lg-0{margin:0}.m-lg-1{margin:.25rem}.m-lg-2{margin:.5rem}.m-lg-3{margin:1rem}.m-lg-4{margin:1.5rem}.m-lg-5{margin:3rem}.m-lg-auto{margin:auto}.mx-lg-0{margin-right:0;margin-left:0}.mx-lg-1{margin-right:.25rem;margin-left:.25rem}.mx-lg-2{margin-right:.5rem;margin-left:.5rem}.mx-lg-3{margin-right:1rem;margin-left:1rem}.mx-lg-4{margin-right:1.5rem;margin-left:1.5rem}.mx-lg-5{margin-right:3rem;margin-left:3rem}.mx-lg-auto{margin-right:auto;margin-left:auto}.my-lg-0{margin-top:0;margin-bottom:0}.my-lg-1{margin-top:.25rem;margin-bottom:.25rem}.my-lg-2{margin-top:.5rem;margin-bottom:.5rem}.my-lg-3{margin-top:1rem;margin-bottom:1rem}.my-lg-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-lg-5{margin-top:3rem;margin-bottom:3rem}.my-lg-auto{margin-top:auto;margin-bottom:auto}.mt-lg-0{margin-top:0}.mt-lg-1{margin-top:.25rem}.mt-lg-2{margin-top:.5rem}.mt-lg-3{margin-top:1rem}.mt-lg-4{margin-top:1.5rem}.mt-lg-5{margin-top:3rem}.mt-lg-auto{margin-top:auto}.me-lg-0{margin-right:0}.me-lg-1{margin-right:.25rem}.me-lg-2{margin-right:.5rem}.me-lg-3{margin-right:1rem}.me-lg-4{margin-right:1.5rem}.me-lg-5{margin-right:3rem}.me-lg-auto{margin-right:auto}.mb-lg-0{margin-bottom:0}.mb-lg-1{margin-bottom:.25rem}.mb-lg-2{margin-bottom:.5rem}.mb-lg-3{margin-bottom:1rem}.mb-lg-4{margin-bottom:1.5rem}.mb-lg-5{margin-bottom:3rem}.mb-lg-auto{margin-bottom:auto}.ms-lg-0{margin-left:0}.ms-lg-1{margin-left:.25rem}.ms-lg-2{margin-left:.5rem}.ms-lg-3{margin-left:1rem}.ms-lg-4{margin-left:1.5rem}.ms-lg-5{margin-left:3rem}.ms-lg-auto{margin-left:auto}.p-lg-0{padding:0}.p-lg-1{padding:.25rem}.p-lg-2{padding:.5rem}.p-lg-3{padding:1rem}.p-lg-4{padding:1.5rem}.p-lg-5{padding:3rem}.px-lg-0{padding-right:0;padding-left:0}.px-lg-1{padding-right:.25rem;padding-left:.25rem}.px-lg-2{padding-right:.5rem;padding-left:.5rem}.px-lg-3{padding-right:1rem;padding-left:1rem}.px-lg-4{padding-right:1.5rem;padding-left:1.5rem}.px-lg-5{padding-right:3rem;padding-left:3rem}.py-lg-0{padding-top:0;padding-bottom:0}.py-lg-1{padding-top:.25rem;padding-bottom:.25rem}.py-lg-2{padding-top:.5rem;padding-bottom:.5rem}.py-lg-3{padding-top:1rem;padding-bottom:1rem}.py-lg-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-lg-5{padding-top:3rem;padding-bottom:3rem}.pt-lg-0{padding-top:0}.pt-lg-1{padding-top:.25rem}.pt-lg-2{padding-top:.5rem}.pt-lg-3{padding-top:1rem}.pt-lg-4{padding-top:1.5rem}.pt-lg-5{padding-top:3rem}.pe-lg-0{padding-right:0}.pe-lg-1{padding-right:.25rem}.pe-lg-2{padding-right:.5rem}.pe-lg-3{padding-right:1rem}.pe-lg-4{padding-right:1.5rem}.pe-lg-5{padding-right:3rem}.pb-lg-0{padding-bottom:0}.pb-lg-1{padding-bottom:.25rem}.pb-lg-2{padding-bottom:.5rem}.pb-lg-3{padding-bottom:1rem}.pb-lg-4{padding-bottom:1.5rem}.pb-lg-5{padding-bottom:3rem}.ps-lg-0{padding-left:0}.ps-lg-1{padding-left:.25rem}.ps-lg-2{padding-left:.5rem}.ps-lg-3{padding-left:1rem}.ps-lg-4{padding-left:1.5rem}.ps-lg-5{padding-left:3rem}.gap-lg-0{gap:0}.gap-lg-1{gap:.25rem}.gap-lg-2{gap:.5rem}.gap-lg-3{gap:1rem}.gap-lg-4{gap:1.5rem}.gap-lg-5{gap:3rem}.row-gap-lg-0{row-gap:0}.row-gap-lg-1{row-gap:.25rem}.row-gap-lg-2{row-gap:.5rem}.row-gap-lg-3{row-gap:1rem}.row-gap-lg-4{row-gap:1.5rem}.row-gap-lg-5{row-gap:3rem}.column-gap-lg-0{column-gap:0}.column-gap-lg-1{column-gap:.25rem}.column-gap-lg-2{column-gap:.5rem}.column-gap-lg-3{column-gap:1rem}.column-gap-lg-4{column-gap:1.5rem}.column-gap-lg-5{column-gap:3rem}.text-lg-start{text-align:left}.text-lg-end{text-align:right}.text-lg-center{text-align:center}}@media (min-width: 1200px){.float-xl-start{float:left}.float-xl-end{float:right}.float-xl-none{float:none}.object-fit-xl-contain{object-fit:contain}.object-fit-xl-cover{object-fit:cover}.object-fit-xl-fill{object-fit:fill}.object-fit-xl-scale{object-fit:scale-down}.object-fit-xl-none{object-fit:none}.d-xl-inline{display:inline}.d-xl-inline-block{display:inline-block}.d-xl-block{display:block}.d-xl-grid{display:grid}.d-xl-inline-grid{display:inline-grid}.d-xl-table{display:table}.d-xl-table-row{display:table-row}.d-xl-table-cell{display:table-cell}.d-xl-flex{display:flex}.d-xl-inline-flex{display:inline-flex}.d-xl-none{display:none}.flex-xl-fill{flex:1 1 auto}.flex-xl-row{flex-direction:row}.flex-xl-column{flex-direction:column}.flex-xl-row-reverse{flex-direction:row-reverse}.flex-xl-column-reverse{flex-direction:column-reverse}.flex-xl-grow-0{flex-grow:0}.flex-xl-grow-1{flex-grow:1}.flex-xl-shrink-0{flex-shrink:0}.flex-xl-shrink-1{flex-shrink:1}.flex-xl-wrap{flex-wrap:wrap}.flex-xl-nowrap{flex-wrap:nowrap}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-xl-start{justify-content:flex-start}.justify-content-xl-end{justify-content:flex-end}.justify-content-xl-center{justify-content:center}.justify-content-xl-between{justify-content:space-between}.justify-content-xl-around{justify-content:space-around}.justify-content-xl-evenly{justify-content:space-evenly}.align-items-xl-start{align-items:flex-start}.align-items-xl-end{align-items:flex-end}.align-items-xl-center{align-items:center}.align-items-xl-baseline{align-items:baseline}.align-items-xl-stretch{align-items:stretch}.align-content-xl-start{align-content:flex-start}.align-content-xl-end{align-content:flex-end}.align-content-xl-center{align-content:center}.align-content-xl-between{align-content:space-between}.align-content-xl-around{align-content:space-around}.align-content-xl-stretch{align-content:stretch}.align-self-xl-auto{align-self:auto}.align-self-xl-start{align-self:flex-start}.align-self-xl-end{align-self:flex-end}.align-self-xl-center{align-self:center}.align-self-xl-baseline{align-self:baseline}.align-self-xl-stretch{align-self:stretch}.order-xl-first{order:-1}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-last{order:6}.m-xl-0{margin:0}.m-xl-1{margin:.25rem}.m-xl-2{margin:.5rem}.m-xl-3{margin:1rem}.m-xl-4{margin:1.5rem}.m-xl-5{margin:3rem}.m-xl-auto{margin:auto}.mx-xl-0{margin-right:0;margin-left:0}.mx-xl-1{margin-right:.25rem;margin-left:.25rem}.mx-xl-2{margin-right:.5rem;margin-left:.5rem}.mx-xl-3{margin-right:1rem;margin-left:1rem}.mx-xl-4{margin-right:1.5rem;margin-left:1.5rem}.mx-xl-5{margin-right:3rem;margin-left:3rem}.mx-xl-auto{margin-right:auto;margin-left:auto}.my-xl-0{margin-top:0;margin-bottom:0}.my-xl-1{margin-top:.25rem;margin-bottom:.25rem}.my-xl-2{margin-top:.5rem;margin-bottom:.5rem}.my-xl-3{margin-top:1rem;margin-bottom:1rem}.my-xl-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-xl-5{margin-top:3rem;margin-bottom:3rem}.my-xl-auto{margin-top:auto;margin-bottom:auto}.mt-xl-0{margin-top:0}.mt-xl-1{margin-top:.25rem}.mt-xl-2{margin-top:.5rem}.mt-xl-3{margin-top:1rem}.mt-xl-4{margin-top:1.5rem}.mt-xl-5{margin-top:3rem}.mt-xl-auto{margin-top:auto}.me-xl-0{margin-right:0}.me-xl-1{margin-right:.25rem}.me-xl-2{margin-right:.5rem}.me-xl-3{margin-right:1rem}.me-xl-4{margin-right:1.5rem}.me-xl-5{margin-right:3rem}.me-xl-auto{margin-right:auto}.mb-xl-0{margin-bottom:0}.mb-xl-1{margin-bottom:.25rem}.mb-xl-2{margin-bottom:.5rem}.mb-xl-3{margin-bottom:1rem}.mb-xl-4{margin-bottom:1.5rem}.mb-xl-5{margin-bottom:3rem}.mb-xl-auto{margin-bottom:auto}.ms-xl-0{margin-left:0}.ms-xl-1{margin-left:.25rem}.ms-xl-2{margin-left:.5rem}.ms-xl-3{margin-left:1rem}.ms-xl-4{margin-left:1.5rem}.ms-xl-5{margin-left:3rem}.ms-xl-auto{margin-left:auto}.p-xl-0{padding:0}.p-xl-1{padding:.25rem}.p-xl-2{padding:.5rem}.p-xl-3{padding:1rem}.p-xl-4{padding:1.5rem}.p-xl-5{padding:3rem}.px-xl-0{padding-right:0;padding-left:0}.px-xl-1{padding-right:.25rem;padding-left:.25rem}.px-xl-2{padding-right:.5rem;padding-left:.5rem}.px-xl-3{padding-right:1rem;padding-left:1rem}.px-xl-4{padding-right:1.5rem;padding-left:1.5rem}.px-xl-5{padding-right:3rem;padding-left:3rem}.py-xl-0{padding-top:0;padding-bottom:0}.py-xl-1{padding-top:.25rem;padding-bottom:.25rem}.py-xl-2{padding-top:.5rem;padding-bottom:.5rem}.py-xl-3{padding-top:1rem;padding-bottom:1rem}.py-xl-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-xl-5{padding-top:3rem;padding-bottom:3rem}.pt-xl-0{padding-top:0}.pt-xl-1{padding-top:.25rem}.pt-xl-2{padding-top:.5rem}.pt-xl-3{padding-top:1rem}.pt-xl-4{padding-top:1.5rem}.pt-xl-5{padding-top:3rem}.pe-xl-0{padding-right:0}.pe-xl-1{padding-right:.25rem}.pe-xl-2{padding-right:.5rem}.pe-xl-3{padding-right:1rem}.pe-xl-4{padding-right:1.5rem}.pe-xl-5{padding-right:3rem}.pb-xl-0{padding-bottom:0}.pb-xl-1{padding-bottom:.25rem}.pb-xl-2{padding-bottom:.5rem}.pb-xl-3{padding-bottom:1rem}.pb-xl-4{padding-bottom:1.5rem}.pb-xl-5{padding-bottom:3rem}.ps-xl-0{padding-left:0}.ps-xl-1{padding-left:.25rem}.ps-xl-2{padding-left:.5rem}.ps-xl-3{padding-left:1rem}.ps-xl-4{padding-left:1.5rem}.ps-xl-5{padding-left:3rem}.gap-xl-0{gap:0}.gap-xl-1{gap:.25rem}.gap-xl-2{gap:.5rem}.gap-xl-3{gap:1rem}.gap-xl-4{gap:1.5rem}.gap-xl-5{gap:3rem}.row-gap-xl-0{row-gap:0}.row-gap-xl-1{row-gap:.25rem}.row-gap-xl-2{row-gap:.5rem}.row-gap-xl-3{row-gap:1rem}.row-gap-xl-4{row-gap:1.5rem}.row-gap-xl-5{row-gap:3rem}.column-gap-xl-0{column-gap:0}.column-gap-xl-1{column-gap:.25rem}.column-gap-xl-2{column-gap:.5rem}.column-gap-xl-3{column-gap:1rem}.column-gap-xl-4{column-gap:1.5rem}.column-gap-xl-5{column-gap:3rem}.text-xl-start{text-align:left}.text-xl-end{text-align:right}.text-xl-center{text-align:center}}@media (min-width: 1400px){.float-xxl-start{float:left}.float-xxl-end{float:right}.float-xxl-none{float:none}.object-fit-xxl-contain{object-fit:contain}.object-fit-xxl-cover{object-fit:cover}.object-fit-xxl-fill{object-fit:fill}.object-fit-xxl-scale{object-fit:scale-down}.object-fit-xxl-none{object-fit:none}.d-xxl-inline{display:inline}.d-xxl-inline-block{display:inline-block}.d-xxl-block{display:block}.d-xxl-grid{display:grid}.d-xxl-inline-grid{display:inline-grid}.d-xxl-table{display:table}.d-xxl-table-row{display:table-row}.d-xxl-table-cell{display:table-cell}.d-xxl-flex{display:flex}.d-xxl-inline-flex{display:inline-flex}.d-xxl-none{display:none}.flex-xxl-fill{flex:1 1 auto}.flex-xxl-row{flex-direction:row}.flex-xxl-column{flex-direction:column}.flex-xxl-row-reverse{flex-direction:row-reverse}.flex-xxl-column-reverse{flex-direction:column-reverse}.flex-xxl-grow-0{flex-grow:0}.flex-xxl-grow-1{flex-grow:1}.flex-xxl-shrink-0{flex-shrink:0}.flex-xxl-shrink-1{flex-shrink:1}.flex-xxl-wrap{flex-wrap:wrap}.flex-xxl-nowrap{flex-wrap:nowrap}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse}.justify-content-xxl-start{justify-content:flex-start}.justify-content-xxl-end{justify-content:flex-end}.justify-content-xxl-center{justify-content:center}.justify-content-xxl-between{justify-content:space-between}.justify-content-xxl-around{justify-content:space-around}.justify-content-xxl-evenly{justify-content:space-evenly}.align-items-xxl-start{align-items:flex-start}.align-items-xxl-end{align-items:flex-end}.align-items-xxl-center{align-items:center}.align-items-xxl-baseline{align-items:baseline}.align-items-xxl-stretch{align-items:stretch}.align-content-xxl-start{align-content:flex-start}.align-content-xxl-end{align-content:flex-end}.align-content-xxl-center{align-content:center}.align-content-xxl-between{align-content:space-between}.align-content-xxl-around{align-content:space-around}.align-content-xxl-stretch{align-content:stretch}.align-self-xxl-auto{align-self:auto}.align-self-xxl-start{align-self:flex-start}.align-self-xxl-end{align-self:flex-end}.align-self-xxl-center{align-self:center}.align-self-xxl-baseline{align-self:baseline}.align-self-xxl-stretch{align-self:stretch}.order-xxl-first{order:-1}.order-xxl-0{order:0}.order-xxl-1{order:1}.order-xxl-2{order:2}.order-xxl-3{order:3}.order-xxl-4{order:4}.order-xxl-5{order:5}.order-xxl-last{order:6}.m-xxl-0{margin:0}.m-xxl-1{margin:.25rem}.m-xxl-2{margin:.5rem}.m-xxl-3{margin:1rem}.m-xxl-4{margin:1.5rem}.m-xxl-5{margin:3rem}.m-xxl-auto{margin:auto}.mx-xxl-0{margin-right:0;margin-left:0}.mx-xxl-1{margin-right:.25rem;margin-left:.25rem}.mx-xxl-2{margin-right:.5rem;margin-left:.5rem}.mx-xxl-3{margin-right:1rem;margin-left:1rem}.mx-xxl-4{margin-right:1.5rem;margin-left:1.5rem}.mx-xxl-5{margin-right:3rem;margin-left:3rem}.mx-xxl-auto{margin-right:auto;margin-left:auto}.my-xxl-0{margin-top:0;margin-bottom:0}.my-xxl-1{margin-top:.25rem;margin-bottom:.25rem}.my-xxl-2{margin-top:.5rem;margin-bottom:.5rem}.my-xxl-3{margin-top:1rem;margin-bottom:1rem}.my-xxl-4{margin-top:1.5rem;margin-bottom:1.5rem}.my-xxl-5{margin-top:3rem;margin-bottom:3rem}.my-xxl-auto{margin-top:auto;margin-bottom:auto}.mt-xxl-0{margin-top:0}.mt-xxl-1{margin-top:.25rem}.mt-xxl-2{margin-top:.5rem}.mt-xxl-3{margin-top:1rem}.mt-xxl-4{margin-top:1.5rem}.mt-xxl-5{margin-top:3rem}.mt-xxl-auto{margin-top:auto}.me-xxl-0{margin-right:0}.me-xxl-1{margin-right:.25rem}.me-xxl-2{margin-right:.5rem}.me-xxl-3{margin-right:1rem}.me-xxl-4{margin-right:1.5rem}.me-xxl-5{margin-right:3rem}.me-xxl-auto{margin-right:auto}.mb-xxl-0{margin-bottom:0}.mb-xxl-1{margin-bottom:.25rem}.mb-xxl-2{margin-bottom:.5rem}.mb-xxl-3{margin-bottom:1rem}.mb-xxl-4{margin-bottom:1.5rem}.mb-xxl-5{margin-bottom:3rem}.mb-xxl-auto{margin-bottom:auto}.ms-xxl-0{margin-left:0}.ms-xxl-1{margin-left:.25rem}.ms-xxl-2{margin-left:.5rem}.ms-xxl-3{margin-left:1rem}.ms-xxl-4{margin-left:1.5rem}.ms-xxl-5{margin-left:3rem}.ms-xxl-auto{margin-left:auto}.p-xxl-0{padding:0}.p-xxl-1{padding:.25rem}.p-xxl-2{padding:.5rem}.p-xxl-3{padding:1rem}.p-xxl-4{padding:1.5rem}.p-xxl-5{padding:3rem}.px-xxl-0{padding-right:0;padding-left:0}.px-xxl-1{padding-right:.25rem;padding-left:.25rem}.px-xxl-2{padding-right:.5rem;padding-left:.5rem}.px-xxl-3{padding-right:1rem;padding-left:1rem}.px-xxl-4{padding-right:1.5rem;padding-left:1.5rem}.px-xxl-5{padding-right:3rem;padding-left:3rem}.py-xxl-0{padding-top:0;padding-bottom:0}.py-xxl-1{padding-top:.25rem;padding-bottom:.25rem}.py-xxl-2{padding-top:.5rem;padding-bottom:.5rem}.py-xxl-3{padding-top:1rem;padding-bottom:1rem}.py-xxl-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-xxl-5{padding-top:3rem;padding-bottom:3rem}.pt-xxl-0{padding-top:0}.pt-xxl-1{padding-top:.25rem}.pt-xxl-2{padding-top:.5rem}.pt-xxl-3{padding-top:1rem}.pt-xxl-4{padding-top:1.5rem}.pt-xxl-5{padding-top:3rem}.pe-xxl-0{padding-right:0}.pe-xxl-1{padding-right:.25rem}.pe-xxl-2{padding-right:.5rem}.pe-xxl-3{padding-right:1rem}.pe-xxl-4{padding-right:1.5rem}.pe-xxl-5{padding-right:3rem}.pb-xxl-0{padding-bottom:0}.pb-xxl-1{padding-bottom:.25rem}.pb-xxl-2{padding-bottom:.5rem}.pb-xxl-3{padding-bottom:1rem}.pb-xxl-4{padding-bottom:1.5rem}.pb-xxl-5{padding-bottom:3rem}.ps-xxl-0{padding-left:0}.ps-xxl-1{padding-left:.25rem}.ps-xxl-2{padding-left:.5rem}.ps-xxl-3{padding-left:1rem}.ps-xxl-4{padding-left:1.5rem}.ps-xxl-5{padding-left:3rem}.gap-xxl-0{gap:0}.gap-xxl-1{gap:.25rem}.gap-xxl-2{gap:.5rem}.gap-xxl-3{gap:1rem}.gap-xxl-4{gap:1.5rem}.gap-xxl-5{gap:3rem}.row-gap-xxl-0{row-gap:0}.row-gap-xxl-1{row-gap:.25rem}.row-gap-xxl-2{row-gap:.5rem}.row-gap-xxl-3{row-gap:1rem}.row-gap-xxl-4{row-gap:1.5rem}.row-gap-xxl-5{row-gap:3rem}.column-gap-xxl-0{column-gap:0}.column-gap-xxl-1{column-gap:.25rem}.column-gap-xxl-2{column-gap:.5rem}.column-gap-xxl-3{column-gap:1rem}.column-gap-xxl-4{column-gap:1.5rem}.column-gap-xxl-5{column-gap:3rem}.text-xxl-start{text-align:left}.text-xxl-end{text-align:right}.text-xxl-center{text-align:center}}@media (min-width: 1200px){.fs-1{font-size:2.5rem}.fs-2{font-size:2rem}.fs-3{font-size:1.75rem}.fs-4{font-size:1.5rem}}@media print{.d-print-inline{display:inline}.d-print-inline-block{display:inline-block}.d-print-block{display:block}.d-print-grid{display:grid}.d-print-inline-grid{display:inline-grid}.d-print-table{display:table}.d-print-table-row{display:table-row}.d-print-table-cell{display:table-cell}.d-print-flex{display:flex}.d-print-inline-flex{display:inline-flex}.d-print-none{display:none}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:white;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f}.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515}.hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af}.hljs-doctag{color:gray}.hljs-attr{color:red}.hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}[data-bs-theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}[data-bs-theme=dark] code.hljs{padding:3px 5px}[data-bs-theme=dark] .hljs{background:#1E1E1E;color:#dcdcdc}[data-bs-theme=dark] .hljs-keyword,[data-bs-theme=dark] .hljs-literal,[data-bs-theme=dark] .hljs-symbol,[data-bs-theme=dark] .hljs-name{color:#569cd6}[data-bs-theme=dark] .hljs-link{color:#569cd6;text-decoration:underline}[data-bs-theme=dark] .hljs-built_in,[data-bs-theme=dark] .hljs-type{color:#4ec9b0}[data-bs-theme=dark] .hljs-number,[data-bs-theme=dark] .hljs-class{color:#b8d7a3}[data-bs-theme=dark] .hljs-string,[data-bs-theme=dark] .hljs-meta .hljs-string{color:#d69d85}[data-bs-theme=dark] .hljs-regexp,[data-bs-theme=dark] .hljs-template-tag{color:#9a5334}[data-bs-theme=dark] .hljs-subst,[data-bs-theme=dark] .hljs-function,[data-bs-theme=dark] .hljs-title,[data-bs-theme=dark] .hljs-params,[data-bs-theme=dark] .hljs-formula{color:#dcdcdc}[data-bs-theme=dark] .hljs-comment,[data-bs-theme=dark] .hljs-quote{color:#57a64a;font-style:italic}[data-bs-theme=dark] .hljs-doctag{color:#608b4e}[data-bs-theme=dark] .hljs-meta,[data-bs-theme=dark] .hljs-meta .hljs-keyword,[data-bs-theme=dark] .hljs-tag{color:#9b9b9b}[data-bs-theme=dark] .hljs-variable,[data-bs-theme=dark] .hljs-template-variable{color:#bd63c5}[data-bs-theme=dark] .hljs-attr,[data-bs-theme=dark] .hljs-attribute{color:#9cdcfe}[data-bs-theme=dark] .hljs-section{color:gold}[data-bs-theme=dark] .hljs-emphasis{font-style:italic}[data-bs-theme=dark] .hljs-strong{font-weight:700}[data-bs-theme=dark] .hljs-bullet,[data-bs-theme=dark] .hljs-selector-tag,[data-bs-theme=dark] .hljs-selector-id,[data-bs-theme=dark] .hljs-selector-class,[data-bs-theme=dark] .hljs-selector-attr,[data-bs-theme=dark] .hljs-selector-pseudo{color:#d7ba7d}[data-bs-theme=dark] .hljs-addition{background-color:#144212;display:inline-block;width:100%}[data-bs-theme=dark] .hljs-deletion{background-color:#600;display:inline-block;width:100%}.hljs{background-color:#f5f5f5}@media print{.hljs{overflow-x:hidden;text-wrap:pretty}}pre>code .line-highlight{background-color:#ff0}[data-bs-theme=dark] pre>code .line-highlight{background-color:#4a4a00}html{width:calc(100vw - var(--scrollbar-width));min-height:100vh;overflow-x:hidden}body,body[data-layout=landing]{width:calc(100vw - var(--scrollbar-width));min-height:100vh;display:flex;flex-direction:column}body>header,body[data-layout=landing]>header{display:flex;align-items:stretch}@media (min-width: 768px){body>header,body[data-layout=landing]>header{position:sticky;top:0;z-index:1030}}@media (min-width: 768px){body>header,body[data-layout=landing]>header{height:60px}}body>header>nav,body[data-layout=landing]>header>nav{flex:1}body>footer,body[data-layout=landing]>footer{font-size:14px;padding:1rem 0;height:60px}body>footer>div,body[data-layout=landing]>footer>div{display:flex;align-items:center}body>main,body[data-layout=landing]>main{display:flex;flex:1;padding-top:1.6rem;padding-bottom:2rem}body>main>.content,body[data-layout=landing]>main>.content{display:flex;flex-direction:column;width:100%}body>main>.content>:not(article),body[data-layout=landing]>main>.content>:not(article){display:none}body>main>.content>article,body[data-layout=landing]>main>.content>article{flex:1}@media (min-width: 768px){body>main>.content>article [id],body[data-layout=landing]>main>.content>article [id]{scroll-margin-top:60px}}body>main>:not(.content),body[data-layout=landing]>main>:not(.content){display:none}@media print{body>main,body[data-layout=landing]>main{padding:0!important}body>header,body>footer,body[data-layout=landing]>header,body[data-layout=landing]>footer{display:none}}@media not print{body[data-search]>main{display:none}body[data-search]>.search-results{display:block;flex:1;padding-top:1.6rem;padding-bottom:2rem}body:not([data-search])>.search-results{display:none}body:not([data-search])[data-layout=""]>main,body:not([data-search])[data-layout=conceptual]>main{padding-bottom:0}body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:.35;display:block;overflow:hidden;max-width:360px;max-height:calc(100vh - 60px - 1.6rem)}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{position:sticky;top:calc(60px + 1.6rem)}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.toc-offcanvas,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas{flex:0}}body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=""]>main>.toc-offcanvas .offcanvas-body,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-start,body:not([data-search])[data-layout=conceptual]>main>.toc-offcanvas .offcanvas-body{height:100%}body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{display:flex;flex-direction:column;flex:1;min-width:0;margin:0 3rem;padding-bottom:2rem}body:not([data-search])[data-layout=""]>main>.content>.actionbar,body:not([data-search])[data-layout=conceptual]>main>.content>.actionbar{display:flex;align-items:flex-start;margin-top:.5rem;min-height:40px}body:not([data-search])[data-layout=""]>main>.content article,body:not([data-search])[data-layout=conceptual]>main>.content article{flex:1}body:not([data-search])[data-layout=""]>main>.content>.contribution,body:not([data-search])[data-layout=""]>main>.content>.next-article,body:not([data-search])[data-layout=conceptual]>main>.content>.contribution,body:not([data-search])[data-layout=conceptual]>main>.content>.next-article{display:flex}@media (max-width: 991.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0 1rem}}@media (max-width: 767.98px){body:not([data-search])[data-layout=""]>main>.content,body:not([data-search])[data-layout=conceptual]>main>.content{margin:0}}body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:block;width:230px;max-height:calc(100vh - 60px - 1.6rem);overflow-x:hidden;overflow-y:auto}@media (min-width: 768px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{position:sticky;top:calc(60px + 1.6rem)}}}@media only screen and (max-width: 1140px){body:not([data-search])[data-layout=""]>main>.affix,body:not([data-search])[data-layout=conceptual]>main>.affix{display:none}}@media not print{body:not([data-search])[data-layout=chromeless]>header,body:not([data-search])[data-layout=chromeless]>footer{display:none}}.breadcrumb{font-size:14px}.breadcrumb a{text-decoration:none}.breadcrumb a:hover,.breadcrumb a:focus{text-decoration:underline}.next-article{display:flex}.next-article:not(:has(div)){border-top-width:0}.next-article:has(div){margin-top:3rem;padding-top:1rem}.next-article>div{flex:1}.next-article>div.next{text-align:right}.next-article>div>span{opacity:.66;font-size:14px}.next-article>div>a{display:block}.navbar{padding:0}.navbar .navbar-brand{display:flex;align-items:center}.navbar .navbar-nav{display:flex;flex-wrap:nowrap}.navbar #navbar{display:flex;flex:1;justify-content:flex-end}.navbar #navbar form{display:flex;position:relative;align-items:center}.navbar #navbar form>i.bi{position:absolute;left:.8rem;opacity:.5}.navbar #navbar form>input{padding-left:2.5rem}.navbar #navbar form.search{order:50}.navbar #navbar form.icons{margin-left:auto}@media (max-width: 767.98px){.navbar #navbar{flex-direction:column;align-items:flex-start}.navbar #navbar form{margin:1rem 0 0}.navbar #navbar form.search{align-self:stretch;order:30}.navbar #navbar form.icons{align-self:center;order:40;margin:1rem 0}}.affix{font-size:14px}.affix h5,.affix .h5{display:inline-block;font-weight:300;text-transform:uppercase;padding:1em 0 .5em;font-size:14px;letter-spacing:2px}.affix h6,.affix .h6{font-size:14px}.affix ul{flex-direction:column;list-style-type:none;padding-left:0;margin-left:0}.affix ul h6,.affix ul .h6{margin-top:1rem}.affix ul li{margin:.4rem 0}.affix ul li a{text-decoration:none}.affix ul li a:hover,.affix ul li a:focus{text-decoration:underline}.contribution{margin-top:2rem}.contribution a.edit-link{text-decoration:none}.contribution a.edit-link:hover,.contribution a.edit-link:focus{text-decoration:underline}.contribution a.edit-link:before{content:"\f4ca";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.toc{min-width:0;width:100%;height:100%;display:flex;flex-direction:column}.toc ul{font-size:14px;flex-direction:column;list-style-type:none;padding-left:0;overflow-wrap:break-word}.toc li{font-weight:400;margin:.6em 0;padding-left:.85rem;position:relative}.toc li>a{display:inline;text-decoration:none}.toc li>a:hover,.toc li>a:focus{text-decoration:underline}.toc li>ul{display:none}.toc li.expanded>ul{display:block}.toc .expand-stub:before{display:inline-block;width:.85rem;cursor:pointer;font-family:bootstrap-icons;font-size:.8em;content:"\f285";position:absolute;margin-top:.2em;margin-left:-.85rem;transition:transform .35s ease;transform-origin:.5em 50%}@media (prefers-reduced-motion){.toc .expand-stub:before{transition:none}}.toc li.expanded>.expand-stub:before{transform:rotate(90deg)}.toc span.name-only{font-weight:600;display:inline-block;margin:.4rem 0}.toc form.filter{display:flex;position:relative;align-items:center;margin-bottom:.5rem}.toc form.filter>i.bi{position:absolute;left:.6rem;opacity:.5}.toc form.filter>input{padding-left:2rem}.toc>.no-result{font-size:.9em;color:#6c757d}.toc a.pdf-link{text-decoration:none}.toc a.pdf-link:hover,.toc a.pdf-link:focus{text-decoration:underline}.toc a.pdf-link:before{content:"\f756";display:inline-block;font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}a.external[href]:after{font-family:bootstrap-icons;content:"\f1c5";font-size:.6rem;margin:0 .2em;display:inline-block}blockquote{border-style:solid;border-width:0 0 0 3px;border-color:#c4c8cb;margin:1.2em 0 2em;padding:0 .8em;display:block}[data-bs-theme=dark] blockquote{border-color:#41464b}.alert{break-inside:avoid}.alert h5,.alert .h5{text-transform:uppercase;font-weight:700;font-size:1rem}.alert h5:before,.alert .h5:before{font-family:bootstrap-icons;position:relative;margin-right:.5em;top:.2em;font-size:1.25em;font-weight:400}.alert:not(:has(h5))>p:last-child{margin-block-end:0}.alert-info h5:before,.alert-info .h5:before{content:"\f431"}.alert-warning h5:before,.alert-warning .h5:before{content:"\f333"}.alert-danger h5:before,.alert-danger .h5:before{content:"\f623"}div.embeddedvideo{padding-top:56.25%;position:relative;width:100%;margin-bottom:1em}div.embeddedvideo iframe{position:absolute;inset:0;width:100%;height:100%}pre{position:relative}pre>.code-action{display:none;position:absolute;top:.25rem;right:.2rem}pre>.code-action .bi-check-lg{font-size:1.2rem}pre:hover>.code-action{display:block}.tabGroup{margin-bottom:1rem}.tabGroup>section{margin:0;padding:1rem;border-top:0;border-top-left-radius:0;border-top-right-radius:0}#search-results{line-height:1.8}#search-results>.search-list{font-size:.9em;color:#6c757d}#search-results>.sr-items{flex:1}#search-results>.sr-items .sr-item{margin-bottom:1.5em}#search-results>.sr-items .sr-item>.item-title{font-size:x-large}#search-results>.sr-items .sr-item>.item-href{color:#093;font-size:small}#search-results>.sr-items .sr-item>.item-brief{font-size:small}body[data-yaml-mime=ManagedReference] article h1[data-uid],body[data-yaml-mime=ManagedReference] article [data-uid].h1,body[data-yaml-mime=ApiPage] article h1[data-uid],body[data-yaml-mime=ApiPage] article [data-uid].h1{position:relative;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h3[data-uid],body[data-yaml-mime=ManagedReference] article [data-uid].h3,body[data-yaml-mime=ApiPage] article h3[data-uid],body[data-yaml-mime=ApiPage] article [data-uid].h3{position:relative;font-weight:400;margin-top:3rem;padding-bottom:5px;padding-right:1.6rem}body[data-yaml-mime=ManagedReference] article h2.section,body[data-yaml-mime=ManagedReference] article .section.h2,body[data-yaml-mime=ApiPage] article h2.section,body[data-yaml-mime=ApiPage] article .section.h2{margin-top:3rem}body[data-yaml-mime=ManagedReference] article h2.section+h3[data-uid],body[data-yaml-mime=ManagedReference] article .section.h2+h3[data-uid],body[data-yaml-mime=ManagedReference] article h2.section+[data-uid].h3,body[data-yaml-mime=ManagedReference] article .section.h2+[data-uid].h3,body[data-yaml-mime=ManagedReference] article h2.section+a+h3[data-uid],body[data-yaml-mime=ManagedReference] article .section.h2+a+h3[data-uid],body[data-yaml-mime=ManagedReference] article h2.section+a+[data-uid].h3,body[data-yaml-mime=ManagedReference] article .section.h2+a+[data-uid].h3,body[data-yaml-mime=ApiPage] article h2.section+h3[data-uid],body[data-yaml-mime=ApiPage] article .section.h2+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+[data-uid].h3,body[data-yaml-mime=ApiPage] article .section.h2+[data-uid].h3,body[data-yaml-mime=ApiPage] article h2.section+a+h3[data-uid],body[data-yaml-mime=ApiPage] article .section.h2+a+h3[data-uid],body[data-yaml-mime=ApiPage] article h2.section+a+[data-uid].h3,body[data-yaml-mime=ApiPage] article .section.h2+a+[data-uid].h3{margin-top:1rem}body[data-yaml-mime=ManagedReference] article h4.section,body[data-yaml-mime=ManagedReference] article .section.h4,body[data-yaml-mime=ApiPage] article h4.section,body[data-yaml-mime=ApiPage] article .section.h4{font-weight:300;margin-top:1.6rem}body[data-yaml-mime=ManagedReference] article dl>dt,body[data-yaml-mime=ApiPage] article dl>dt{font-weight:400}body[data-yaml-mime=ManagedReference] article dl>dd,body[data-yaml-mime=ApiPage] article dl>dd{margin-left:1rem}body[data-yaml-mime=ManagedReference] article dl.typelist>dt,body[data-yaml-mime=ApiPage] article dl.typelist>dt{font-weight:600}body[data-yaml-mime=ManagedReference] article dl.typelist>dd,body[data-yaml-mime=ApiPage] article dl.typelist>dd{margin-left:0}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div{display:inline-block}body[data-yaml-mime=ManagedReference] article dl.typelist>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist>dd>div:not(:last-child):after{content:", "}body[data-yaml-mime=ManagedReference] article dl.typelist.inheritance>dd>div:not(:last-child):after,body[data-yaml-mime=ApiPage] article dl.typelist.inheritance>dd>div:not(:last-child):after{font-family:bootstrap-icons;content:"\f12c";position:relative;top:.2em;opacity:.8}body[data-yaml-mime=ManagedReference] article dl.parameters>dt,body[data-yaml-mime=ApiPage] article dl.parameters>dt{margin:1em 0}body[data-yaml-mime=ManagedReference] article dl.parameters>dt>code,body[data-yaml-mime=ApiPage] article dl.parameters>dt>code{margin-right:.2em;font-size:1em}body[data-yaml-mime=ManagedReference] article div.facts,body[data-yaml-mime=ApiPage] article div.facts{font-size:14px;margin:2rem 0 1rem}body[data-yaml-mime=ManagedReference] article div.facts>dl,body[data-yaml-mime=ApiPage] article div.facts>dl{margin:0}body[data-yaml-mime=ManagedReference] article div.facts>dl>dd,body[data-yaml-mime=ApiPage] article div.facts>dl>dd{margin-left:.25rem;display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt,body[data-yaml-mime=ApiPage] article div.facts>dl>dt{display:inline-block}body[data-yaml-mime=ManagedReference] article div.facts>dl>dt:after,body[data-yaml-mime=ApiPage] article div.facts>dl>dt:after{content:":"}body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{position:absolute;right:0;bottom:.2rem;font-size:1.2rem}@media print{body[data-yaml-mime=ManagedReference] article .header-action,body[data-yaml-mime=ApiPage] article .header-action{display:none}}body[data-yaml-mime=ManagedReference] article td.term,body[data-yaml-mime=ApiPage] article td.term{font-weight:600}body[data-yaml-mime=ManagedReference] article summary,body[data-yaml-mime=ApiPage] article summary{display:block;cursor:inherit}body[data-yaml-mime=ManagedReference] article li>span.term,body[data-yaml-mime=ApiPage] article li>span.term{font-weight:600}body[data-yaml-mime=ManagedReference] article li>span.term:after,body[data-yaml-mime=ApiPage] article li>span.term:after{content:"-";margin:0 .5em}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.xref,.text-break{word-wrap:break-word;word-break:break-word}.divider{margin:0 5px;color:#ccc}article span.small.pull-right{float:right}article img{max-width:100%;height:auto}.codewrapper{position:relative}.sample-response .response-content{max-height:200px}@media (width <= 768px){#mobile-indicator{display:block}.mobile-hide{display:none}h1:before,.h1:before,h2:before,.h2:before,h3:before,.h3:before,h4:before,.h4:before{content:"";display:none}}@media print{@page{margin:.4in}}.pdftoc ul{list-style:none}.pdftoc a{display:flex;text-decoration:none;color:var(--bs-body-color)}.pdftoc a .spacer{flex:1;border-bottom:1px dashed var(--bs-body-color);margin:.4em} /*! * Bootstrap v5.3.2 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors @@ -8,7 +8,7 @@ bootstrap-icons/font/bootstrap-icons.scss: (*! - * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/) + * Bootstrap Icons v1.11.2 (https://icons.getbootstrap.com/) * Copyright 2019-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) *) diff --git a/docs/public/docfx.min.css.map b/docs/public/docfx.min.css.map index fc1d96c0..52e57628 100644 --- a/docs/public/docfx.min.css.map +++ b/docs/public/docfx.min.css.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../node_modules/bootstrap-icons/font/bootstrap-icons.scss", "../src/docfx.scss", "../src/mixins.scss", "../../node_modules/bootstrap/scss/mixins/_banner.scss", "../../node_modules/bootstrap/scss/_root.scss", "../../node_modules/bootstrap/scss/vendor/_rfs.scss", "../../node_modules/bootstrap/scss/mixins/_color-mode.scss", "../../node_modules/bootstrap/scss/_reboot.scss", "../../node_modules/bootstrap/scss/_variables.scss", "../../node_modules/bootstrap/scss/mixins/_border-radius.scss", "../../node_modules/bootstrap/scss/_type.scss", "../../node_modules/bootstrap/scss/mixins/_lists.scss", "../../node_modules/bootstrap/scss/_images.scss", "../../node_modules/bootstrap/scss/mixins/_image.scss", "../../node_modules/bootstrap/scss/_containers.scss", "../../node_modules/bootstrap/scss/mixins/_container.scss", "../../node_modules/bootstrap/scss/mixins/_breakpoints.scss", "../../node_modules/bootstrap/scss/_grid.scss", "../../node_modules/bootstrap/scss/mixins/_grid.scss", "../../node_modules/bootstrap/scss/_tables.scss", "../../node_modules/bootstrap/scss/mixins/_table-variants.scss", "../../node_modules/bootstrap/scss/forms/_labels.scss", "../../node_modules/bootstrap/scss/forms/_form-text.scss", "../../node_modules/bootstrap/scss/forms/_form-control.scss", "../../node_modules/bootstrap/scss/mixins/_transition.scss", "../../node_modules/bootstrap/scss/mixins/_gradients.scss", "../../node_modules/bootstrap/scss/forms/_form-select.scss", "../../node_modules/bootstrap/scss/forms/_form-check.scss", "../../node_modules/bootstrap/scss/forms/_form-range.scss", "../../node_modules/bootstrap/scss/forms/_floating-labels.scss", "../../node_modules/bootstrap/scss/forms/_input-group.scss", "../../node_modules/bootstrap/scss/mixins/_forms.scss", "../../node_modules/bootstrap/scss/_buttons.scss", "../../node_modules/bootstrap/scss/mixins/_buttons.scss", "../../node_modules/bootstrap/scss/_transitions.scss", "../../node_modules/bootstrap/scss/_dropdown.scss", "../../node_modules/bootstrap/scss/mixins/_caret.scss", "../../node_modules/bootstrap/scss/_button-group.scss", "../../node_modules/bootstrap/scss/_nav.scss", "../../node_modules/bootstrap/scss/_navbar.scss", "../../node_modules/bootstrap/scss/_card.scss", "../../node_modules/bootstrap/scss/_accordion.scss", "../../node_modules/bootstrap/scss/_breadcrumb.scss", "../../node_modules/bootstrap/scss/_pagination.scss", "../../node_modules/bootstrap/scss/mixins/_pagination.scss", "../../node_modules/bootstrap/scss/_badge.scss", "../../node_modules/bootstrap/scss/_alert.scss", "../../node_modules/bootstrap/scss/_progress.scss", "../../node_modules/bootstrap/scss/_list-group.scss", "../../node_modules/bootstrap/scss/_close.scss", "../../node_modules/bootstrap/scss/_toasts.scss", "../../node_modules/bootstrap/scss/_modal.scss", "../../node_modules/bootstrap/scss/mixins/_backdrop.scss", "../../node_modules/bootstrap/scss/_tooltip.scss", "../../node_modules/bootstrap/scss/mixins/_reset-text.scss", "../../node_modules/bootstrap/scss/_popover.scss", "../../node_modules/bootstrap/scss/_carousel.scss", "../../node_modules/bootstrap/scss/mixins/_clearfix.scss", "../../node_modules/bootstrap/scss/_spinners.scss", "../../node_modules/bootstrap/scss/_offcanvas.scss", "../../node_modules/bootstrap/scss/_placeholders.scss", "../../node_modules/bootstrap/scss/helpers/_color-bg.scss", "../../node_modules/bootstrap/scss/helpers/_colored-links.scss", "../../node_modules/bootstrap/scss/helpers/_focus-ring.scss", "../../node_modules/bootstrap/scss/helpers/_icon-link.scss", "../../node_modules/bootstrap/scss/helpers/_ratio.scss", "../../node_modules/bootstrap/scss/helpers/_position.scss", "../../node_modules/bootstrap/scss/helpers/_stacks.scss", "../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss", "../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss", "../../node_modules/bootstrap/scss/helpers/_stretched-link.scss", "../../node_modules/bootstrap/scss/helpers/_text-truncation.scss", "../../node_modules/bootstrap/scss/mixins/_text-truncate.scss", "../../node_modules/bootstrap/scss/helpers/_vr.scss", "../../node_modules/bootstrap/scss/mixins/_utilities.scss", "../../node_modules/bootstrap/scss/utilities/_api.scss", "../src/highlight.scss", "../../node_modules/highlight.js/scss/vs.scss", "../../node_modules/highlight.js/scss/vs2015.scss", "../src/layout.scss", "../src/nav.scss", "../src/toc.scss", "../src/markdown.scss", "../../node_modules/bootstrap/scss/_variables-dark.scss", "../src/search.scss", "../src/dotnet.scss"], - "sourcesContent": ["/*!\n * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/)\n * Copyright 2019-2023 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)\n */\n\n$bootstrap-icons-font: \"bootstrap-icons\" !default;\n$bootstrap-icons-font-dir: \"./fonts\" !default;\n$bootstrap-icons-font-file: \"#{$bootstrap-icons-font-dir}/#{$bootstrap-icons-font}\" !default;\n$bootstrap-icons-font-hash: \"24e3eb84d0bcaf83d77f904c78ac1f47\" !default;\n$bootstrap-icons-font-src: url(\"#{$bootstrap-icons-font-file}.woff2?#{$bootstrap-icons-font-hash}\") format(\"woff2\"),\n url(\"#{$bootstrap-icons-font-file}.woff?#{$bootstrap-icons-font-hash}\") format(\"woff\") !default;\n\n@font-face {\n font-display: block;\n font-family: $bootstrap-icons-font;\n src: $bootstrap-icons-font-src;\n}\n\n.bi::before,\n[class^=\"bi-\"]::before,\n[class*=\" bi-\"]::before {\n display: inline-block;\n font-family: $bootstrap-icons-font !important;\n font-style: normal;\n font-weight: normal !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n vertical-align: -.125em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n$bootstrap-icons-map: (\n \"123\": \"\\f67f\",\n \"alarm-fill\": \"\\f101\",\n \"alarm\": \"\\f102\",\n \"align-bottom\": \"\\f103\",\n \"align-center\": \"\\f104\",\n \"align-end\": \"\\f105\",\n \"align-middle\": \"\\f106\",\n \"align-start\": \"\\f107\",\n \"align-top\": \"\\f108\",\n \"alt\": \"\\f109\",\n \"app-indicator\": \"\\f10a\",\n \"app\": \"\\f10b\",\n \"archive-fill\": \"\\f10c\",\n \"archive\": \"\\f10d\",\n \"arrow-90deg-down\": \"\\f10e\",\n \"arrow-90deg-left\": \"\\f10f\",\n \"arrow-90deg-right\": \"\\f110\",\n \"arrow-90deg-up\": \"\\f111\",\n \"arrow-bar-down\": \"\\f112\",\n \"arrow-bar-left\": \"\\f113\",\n \"arrow-bar-right\": \"\\f114\",\n \"arrow-bar-up\": \"\\f115\",\n \"arrow-clockwise\": \"\\f116\",\n \"arrow-counterclockwise\": \"\\f117\",\n \"arrow-down-circle-fill\": \"\\f118\",\n \"arrow-down-circle\": \"\\f119\",\n \"arrow-down-left-circle-fill\": \"\\f11a\",\n \"arrow-down-left-circle\": \"\\f11b\",\n \"arrow-down-left-square-fill\": \"\\f11c\",\n \"arrow-down-left-square\": \"\\f11d\",\n \"arrow-down-left\": \"\\f11e\",\n \"arrow-down-right-circle-fill\": \"\\f11f\",\n \"arrow-down-right-circle\": \"\\f120\",\n \"arrow-down-right-square-fill\": \"\\f121\",\n \"arrow-down-right-square\": \"\\f122\",\n \"arrow-down-right\": \"\\f123\",\n \"arrow-down-short\": \"\\f124\",\n \"arrow-down-square-fill\": \"\\f125\",\n \"arrow-down-square\": \"\\f126\",\n \"arrow-down-up\": \"\\f127\",\n \"arrow-down\": \"\\f128\",\n \"arrow-left-circle-fill\": \"\\f129\",\n \"arrow-left-circle\": \"\\f12a\",\n \"arrow-left-right\": \"\\f12b\",\n \"arrow-left-short\": \"\\f12c\",\n \"arrow-left-square-fill\": \"\\f12d\",\n \"arrow-left-square\": \"\\f12e\",\n \"arrow-left\": \"\\f12f\",\n \"arrow-repeat\": \"\\f130\",\n \"arrow-return-left\": \"\\f131\",\n \"arrow-return-right\": \"\\f132\",\n \"arrow-right-circle-fill\": \"\\f133\",\n \"arrow-right-circle\": \"\\f134\",\n \"arrow-right-short\": \"\\f135\",\n \"arrow-right-square-fill\": \"\\f136\",\n \"arrow-right-square\": \"\\f137\",\n \"arrow-right\": \"\\f138\",\n \"arrow-up-circle-fill\": \"\\f139\",\n \"arrow-up-circle\": \"\\f13a\",\n \"arrow-up-left-circle-fill\": \"\\f13b\",\n \"arrow-up-left-circle\": \"\\f13c\",\n \"arrow-up-left-square-fill\": \"\\f13d\",\n \"arrow-up-left-square\": \"\\f13e\",\n \"arrow-up-left\": \"\\f13f\",\n \"arrow-up-right-circle-fill\": \"\\f140\",\n \"arrow-up-right-circle\": \"\\f141\",\n \"arrow-up-right-square-fill\": \"\\f142\",\n \"arrow-up-right-square\": \"\\f143\",\n \"arrow-up-right\": \"\\f144\",\n \"arrow-up-short\": \"\\f145\",\n \"arrow-up-square-fill\": \"\\f146\",\n \"arrow-up-square\": \"\\f147\",\n \"arrow-up\": \"\\f148\",\n \"arrows-angle-contract\": \"\\f149\",\n \"arrows-angle-expand\": \"\\f14a\",\n \"arrows-collapse\": \"\\f14b\",\n \"arrows-expand\": \"\\f14c\",\n \"arrows-fullscreen\": \"\\f14d\",\n \"arrows-move\": \"\\f14e\",\n \"aspect-ratio-fill\": \"\\f14f\",\n \"aspect-ratio\": \"\\f150\",\n \"asterisk\": \"\\f151\",\n \"at\": \"\\f152\",\n \"award-fill\": \"\\f153\",\n \"award\": \"\\f154\",\n \"back\": \"\\f155\",\n \"backspace-fill\": \"\\f156\",\n \"backspace-reverse-fill\": \"\\f157\",\n \"backspace-reverse\": \"\\f158\",\n \"backspace\": \"\\f159\",\n \"badge-3d-fill\": \"\\f15a\",\n \"badge-3d\": \"\\f15b\",\n \"badge-4k-fill\": \"\\f15c\",\n \"badge-4k\": \"\\f15d\",\n \"badge-8k-fill\": \"\\f15e\",\n \"badge-8k\": \"\\f15f\",\n \"badge-ad-fill\": \"\\f160\",\n \"badge-ad\": \"\\f161\",\n \"badge-ar-fill\": \"\\f162\",\n \"badge-ar\": \"\\f163\",\n \"badge-cc-fill\": \"\\f164\",\n \"badge-cc\": \"\\f165\",\n \"badge-hd-fill\": \"\\f166\",\n \"badge-hd\": \"\\f167\",\n \"badge-tm-fill\": \"\\f168\",\n \"badge-tm\": \"\\f169\",\n \"badge-vo-fill\": \"\\f16a\",\n \"badge-vo\": \"\\f16b\",\n \"badge-vr-fill\": \"\\f16c\",\n \"badge-vr\": \"\\f16d\",\n \"badge-wc-fill\": \"\\f16e\",\n \"badge-wc\": \"\\f16f\",\n \"bag-check-fill\": \"\\f170\",\n \"bag-check\": \"\\f171\",\n \"bag-dash-fill\": \"\\f172\",\n \"bag-dash\": \"\\f173\",\n \"bag-fill\": \"\\f174\",\n \"bag-plus-fill\": \"\\f175\",\n \"bag-plus\": \"\\f176\",\n \"bag-x-fill\": \"\\f177\",\n \"bag-x\": \"\\f178\",\n \"bag\": \"\\f179\",\n \"bar-chart-fill\": \"\\f17a\",\n \"bar-chart-line-fill\": \"\\f17b\",\n \"bar-chart-line\": \"\\f17c\",\n \"bar-chart-steps\": \"\\f17d\",\n \"bar-chart\": \"\\f17e\",\n \"basket-fill\": \"\\f17f\",\n \"basket\": \"\\f180\",\n \"basket2-fill\": \"\\f181\",\n \"basket2\": \"\\f182\",\n \"basket3-fill\": \"\\f183\",\n \"basket3\": \"\\f184\",\n \"battery-charging\": \"\\f185\",\n \"battery-full\": \"\\f186\",\n \"battery-half\": \"\\f187\",\n \"battery\": \"\\f188\",\n \"bell-fill\": \"\\f189\",\n \"bell\": \"\\f18a\",\n \"bezier\": \"\\f18b\",\n \"bezier2\": \"\\f18c\",\n \"bicycle\": \"\\f18d\",\n \"binoculars-fill\": \"\\f18e\",\n \"binoculars\": \"\\f18f\",\n \"blockquote-left\": \"\\f190\",\n \"blockquote-right\": \"\\f191\",\n \"book-fill\": \"\\f192\",\n \"book-half\": \"\\f193\",\n \"book\": \"\\f194\",\n \"bookmark-check-fill\": \"\\f195\",\n \"bookmark-check\": \"\\f196\",\n \"bookmark-dash-fill\": \"\\f197\",\n \"bookmark-dash\": \"\\f198\",\n \"bookmark-fill\": \"\\f199\",\n \"bookmark-heart-fill\": \"\\f19a\",\n \"bookmark-heart\": \"\\f19b\",\n \"bookmark-plus-fill\": \"\\f19c\",\n \"bookmark-plus\": \"\\f19d\",\n \"bookmark-star-fill\": \"\\f19e\",\n \"bookmark-star\": \"\\f19f\",\n \"bookmark-x-fill\": \"\\f1a0\",\n \"bookmark-x\": \"\\f1a1\",\n \"bookmark\": \"\\f1a2\",\n \"bookmarks-fill\": \"\\f1a3\",\n \"bookmarks\": \"\\f1a4\",\n \"bookshelf\": \"\\f1a5\",\n \"bootstrap-fill\": \"\\f1a6\",\n \"bootstrap-reboot\": \"\\f1a7\",\n \"bootstrap\": \"\\f1a8\",\n \"border-all\": \"\\f1a9\",\n \"border-bottom\": \"\\f1aa\",\n \"border-center\": \"\\f1ab\",\n \"border-inner\": \"\\f1ac\",\n \"border-left\": \"\\f1ad\",\n \"border-middle\": \"\\f1ae\",\n \"border-outer\": \"\\f1af\",\n \"border-right\": \"\\f1b0\",\n \"border-style\": \"\\f1b1\",\n \"border-top\": \"\\f1b2\",\n \"border-width\": \"\\f1b3\",\n \"border\": \"\\f1b4\",\n \"bounding-box-circles\": \"\\f1b5\",\n \"bounding-box\": \"\\f1b6\",\n \"box-arrow-down-left\": \"\\f1b7\",\n \"box-arrow-down-right\": \"\\f1b8\",\n \"box-arrow-down\": \"\\f1b9\",\n \"box-arrow-in-down-left\": \"\\f1ba\",\n \"box-arrow-in-down-right\": \"\\f1bb\",\n \"box-arrow-in-down\": \"\\f1bc\",\n \"box-arrow-in-left\": \"\\f1bd\",\n \"box-arrow-in-right\": \"\\f1be\",\n \"box-arrow-in-up-left\": \"\\f1bf\",\n \"box-arrow-in-up-right\": \"\\f1c0\",\n \"box-arrow-in-up\": \"\\f1c1\",\n \"box-arrow-left\": \"\\f1c2\",\n \"box-arrow-right\": \"\\f1c3\",\n \"box-arrow-up-left\": \"\\f1c4\",\n \"box-arrow-up-right\": \"\\f1c5\",\n \"box-arrow-up\": \"\\f1c6\",\n \"box-seam\": \"\\f1c7\",\n \"box\": \"\\f1c8\",\n \"braces\": \"\\f1c9\",\n \"bricks\": \"\\f1ca\",\n \"briefcase-fill\": \"\\f1cb\",\n \"briefcase\": \"\\f1cc\",\n \"brightness-alt-high-fill\": \"\\f1cd\",\n \"brightness-alt-high\": \"\\f1ce\",\n \"brightness-alt-low-fill\": \"\\f1cf\",\n \"brightness-alt-low\": \"\\f1d0\",\n \"brightness-high-fill\": \"\\f1d1\",\n \"brightness-high\": \"\\f1d2\",\n \"brightness-low-fill\": \"\\f1d3\",\n \"brightness-low\": \"\\f1d4\",\n \"broadcast-pin\": \"\\f1d5\",\n \"broadcast\": \"\\f1d6\",\n \"brush-fill\": \"\\f1d7\",\n \"brush\": \"\\f1d8\",\n \"bucket-fill\": \"\\f1d9\",\n \"bucket\": \"\\f1da\",\n \"bug-fill\": \"\\f1db\",\n \"bug\": \"\\f1dc\",\n \"building\": \"\\f1dd\",\n \"bullseye\": \"\\f1de\",\n \"calculator-fill\": \"\\f1df\",\n \"calculator\": \"\\f1e0\",\n \"calendar-check-fill\": \"\\f1e1\",\n \"calendar-check\": \"\\f1e2\",\n \"calendar-date-fill\": \"\\f1e3\",\n \"calendar-date\": \"\\f1e4\",\n \"calendar-day-fill\": \"\\f1e5\",\n \"calendar-day\": \"\\f1e6\",\n \"calendar-event-fill\": \"\\f1e7\",\n \"calendar-event\": \"\\f1e8\",\n \"calendar-fill\": \"\\f1e9\",\n \"calendar-minus-fill\": \"\\f1ea\",\n \"calendar-minus\": \"\\f1eb\",\n \"calendar-month-fill\": \"\\f1ec\",\n \"calendar-month\": \"\\f1ed\",\n \"calendar-plus-fill\": \"\\f1ee\",\n \"calendar-plus\": \"\\f1ef\",\n \"calendar-range-fill\": \"\\f1f0\",\n \"calendar-range\": \"\\f1f1\",\n \"calendar-week-fill\": \"\\f1f2\",\n \"calendar-week\": \"\\f1f3\",\n \"calendar-x-fill\": \"\\f1f4\",\n \"calendar-x\": \"\\f1f5\",\n \"calendar\": \"\\f1f6\",\n \"calendar2-check-fill\": \"\\f1f7\",\n \"calendar2-check\": \"\\f1f8\",\n \"calendar2-date-fill\": \"\\f1f9\",\n \"calendar2-date\": \"\\f1fa\",\n \"calendar2-day-fill\": \"\\f1fb\",\n \"calendar2-day\": \"\\f1fc\",\n \"calendar2-event-fill\": \"\\f1fd\",\n \"calendar2-event\": \"\\f1fe\",\n \"calendar2-fill\": \"\\f1ff\",\n \"calendar2-minus-fill\": \"\\f200\",\n \"calendar2-minus\": \"\\f201\",\n \"calendar2-month-fill\": \"\\f202\",\n \"calendar2-month\": \"\\f203\",\n \"calendar2-plus-fill\": \"\\f204\",\n \"calendar2-plus\": \"\\f205\",\n \"calendar2-range-fill\": \"\\f206\",\n \"calendar2-range\": \"\\f207\",\n \"calendar2-week-fill\": \"\\f208\",\n \"calendar2-week\": \"\\f209\",\n \"calendar2-x-fill\": \"\\f20a\",\n \"calendar2-x\": \"\\f20b\",\n \"calendar2\": \"\\f20c\",\n \"calendar3-event-fill\": \"\\f20d\",\n \"calendar3-event\": \"\\f20e\",\n \"calendar3-fill\": \"\\f20f\",\n \"calendar3-range-fill\": \"\\f210\",\n \"calendar3-range\": \"\\f211\",\n \"calendar3-week-fill\": \"\\f212\",\n \"calendar3-week\": \"\\f213\",\n \"calendar3\": \"\\f214\",\n \"calendar4-event\": \"\\f215\",\n \"calendar4-range\": \"\\f216\",\n \"calendar4-week\": \"\\f217\",\n \"calendar4\": \"\\f218\",\n \"camera-fill\": \"\\f219\",\n \"camera-reels-fill\": \"\\f21a\",\n \"camera-reels\": \"\\f21b\",\n \"camera-video-fill\": \"\\f21c\",\n \"camera-video-off-fill\": \"\\f21d\",\n \"camera-video-off\": \"\\f21e\",\n \"camera-video\": \"\\f21f\",\n \"camera\": \"\\f220\",\n \"camera2\": \"\\f221\",\n \"capslock-fill\": \"\\f222\",\n \"capslock\": \"\\f223\",\n \"card-checklist\": \"\\f224\",\n \"card-heading\": \"\\f225\",\n \"card-image\": \"\\f226\",\n \"card-list\": \"\\f227\",\n \"card-text\": \"\\f228\",\n \"caret-down-fill\": \"\\f229\",\n \"caret-down-square-fill\": \"\\f22a\",\n \"caret-down-square\": \"\\f22b\",\n \"caret-down\": \"\\f22c\",\n \"caret-left-fill\": \"\\f22d\",\n \"caret-left-square-fill\": \"\\f22e\",\n \"caret-left-square\": \"\\f22f\",\n \"caret-left\": \"\\f230\",\n \"caret-right-fill\": \"\\f231\",\n \"caret-right-square-fill\": \"\\f232\",\n \"caret-right-square\": \"\\f233\",\n \"caret-right\": \"\\f234\",\n \"caret-up-fill\": \"\\f235\",\n \"caret-up-square-fill\": \"\\f236\",\n \"caret-up-square\": \"\\f237\",\n \"caret-up\": \"\\f238\",\n \"cart-check-fill\": \"\\f239\",\n \"cart-check\": \"\\f23a\",\n \"cart-dash-fill\": \"\\f23b\",\n \"cart-dash\": \"\\f23c\",\n \"cart-fill\": \"\\f23d\",\n \"cart-plus-fill\": \"\\f23e\",\n \"cart-plus\": \"\\f23f\",\n \"cart-x-fill\": \"\\f240\",\n \"cart-x\": \"\\f241\",\n \"cart\": \"\\f242\",\n \"cart2\": \"\\f243\",\n \"cart3\": \"\\f244\",\n \"cart4\": \"\\f245\",\n \"cash-stack\": \"\\f246\",\n \"cash\": \"\\f247\",\n \"cast\": \"\\f248\",\n \"chat-dots-fill\": \"\\f249\",\n \"chat-dots\": \"\\f24a\",\n \"chat-fill\": \"\\f24b\",\n \"chat-left-dots-fill\": \"\\f24c\",\n \"chat-left-dots\": \"\\f24d\",\n \"chat-left-fill\": \"\\f24e\",\n \"chat-left-quote-fill\": \"\\f24f\",\n \"chat-left-quote\": \"\\f250\",\n \"chat-left-text-fill\": \"\\f251\",\n \"chat-left-text\": \"\\f252\",\n \"chat-left\": \"\\f253\",\n \"chat-quote-fill\": \"\\f254\",\n \"chat-quote\": \"\\f255\",\n \"chat-right-dots-fill\": \"\\f256\",\n \"chat-right-dots\": \"\\f257\",\n \"chat-right-fill\": \"\\f258\",\n \"chat-right-quote-fill\": \"\\f259\",\n \"chat-right-quote\": \"\\f25a\",\n \"chat-right-text-fill\": \"\\f25b\",\n \"chat-right-text\": \"\\f25c\",\n \"chat-right\": \"\\f25d\",\n \"chat-square-dots-fill\": \"\\f25e\",\n \"chat-square-dots\": \"\\f25f\",\n \"chat-square-fill\": \"\\f260\",\n \"chat-square-quote-fill\": \"\\f261\",\n \"chat-square-quote\": \"\\f262\",\n \"chat-square-text-fill\": \"\\f263\",\n \"chat-square-text\": \"\\f264\",\n \"chat-square\": \"\\f265\",\n \"chat-text-fill\": \"\\f266\",\n \"chat-text\": \"\\f267\",\n \"chat\": \"\\f268\",\n \"check-all\": \"\\f269\",\n \"check-circle-fill\": \"\\f26a\",\n \"check-circle\": \"\\f26b\",\n \"check-square-fill\": \"\\f26c\",\n \"check-square\": \"\\f26d\",\n \"check\": \"\\f26e\",\n \"check2-all\": \"\\f26f\",\n \"check2-circle\": \"\\f270\",\n \"check2-square\": \"\\f271\",\n \"check2\": \"\\f272\",\n \"chevron-bar-contract\": \"\\f273\",\n \"chevron-bar-down\": \"\\f274\",\n \"chevron-bar-expand\": \"\\f275\",\n \"chevron-bar-left\": \"\\f276\",\n \"chevron-bar-right\": \"\\f277\",\n \"chevron-bar-up\": \"\\f278\",\n \"chevron-compact-down\": \"\\f279\",\n \"chevron-compact-left\": \"\\f27a\",\n \"chevron-compact-right\": \"\\f27b\",\n \"chevron-compact-up\": \"\\f27c\",\n \"chevron-contract\": \"\\f27d\",\n \"chevron-double-down\": \"\\f27e\",\n \"chevron-double-left\": \"\\f27f\",\n \"chevron-double-right\": \"\\f280\",\n \"chevron-double-up\": \"\\f281\",\n \"chevron-down\": \"\\f282\",\n \"chevron-expand\": \"\\f283\",\n \"chevron-left\": \"\\f284\",\n \"chevron-right\": \"\\f285\",\n \"chevron-up\": \"\\f286\",\n \"circle-fill\": \"\\f287\",\n \"circle-half\": \"\\f288\",\n \"circle-square\": \"\\f289\",\n \"circle\": \"\\f28a\",\n \"clipboard-check\": \"\\f28b\",\n \"clipboard-data\": \"\\f28c\",\n \"clipboard-minus\": \"\\f28d\",\n \"clipboard-plus\": \"\\f28e\",\n \"clipboard-x\": \"\\f28f\",\n \"clipboard\": \"\\f290\",\n \"clock-fill\": \"\\f291\",\n \"clock-history\": \"\\f292\",\n \"clock\": \"\\f293\",\n \"cloud-arrow-down-fill\": \"\\f294\",\n \"cloud-arrow-down\": \"\\f295\",\n \"cloud-arrow-up-fill\": \"\\f296\",\n \"cloud-arrow-up\": \"\\f297\",\n \"cloud-check-fill\": \"\\f298\",\n \"cloud-check\": \"\\f299\",\n \"cloud-download-fill\": \"\\f29a\",\n \"cloud-download\": \"\\f29b\",\n \"cloud-drizzle-fill\": \"\\f29c\",\n \"cloud-drizzle\": \"\\f29d\",\n \"cloud-fill\": \"\\f29e\",\n \"cloud-fog-fill\": \"\\f29f\",\n \"cloud-fog\": \"\\f2a0\",\n \"cloud-fog2-fill\": \"\\f2a1\",\n \"cloud-fog2\": \"\\f2a2\",\n \"cloud-hail-fill\": \"\\f2a3\",\n \"cloud-hail\": \"\\f2a4\",\n \"cloud-haze-fill\": \"\\f2a6\",\n \"cloud-haze\": \"\\f2a7\",\n \"cloud-haze2-fill\": \"\\f2a8\",\n \"cloud-lightning-fill\": \"\\f2a9\",\n \"cloud-lightning-rain-fill\": \"\\f2aa\",\n \"cloud-lightning-rain\": \"\\f2ab\",\n \"cloud-lightning\": \"\\f2ac\",\n \"cloud-minus-fill\": \"\\f2ad\",\n \"cloud-minus\": \"\\f2ae\",\n \"cloud-moon-fill\": \"\\f2af\",\n \"cloud-moon\": \"\\f2b0\",\n \"cloud-plus-fill\": \"\\f2b1\",\n \"cloud-plus\": \"\\f2b2\",\n \"cloud-rain-fill\": \"\\f2b3\",\n \"cloud-rain-heavy-fill\": \"\\f2b4\",\n \"cloud-rain-heavy\": \"\\f2b5\",\n \"cloud-rain\": \"\\f2b6\",\n \"cloud-slash-fill\": \"\\f2b7\",\n \"cloud-slash\": \"\\f2b8\",\n \"cloud-sleet-fill\": \"\\f2b9\",\n \"cloud-sleet\": \"\\f2ba\",\n \"cloud-snow-fill\": \"\\f2bb\",\n \"cloud-snow\": \"\\f2bc\",\n \"cloud-sun-fill\": \"\\f2bd\",\n \"cloud-sun\": \"\\f2be\",\n \"cloud-upload-fill\": \"\\f2bf\",\n \"cloud-upload\": \"\\f2c0\",\n \"cloud\": \"\\f2c1\",\n \"clouds-fill\": \"\\f2c2\",\n \"clouds\": \"\\f2c3\",\n \"cloudy-fill\": \"\\f2c4\",\n \"cloudy\": \"\\f2c5\",\n \"code-slash\": \"\\f2c6\",\n \"code-square\": \"\\f2c7\",\n \"code\": \"\\f2c8\",\n \"collection-fill\": \"\\f2c9\",\n \"collection-play-fill\": \"\\f2ca\",\n \"collection-play\": \"\\f2cb\",\n \"collection\": \"\\f2cc\",\n \"columns-gap\": \"\\f2cd\",\n \"columns\": \"\\f2ce\",\n \"command\": \"\\f2cf\",\n \"compass-fill\": \"\\f2d0\",\n \"compass\": \"\\f2d1\",\n \"cone-striped\": \"\\f2d2\",\n \"cone\": \"\\f2d3\",\n \"controller\": \"\\f2d4\",\n \"cpu-fill\": \"\\f2d5\",\n \"cpu\": \"\\f2d6\",\n \"credit-card-2-back-fill\": \"\\f2d7\",\n \"credit-card-2-back\": \"\\f2d8\",\n \"credit-card-2-front-fill\": \"\\f2d9\",\n \"credit-card-2-front\": \"\\f2da\",\n \"credit-card-fill\": \"\\f2db\",\n \"credit-card\": \"\\f2dc\",\n \"crop\": \"\\f2dd\",\n \"cup-fill\": \"\\f2de\",\n \"cup-straw\": \"\\f2df\",\n \"cup\": \"\\f2e0\",\n \"cursor-fill\": \"\\f2e1\",\n \"cursor-text\": \"\\f2e2\",\n \"cursor\": \"\\f2e3\",\n \"dash-circle-dotted\": \"\\f2e4\",\n \"dash-circle-fill\": \"\\f2e5\",\n \"dash-circle\": \"\\f2e6\",\n \"dash-square-dotted\": \"\\f2e7\",\n \"dash-square-fill\": \"\\f2e8\",\n \"dash-square\": \"\\f2e9\",\n \"dash\": \"\\f2ea\",\n \"diagram-2-fill\": \"\\f2eb\",\n \"diagram-2\": \"\\f2ec\",\n \"diagram-3-fill\": \"\\f2ed\",\n \"diagram-3\": \"\\f2ee\",\n \"diamond-fill\": \"\\f2ef\",\n \"diamond-half\": \"\\f2f0\",\n \"diamond\": \"\\f2f1\",\n \"dice-1-fill\": \"\\f2f2\",\n \"dice-1\": \"\\f2f3\",\n \"dice-2-fill\": \"\\f2f4\",\n \"dice-2\": \"\\f2f5\",\n \"dice-3-fill\": \"\\f2f6\",\n \"dice-3\": \"\\f2f7\",\n \"dice-4-fill\": \"\\f2f8\",\n \"dice-4\": \"\\f2f9\",\n \"dice-5-fill\": \"\\f2fa\",\n \"dice-5\": \"\\f2fb\",\n \"dice-6-fill\": \"\\f2fc\",\n \"dice-6\": \"\\f2fd\",\n \"disc-fill\": \"\\f2fe\",\n \"disc\": \"\\f2ff\",\n \"discord\": \"\\f300\",\n \"display-fill\": \"\\f301\",\n \"display\": \"\\f302\",\n \"distribute-horizontal\": \"\\f303\",\n \"distribute-vertical\": \"\\f304\",\n \"door-closed-fill\": \"\\f305\",\n \"door-closed\": \"\\f306\",\n \"door-open-fill\": \"\\f307\",\n \"door-open\": \"\\f308\",\n \"dot\": \"\\f309\",\n \"download\": \"\\f30a\",\n \"droplet-fill\": \"\\f30b\",\n \"droplet-half\": \"\\f30c\",\n \"droplet\": \"\\f30d\",\n \"earbuds\": \"\\f30e\",\n \"easel-fill\": \"\\f30f\",\n \"easel\": \"\\f310\",\n \"egg-fill\": \"\\f311\",\n \"egg-fried\": \"\\f312\",\n \"egg\": \"\\f313\",\n \"eject-fill\": \"\\f314\",\n \"eject\": \"\\f315\",\n \"emoji-angry-fill\": \"\\f316\",\n \"emoji-angry\": \"\\f317\",\n \"emoji-dizzy-fill\": \"\\f318\",\n \"emoji-dizzy\": \"\\f319\",\n \"emoji-expressionless-fill\": \"\\f31a\",\n \"emoji-expressionless\": \"\\f31b\",\n \"emoji-frown-fill\": \"\\f31c\",\n \"emoji-frown\": \"\\f31d\",\n \"emoji-heart-eyes-fill\": \"\\f31e\",\n \"emoji-heart-eyes\": \"\\f31f\",\n \"emoji-laughing-fill\": \"\\f320\",\n \"emoji-laughing\": \"\\f321\",\n \"emoji-neutral-fill\": \"\\f322\",\n \"emoji-neutral\": \"\\f323\",\n \"emoji-smile-fill\": \"\\f324\",\n \"emoji-smile-upside-down-fill\": \"\\f325\",\n \"emoji-smile-upside-down\": \"\\f326\",\n \"emoji-smile\": \"\\f327\",\n \"emoji-sunglasses-fill\": \"\\f328\",\n \"emoji-sunglasses\": \"\\f329\",\n \"emoji-wink-fill\": \"\\f32a\",\n \"emoji-wink\": \"\\f32b\",\n \"envelope-fill\": \"\\f32c\",\n \"envelope-open-fill\": \"\\f32d\",\n \"envelope-open\": \"\\f32e\",\n \"envelope\": \"\\f32f\",\n \"eraser-fill\": \"\\f330\",\n \"eraser\": \"\\f331\",\n \"exclamation-circle-fill\": \"\\f332\",\n \"exclamation-circle\": \"\\f333\",\n \"exclamation-diamond-fill\": \"\\f334\",\n \"exclamation-diamond\": \"\\f335\",\n \"exclamation-octagon-fill\": \"\\f336\",\n \"exclamation-octagon\": \"\\f337\",\n \"exclamation-square-fill\": \"\\f338\",\n \"exclamation-square\": \"\\f339\",\n \"exclamation-triangle-fill\": \"\\f33a\",\n \"exclamation-triangle\": \"\\f33b\",\n \"exclamation\": \"\\f33c\",\n \"exclude\": \"\\f33d\",\n \"eye-fill\": \"\\f33e\",\n \"eye-slash-fill\": \"\\f33f\",\n \"eye-slash\": \"\\f340\",\n \"eye\": \"\\f341\",\n \"eyedropper\": \"\\f342\",\n \"eyeglasses\": \"\\f343\",\n \"facebook\": \"\\f344\",\n \"file-arrow-down-fill\": \"\\f345\",\n \"file-arrow-down\": \"\\f346\",\n \"file-arrow-up-fill\": \"\\f347\",\n \"file-arrow-up\": \"\\f348\",\n \"file-bar-graph-fill\": \"\\f349\",\n \"file-bar-graph\": \"\\f34a\",\n \"file-binary-fill\": \"\\f34b\",\n \"file-binary\": \"\\f34c\",\n \"file-break-fill\": \"\\f34d\",\n \"file-break\": \"\\f34e\",\n \"file-check-fill\": \"\\f34f\",\n \"file-check\": \"\\f350\",\n \"file-code-fill\": \"\\f351\",\n \"file-code\": \"\\f352\",\n \"file-diff-fill\": \"\\f353\",\n \"file-diff\": \"\\f354\",\n \"file-earmark-arrow-down-fill\": \"\\f355\",\n \"file-earmark-arrow-down\": \"\\f356\",\n \"file-earmark-arrow-up-fill\": \"\\f357\",\n \"file-earmark-arrow-up\": \"\\f358\",\n \"file-earmark-bar-graph-fill\": \"\\f359\",\n \"file-earmark-bar-graph\": \"\\f35a\",\n \"file-earmark-binary-fill\": \"\\f35b\",\n \"file-earmark-binary\": \"\\f35c\",\n \"file-earmark-break-fill\": \"\\f35d\",\n \"file-earmark-break\": \"\\f35e\",\n \"file-earmark-check-fill\": \"\\f35f\",\n \"file-earmark-check\": \"\\f360\",\n \"file-earmark-code-fill\": \"\\f361\",\n \"file-earmark-code\": \"\\f362\",\n \"file-earmark-diff-fill\": \"\\f363\",\n \"file-earmark-diff\": \"\\f364\",\n \"file-earmark-easel-fill\": \"\\f365\",\n \"file-earmark-easel\": \"\\f366\",\n \"file-earmark-excel-fill\": \"\\f367\",\n \"file-earmark-excel\": \"\\f368\",\n \"file-earmark-fill\": \"\\f369\",\n \"file-earmark-font-fill\": \"\\f36a\",\n \"file-earmark-font\": \"\\f36b\",\n \"file-earmark-image-fill\": \"\\f36c\",\n \"file-earmark-image\": \"\\f36d\",\n \"file-earmark-lock-fill\": \"\\f36e\",\n \"file-earmark-lock\": \"\\f36f\",\n \"file-earmark-lock2-fill\": \"\\f370\",\n \"file-earmark-lock2\": \"\\f371\",\n \"file-earmark-medical-fill\": \"\\f372\",\n \"file-earmark-medical\": \"\\f373\",\n \"file-earmark-minus-fill\": \"\\f374\",\n \"file-earmark-minus\": \"\\f375\",\n \"file-earmark-music-fill\": \"\\f376\",\n \"file-earmark-music\": \"\\f377\",\n \"file-earmark-person-fill\": \"\\f378\",\n \"file-earmark-person\": \"\\f379\",\n \"file-earmark-play-fill\": \"\\f37a\",\n \"file-earmark-play\": \"\\f37b\",\n \"file-earmark-plus-fill\": \"\\f37c\",\n \"file-earmark-plus\": \"\\f37d\",\n \"file-earmark-post-fill\": \"\\f37e\",\n \"file-earmark-post\": \"\\f37f\",\n \"file-earmark-ppt-fill\": \"\\f380\",\n \"file-earmark-ppt\": \"\\f381\",\n \"file-earmark-richtext-fill\": \"\\f382\",\n \"file-earmark-richtext\": \"\\f383\",\n \"file-earmark-ruled-fill\": \"\\f384\",\n \"file-earmark-ruled\": \"\\f385\",\n \"file-earmark-slides-fill\": \"\\f386\",\n \"file-earmark-slides\": \"\\f387\",\n \"file-earmark-spreadsheet-fill\": \"\\f388\",\n \"file-earmark-spreadsheet\": \"\\f389\",\n \"file-earmark-text-fill\": \"\\f38a\",\n \"file-earmark-text\": \"\\f38b\",\n \"file-earmark-word-fill\": \"\\f38c\",\n \"file-earmark-word\": \"\\f38d\",\n \"file-earmark-x-fill\": \"\\f38e\",\n \"file-earmark-x\": \"\\f38f\",\n \"file-earmark-zip-fill\": \"\\f390\",\n \"file-earmark-zip\": \"\\f391\",\n \"file-earmark\": \"\\f392\",\n \"file-easel-fill\": \"\\f393\",\n \"file-easel\": \"\\f394\",\n \"file-excel-fill\": \"\\f395\",\n \"file-excel\": \"\\f396\",\n \"file-fill\": \"\\f397\",\n \"file-font-fill\": \"\\f398\",\n \"file-font\": \"\\f399\",\n \"file-image-fill\": \"\\f39a\",\n \"file-image\": \"\\f39b\",\n \"file-lock-fill\": \"\\f39c\",\n \"file-lock\": \"\\f39d\",\n \"file-lock2-fill\": \"\\f39e\",\n \"file-lock2\": \"\\f39f\",\n \"file-medical-fill\": \"\\f3a0\",\n \"file-medical\": \"\\f3a1\",\n \"file-minus-fill\": \"\\f3a2\",\n \"file-minus\": \"\\f3a3\",\n \"file-music-fill\": \"\\f3a4\",\n \"file-music\": \"\\f3a5\",\n \"file-person-fill\": \"\\f3a6\",\n \"file-person\": \"\\f3a7\",\n \"file-play-fill\": \"\\f3a8\",\n \"file-play\": \"\\f3a9\",\n \"file-plus-fill\": \"\\f3aa\",\n \"file-plus\": \"\\f3ab\",\n \"file-post-fill\": \"\\f3ac\",\n \"file-post\": \"\\f3ad\",\n \"file-ppt-fill\": \"\\f3ae\",\n \"file-ppt\": \"\\f3af\",\n \"file-richtext-fill\": \"\\f3b0\",\n \"file-richtext\": \"\\f3b1\",\n \"file-ruled-fill\": \"\\f3b2\",\n \"file-ruled\": \"\\f3b3\",\n \"file-slides-fill\": \"\\f3b4\",\n \"file-slides\": \"\\f3b5\",\n \"file-spreadsheet-fill\": \"\\f3b6\",\n \"file-spreadsheet\": \"\\f3b7\",\n \"file-text-fill\": \"\\f3b8\",\n \"file-text\": \"\\f3b9\",\n \"file-word-fill\": \"\\f3ba\",\n \"file-word\": \"\\f3bb\",\n \"file-x-fill\": \"\\f3bc\",\n \"file-x\": \"\\f3bd\",\n \"file-zip-fill\": \"\\f3be\",\n \"file-zip\": \"\\f3bf\",\n \"file\": \"\\f3c0\",\n \"files-alt\": \"\\f3c1\",\n \"files\": \"\\f3c2\",\n \"film\": \"\\f3c3\",\n \"filter-circle-fill\": \"\\f3c4\",\n \"filter-circle\": \"\\f3c5\",\n \"filter-left\": \"\\f3c6\",\n \"filter-right\": \"\\f3c7\",\n \"filter-square-fill\": \"\\f3c8\",\n \"filter-square\": \"\\f3c9\",\n \"filter\": \"\\f3ca\",\n \"flag-fill\": \"\\f3cb\",\n \"flag\": \"\\f3cc\",\n \"flower1\": \"\\f3cd\",\n \"flower2\": \"\\f3ce\",\n \"flower3\": \"\\f3cf\",\n \"folder-check\": \"\\f3d0\",\n \"folder-fill\": \"\\f3d1\",\n \"folder-minus\": \"\\f3d2\",\n \"folder-plus\": \"\\f3d3\",\n \"folder-symlink-fill\": \"\\f3d4\",\n \"folder-symlink\": \"\\f3d5\",\n \"folder-x\": \"\\f3d6\",\n \"folder\": \"\\f3d7\",\n \"folder2-open\": \"\\f3d8\",\n \"folder2\": \"\\f3d9\",\n \"fonts\": \"\\f3da\",\n \"forward-fill\": \"\\f3db\",\n \"forward\": \"\\f3dc\",\n \"front\": \"\\f3dd\",\n \"fullscreen-exit\": \"\\f3de\",\n \"fullscreen\": \"\\f3df\",\n \"funnel-fill\": \"\\f3e0\",\n \"funnel\": \"\\f3e1\",\n \"gear-fill\": \"\\f3e2\",\n \"gear-wide-connected\": \"\\f3e3\",\n \"gear-wide\": \"\\f3e4\",\n \"gear\": \"\\f3e5\",\n \"gem\": \"\\f3e6\",\n \"geo-alt-fill\": \"\\f3e7\",\n \"geo-alt\": \"\\f3e8\",\n \"geo-fill\": \"\\f3e9\",\n \"geo\": \"\\f3ea\",\n \"gift-fill\": \"\\f3eb\",\n \"gift\": \"\\f3ec\",\n \"github\": \"\\f3ed\",\n \"globe\": \"\\f3ee\",\n \"globe2\": \"\\f3ef\",\n \"google\": \"\\f3f0\",\n \"graph-down\": \"\\f3f1\",\n \"graph-up\": \"\\f3f2\",\n \"grid-1x2-fill\": \"\\f3f3\",\n \"grid-1x2\": \"\\f3f4\",\n \"grid-3x2-gap-fill\": \"\\f3f5\",\n \"grid-3x2-gap\": \"\\f3f6\",\n \"grid-3x2\": \"\\f3f7\",\n \"grid-3x3-gap-fill\": \"\\f3f8\",\n \"grid-3x3-gap\": \"\\f3f9\",\n \"grid-3x3\": \"\\f3fa\",\n \"grid-fill\": \"\\f3fb\",\n \"grid\": \"\\f3fc\",\n \"grip-horizontal\": \"\\f3fd\",\n \"grip-vertical\": \"\\f3fe\",\n \"hammer\": \"\\f3ff\",\n \"hand-index-fill\": \"\\f400\",\n \"hand-index-thumb-fill\": \"\\f401\",\n \"hand-index-thumb\": \"\\f402\",\n \"hand-index\": \"\\f403\",\n \"hand-thumbs-down-fill\": \"\\f404\",\n \"hand-thumbs-down\": \"\\f405\",\n \"hand-thumbs-up-fill\": \"\\f406\",\n \"hand-thumbs-up\": \"\\f407\",\n \"handbag-fill\": \"\\f408\",\n \"handbag\": \"\\f409\",\n \"hash\": \"\\f40a\",\n \"hdd-fill\": \"\\f40b\",\n \"hdd-network-fill\": \"\\f40c\",\n \"hdd-network\": \"\\f40d\",\n \"hdd-rack-fill\": \"\\f40e\",\n \"hdd-rack\": \"\\f40f\",\n \"hdd-stack-fill\": \"\\f410\",\n \"hdd-stack\": \"\\f411\",\n \"hdd\": \"\\f412\",\n \"headphones\": \"\\f413\",\n \"headset\": \"\\f414\",\n \"heart-fill\": \"\\f415\",\n \"heart-half\": \"\\f416\",\n \"heart\": \"\\f417\",\n \"heptagon-fill\": \"\\f418\",\n \"heptagon-half\": \"\\f419\",\n \"heptagon\": \"\\f41a\",\n \"hexagon-fill\": \"\\f41b\",\n \"hexagon-half\": \"\\f41c\",\n \"hexagon\": \"\\f41d\",\n \"hourglass-bottom\": \"\\f41e\",\n \"hourglass-split\": \"\\f41f\",\n \"hourglass-top\": \"\\f420\",\n \"hourglass\": \"\\f421\",\n \"house-door-fill\": \"\\f422\",\n \"house-door\": \"\\f423\",\n \"house-fill\": \"\\f424\",\n \"house\": \"\\f425\",\n \"hr\": \"\\f426\",\n \"hurricane\": \"\\f427\",\n \"image-alt\": \"\\f428\",\n \"image-fill\": \"\\f429\",\n \"image\": \"\\f42a\",\n \"images\": \"\\f42b\",\n \"inbox-fill\": \"\\f42c\",\n \"inbox\": \"\\f42d\",\n \"inboxes-fill\": \"\\f42e\",\n \"inboxes\": \"\\f42f\",\n \"info-circle-fill\": \"\\f430\",\n \"info-circle\": \"\\f431\",\n \"info-square-fill\": \"\\f432\",\n \"info-square\": \"\\f433\",\n \"info\": \"\\f434\",\n \"input-cursor-text\": \"\\f435\",\n \"input-cursor\": \"\\f436\",\n \"instagram\": \"\\f437\",\n \"intersect\": \"\\f438\",\n \"journal-album\": \"\\f439\",\n \"journal-arrow-down\": \"\\f43a\",\n \"journal-arrow-up\": \"\\f43b\",\n \"journal-bookmark-fill\": \"\\f43c\",\n \"journal-bookmark\": \"\\f43d\",\n \"journal-check\": \"\\f43e\",\n \"journal-code\": \"\\f43f\",\n \"journal-medical\": \"\\f440\",\n \"journal-minus\": \"\\f441\",\n \"journal-plus\": \"\\f442\",\n \"journal-richtext\": \"\\f443\",\n \"journal-text\": \"\\f444\",\n \"journal-x\": \"\\f445\",\n \"journal\": \"\\f446\",\n \"journals\": \"\\f447\",\n \"joystick\": \"\\f448\",\n \"justify-left\": \"\\f449\",\n \"justify-right\": \"\\f44a\",\n \"justify\": \"\\f44b\",\n \"kanban-fill\": \"\\f44c\",\n \"kanban\": \"\\f44d\",\n \"key-fill\": \"\\f44e\",\n \"key\": \"\\f44f\",\n \"keyboard-fill\": \"\\f450\",\n \"keyboard\": \"\\f451\",\n \"ladder\": \"\\f452\",\n \"lamp-fill\": \"\\f453\",\n \"lamp\": \"\\f454\",\n \"laptop-fill\": \"\\f455\",\n \"laptop\": \"\\f456\",\n \"layer-backward\": \"\\f457\",\n \"layer-forward\": \"\\f458\",\n \"layers-fill\": \"\\f459\",\n \"layers-half\": \"\\f45a\",\n \"layers\": \"\\f45b\",\n \"layout-sidebar-inset-reverse\": \"\\f45c\",\n \"layout-sidebar-inset\": \"\\f45d\",\n \"layout-sidebar-reverse\": \"\\f45e\",\n \"layout-sidebar\": \"\\f45f\",\n \"layout-split\": \"\\f460\",\n \"layout-text-sidebar-reverse\": \"\\f461\",\n \"layout-text-sidebar\": \"\\f462\",\n \"layout-text-window-reverse\": \"\\f463\",\n \"layout-text-window\": \"\\f464\",\n \"layout-three-columns\": \"\\f465\",\n \"layout-wtf\": \"\\f466\",\n \"life-preserver\": \"\\f467\",\n \"lightbulb-fill\": \"\\f468\",\n \"lightbulb-off-fill\": \"\\f469\",\n \"lightbulb-off\": \"\\f46a\",\n \"lightbulb\": \"\\f46b\",\n \"lightning-charge-fill\": \"\\f46c\",\n \"lightning-charge\": \"\\f46d\",\n \"lightning-fill\": \"\\f46e\",\n \"lightning\": \"\\f46f\",\n \"link-45deg\": \"\\f470\",\n \"link\": \"\\f471\",\n \"linkedin\": \"\\f472\",\n \"list-check\": \"\\f473\",\n \"list-nested\": \"\\f474\",\n \"list-ol\": \"\\f475\",\n \"list-stars\": \"\\f476\",\n \"list-task\": \"\\f477\",\n \"list-ul\": \"\\f478\",\n \"list\": \"\\f479\",\n \"lock-fill\": \"\\f47a\",\n \"lock\": \"\\f47b\",\n \"mailbox\": \"\\f47c\",\n \"mailbox2\": \"\\f47d\",\n \"map-fill\": \"\\f47e\",\n \"map\": \"\\f47f\",\n \"markdown-fill\": \"\\f480\",\n \"markdown\": \"\\f481\",\n \"mask\": \"\\f482\",\n \"megaphone-fill\": \"\\f483\",\n \"megaphone\": \"\\f484\",\n \"menu-app-fill\": \"\\f485\",\n \"menu-app\": \"\\f486\",\n \"menu-button-fill\": \"\\f487\",\n \"menu-button-wide-fill\": \"\\f488\",\n \"menu-button-wide\": \"\\f489\",\n \"menu-button\": \"\\f48a\",\n \"menu-down\": \"\\f48b\",\n \"menu-up\": \"\\f48c\",\n \"mic-fill\": \"\\f48d\",\n \"mic-mute-fill\": \"\\f48e\",\n \"mic-mute\": \"\\f48f\",\n \"mic\": \"\\f490\",\n \"minecart-loaded\": \"\\f491\",\n \"minecart\": \"\\f492\",\n \"moisture\": \"\\f493\",\n \"moon-fill\": \"\\f494\",\n \"moon-stars-fill\": \"\\f495\",\n \"moon-stars\": \"\\f496\",\n \"moon\": \"\\f497\",\n \"mouse-fill\": \"\\f498\",\n \"mouse\": \"\\f499\",\n \"mouse2-fill\": \"\\f49a\",\n \"mouse2\": \"\\f49b\",\n \"mouse3-fill\": \"\\f49c\",\n \"mouse3\": \"\\f49d\",\n \"music-note-beamed\": \"\\f49e\",\n \"music-note-list\": \"\\f49f\",\n \"music-note\": \"\\f4a0\",\n \"music-player-fill\": \"\\f4a1\",\n \"music-player\": \"\\f4a2\",\n \"newspaper\": \"\\f4a3\",\n \"node-minus-fill\": \"\\f4a4\",\n \"node-minus\": \"\\f4a5\",\n \"node-plus-fill\": \"\\f4a6\",\n \"node-plus\": \"\\f4a7\",\n \"nut-fill\": \"\\f4a8\",\n \"nut\": \"\\f4a9\",\n \"octagon-fill\": \"\\f4aa\",\n \"octagon-half\": \"\\f4ab\",\n \"octagon\": \"\\f4ac\",\n \"option\": \"\\f4ad\",\n \"outlet\": \"\\f4ae\",\n \"paint-bucket\": \"\\f4af\",\n \"palette-fill\": \"\\f4b0\",\n \"palette\": \"\\f4b1\",\n \"palette2\": \"\\f4b2\",\n \"paperclip\": \"\\f4b3\",\n \"paragraph\": \"\\f4b4\",\n \"patch-check-fill\": \"\\f4b5\",\n \"patch-check\": \"\\f4b6\",\n \"patch-exclamation-fill\": \"\\f4b7\",\n \"patch-exclamation\": \"\\f4b8\",\n \"patch-minus-fill\": \"\\f4b9\",\n \"patch-minus\": \"\\f4ba\",\n \"patch-plus-fill\": \"\\f4bb\",\n \"patch-plus\": \"\\f4bc\",\n \"patch-question-fill\": \"\\f4bd\",\n \"patch-question\": \"\\f4be\",\n \"pause-btn-fill\": \"\\f4bf\",\n \"pause-btn\": \"\\f4c0\",\n \"pause-circle-fill\": \"\\f4c1\",\n \"pause-circle\": \"\\f4c2\",\n \"pause-fill\": \"\\f4c3\",\n \"pause\": \"\\f4c4\",\n \"peace-fill\": \"\\f4c5\",\n \"peace\": \"\\f4c6\",\n \"pen-fill\": \"\\f4c7\",\n \"pen\": \"\\f4c8\",\n \"pencil-fill\": \"\\f4c9\",\n \"pencil-square\": \"\\f4ca\",\n \"pencil\": \"\\f4cb\",\n \"pentagon-fill\": \"\\f4cc\",\n \"pentagon-half\": \"\\f4cd\",\n \"pentagon\": \"\\f4ce\",\n \"people-fill\": \"\\f4cf\",\n \"people\": \"\\f4d0\",\n \"percent\": \"\\f4d1\",\n \"person-badge-fill\": \"\\f4d2\",\n \"person-badge\": \"\\f4d3\",\n \"person-bounding-box\": \"\\f4d4\",\n \"person-check-fill\": \"\\f4d5\",\n \"person-check\": \"\\f4d6\",\n \"person-circle\": \"\\f4d7\",\n \"person-dash-fill\": \"\\f4d8\",\n \"person-dash\": \"\\f4d9\",\n \"person-fill\": \"\\f4da\",\n \"person-lines-fill\": \"\\f4db\",\n \"person-plus-fill\": \"\\f4dc\",\n \"person-plus\": \"\\f4dd\",\n \"person-square\": \"\\f4de\",\n \"person-x-fill\": \"\\f4df\",\n \"person-x\": \"\\f4e0\",\n \"person\": \"\\f4e1\",\n \"phone-fill\": \"\\f4e2\",\n \"phone-landscape-fill\": \"\\f4e3\",\n \"phone-landscape\": \"\\f4e4\",\n \"phone-vibrate-fill\": \"\\f4e5\",\n \"phone-vibrate\": \"\\f4e6\",\n \"phone\": \"\\f4e7\",\n \"pie-chart-fill\": \"\\f4e8\",\n \"pie-chart\": \"\\f4e9\",\n \"pin-angle-fill\": \"\\f4ea\",\n \"pin-angle\": \"\\f4eb\",\n \"pin-fill\": \"\\f4ec\",\n \"pin\": \"\\f4ed\",\n \"pip-fill\": \"\\f4ee\",\n \"pip\": \"\\f4ef\",\n \"play-btn-fill\": \"\\f4f0\",\n \"play-btn\": \"\\f4f1\",\n \"play-circle-fill\": \"\\f4f2\",\n \"play-circle\": \"\\f4f3\",\n \"play-fill\": \"\\f4f4\",\n \"play\": \"\\f4f5\",\n \"plug-fill\": \"\\f4f6\",\n \"plug\": \"\\f4f7\",\n \"plus-circle-dotted\": \"\\f4f8\",\n \"plus-circle-fill\": \"\\f4f9\",\n \"plus-circle\": \"\\f4fa\",\n \"plus-square-dotted\": \"\\f4fb\",\n \"plus-square-fill\": \"\\f4fc\",\n \"plus-square\": \"\\f4fd\",\n \"plus\": \"\\f4fe\",\n \"power\": \"\\f4ff\",\n \"printer-fill\": \"\\f500\",\n \"printer\": \"\\f501\",\n \"puzzle-fill\": \"\\f502\",\n \"puzzle\": \"\\f503\",\n \"question-circle-fill\": \"\\f504\",\n \"question-circle\": \"\\f505\",\n \"question-diamond-fill\": \"\\f506\",\n \"question-diamond\": \"\\f507\",\n \"question-octagon-fill\": \"\\f508\",\n \"question-octagon\": \"\\f509\",\n \"question-square-fill\": \"\\f50a\",\n \"question-square\": \"\\f50b\",\n \"question\": \"\\f50c\",\n \"rainbow\": \"\\f50d\",\n \"receipt-cutoff\": \"\\f50e\",\n \"receipt\": \"\\f50f\",\n \"reception-0\": \"\\f510\",\n \"reception-1\": \"\\f511\",\n \"reception-2\": \"\\f512\",\n \"reception-3\": \"\\f513\",\n \"reception-4\": \"\\f514\",\n \"record-btn-fill\": \"\\f515\",\n \"record-btn\": \"\\f516\",\n \"record-circle-fill\": \"\\f517\",\n \"record-circle\": \"\\f518\",\n \"record-fill\": \"\\f519\",\n \"record\": \"\\f51a\",\n \"record2-fill\": \"\\f51b\",\n \"record2\": \"\\f51c\",\n \"reply-all-fill\": \"\\f51d\",\n \"reply-all\": \"\\f51e\",\n \"reply-fill\": \"\\f51f\",\n \"reply\": \"\\f520\",\n \"rss-fill\": \"\\f521\",\n \"rss\": \"\\f522\",\n \"rulers\": \"\\f523\",\n \"save-fill\": \"\\f524\",\n \"save\": \"\\f525\",\n \"save2-fill\": \"\\f526\",\n \"save2\": \"\\f527\",\n \"scissors\": \"\\f528\",\n \"screwdriver\": \"\\f529\",\n \"search\": \"\\f52a\",\n \"segmented-nav\": \"\\f52b\",\n \"server\": \"\\f52c\",\n \"share-fill\": \"\\f52d\",\n \"share\": \"\\f52e\",\n \"shield-check\": \"\\f52f\",\n \"shield-exclamation\": \"\\f530\",\n \"shield-fill-check\": \"\\f531\",\n \"shield-fill-exclamation\": \"\\f532\",\n \"shield-fill-minus\": \"\\f533\",\n \"shield-fill-plus\": \"\\f534\",\n \"shield-fill-x\": \"\\f535\",\n \"shield-fill\": \"\\f536\",\n \"shield-lock-fill\": \"\\f537\",\n \"shield-lock\": \"\\f538\",\n \"shield-minus\": \"\\f539\",\n \"shield-plus\": \"\\f53a\",\n \"shield-shaded\": \"\\f53b\",\n \"shield-slash-fill\": \"\\f53c\",\n \"shield-slash\": \"\\f53d\",\n \"shield-x\": \"\\f53e\",\n \"shield\": \"\\f53f\",\n \"shift-fill\": \"\\f540\",\n \"shift\": \"\\f541\",\n \"shop-window\": \"\\f542\",\n \"shop\": \"\\f543\",\n \"shuffle\": \"\\f544\",\n \"signpost-2-fill\": \"\\f545\",\n \"signpost-2\": \"\\f546\",\n \"signpost-fill\": \"\\f547\",\n \"signpost-split-fill\": \"\\f548\",\n \"signpost-split\": \"\\f549\",\n \"signpost\": \"\\f54a\",\n \"sim-fill\": \"\\f54b\",\n \"sim\": \"\\f54c\",\n \"skip-backward-btn-fill\": \"\\f54d\",\n \"skip-backward-btn\": \"\\f54e\",\n \"skip-backward-circle-fill\": \"\\f54f\",\n \"skip-backward-circle\": \"\\f550\",\n \"skip-backward-fill\": \"\\f551\",\n \"skip-backward\": \"\\f552\",\n \"skip-end-btn-fill\": \"\\f553\",\n \"skip-end-btn\": \"\\f554\",\n \"skip-end-circle-fill\": \"\\f555\",\n \"skip-end-circle\": \"\\f556\",\n \"skip-end-fill\": \"\\f557\",\n \"skip-end\": \"\\f558\",\n \"skip-forward-btn-fill\": \"\\f559\",\n \"skip-forward-btn\": \"\\f55a\",\n \"skip-forward-circle-fill\": \"\\f55b\",\n \"skip-forward-circle\": \"\\f55c\",\n \"skip-forward-fill\": \"\\f55d\",\n \"skip-forward\": \"\\f55e\",\n \"skip-start-btn-fill\": \"\\f55f\",\n \"skip-start-btn\": \"\\f560\",\n \"skip-start-circle-fill\": \"\\f561\",\n \"skip-start-circle\": \"\\f562\",\n \"skip-start-fill\": \"\\f563\",\n \"skip-start\": \"\\f564\",\n \"slack\": \"\\f565\",\n \"slash-circle-fill\": \"\\f566\",\n \"slash-circle\": \"\\f567\",\n \"slash-square-fill\": \"\\f568\",\n \"slash-square\": \"\\f569\",\n \"slash\": \"\\f56a\",\n \"sliders\": \"\\f56b\",\n \"smartwatch\": \"\\f56c\",\n \"snow\": \"\\f56d\",\n \"snow2\": \"\\f56e\",\n \"snow3\": \"\\f56f\",\n \"sort-alpha-down-alt\": \"\\f570\",\n \"sort-alpha-down\": \"\\f571\",\n \"sort-alpha-up-alt\": \"\\f572\",\n \"sort-alpha-up\": \"\\f573\",\n \"sort-down-alt\": \"\\f574\",\n \"sort-down\": \"\\f575\",\n \"sort-numeric-down-alt\": \"\\f576\",\n \"sort-numeric-down\": \"\\f577\",\n \"sort-numeric-up-alt\": \"\\f578\",\n \"sort-numeric-up\": \"\\f579\",\n \"sort-up-alt\": \"\\f57a\",\n \"sort-up\": \"\\f57b\",\n \"soundwave\": \"\\f57c\",\n \"speaker-fill\": \"\\f57d\",\n \"speaker\": \"\\f57e\",\n \"speedometer\": \"\\f57f\",\n \"speedometer2\": \"\\f580\",\n \"spellcheck\": \"\\f581\",\n \"square-fill\": \"\\f582\",\n \"square-half\": \"\\f583\",\n \"square\": \"\\f584\",\n \"stack\": \"\\f585\",\n \"star-fill\": \"\\f586\",\n \"star-half\": \"\\f587\",\n \"star\": \"\\f588\",\n \"stars\": \"\\f589\",\n \"stickies-fill\": \"\\f58a\",\n \"stickies\": \"\\f58b\",\n \"sticky-fill\": \"\\f58c\",\n \"sticky\": \"\\f58d\",\n \"stop-btn-fill\": \"\\f58e\",\n \"stop-btn\": \"\\f58f\",\n \"stop-circle-fill\": \"\\f590\",\n \"stop-circle\": \"\\f591\",\n \"stop-fill\": \"\\f592\",\n \"stop\": \"\\f593\",\n \"stoplights-fill\": \"\\f594\",\n \"stoplights\": \"\\f595\",\n \"stopwatch-fill\": \"\\f596\",\n \"stopwatch\": \"\\f597\",\n \"subtract\": \"\\f598\",\n \"suit-club-fill\": \"\\f599\",\n \"suit-club\": \"\\f59a\",\n \"suit-diamond-fill\": \"\\f59b\",\n \"suit-diamond\": \"\\f59c\",\n \"suit-heart-fill\": \"\\f59d\",\n \"suit-heart\": \"\\f59e\",\n \"suit-spade-fill\": \"\\f59f\",\n \"suit-spade\": \"\\f5a0\",\n \"sun-fill\": \"\\f5a1\",\n \"sun\": \"\\f5a2\",\n \"sunglasses\": \"\\f5a3\",\n \"sunrise-fill\": \"\\f5a4\",\n \"sunrise\": \"\\f5a5\",\n \"sunset-fill\": \"\\f5a6\",\n \"sunset\": \"\\f5a7\",\n \"symmetry-horizontal\": \"\\f5a8\",\n \"symmetry-vertical\": \"\\f5a9\",\n \"table\": \"\\f5aa\",\n \"tablet-fill\": \"\\f5ab\",\n \"tablet-landscape-fill\": \"\\f5ac\",\n \"tablet-landscape\": \"\\f5ad\",\n \"tablet\": \"\\f5ae\",\n \"tag-fill\": \"\\f5af\",\n \"tag\": \"\\f5b0\",\n \"tags-fill\": \"\\f5b1\",\n \"tags\": \"\\f5b2\",\n \"telegram\": \"\\f5b3\",\n \"telephone-fill\": \"\\f5b4\",\n \"telephone-forward-fill\": \"\\f5b5\",\n \"telephone-forward\": \"\\f5b6\",\n \"telephone-inbound-fill\": \"\\f5b7\",\n \"telephone-inbound\": \"\\f5b8\",\n \"telephone-minus-fill\": \"\\f5b9\",\n \"telephone-minus\": \"\\f5ba\",\n \"telephone-outbound-fill\": \"\\f5bb\",\n \"telephone-outbound\": \"\\f5bc\",\n \"telephone-plus-fill\": \"\\f5bd\",\n \"telephone-plus\": \"\\f5be\",\n \"telephone-x-fill\": \"\\f5bf\",\n \"telephone-x\": \"\\f5c0\",\n \"telephone\": \"\\f5c1\",\n \"terminal-fill\": \"\\f5c2\",\n \"terminal\": \"\\f5c3\",\n \"text-center\": \"\\f5c4\",\n \"text-indent-left\": \"\\f5c5\",\n \"text-indent-right\": \"\\f5c6\",\n \"text-left\": \"\\f5c7\",\n \"text-paragraph\": \"\\f5c8\",\n \"text-right\": \"\\f5c9\",\n \"textarea-resize\": \"\\f5ca\",\n \"textarea-t\": \"\\f5cb\",\n \"textarea\": \"\\f5cc\",\n \"thermometer-half\": \"\\f5cd\",\n \"thermometer-high\": \"\\f5ce\",\n \"thermometer-low\": \"\\f5cf\",\n \"thermometer-snow\": \"\\f5d0\",\n \"thermometer-sun\": \"\\f5d1\",\n \"thermometer\": \"\\f5d2\",\n \"three-dots-vertical\": \"\\f5d3\",\n \"three-dots\": \"\\f5d4\",\n \"toggle-off\": \"\\f5d5\",\n \"toggle-on\": \"\\f5d6\",\n \"toggle2-off\": \"\\f5d7\",\n \"toggle2-on\": \"\\f5d8\",\n \"toggles\": \"\\f5d9\",\n \"toggles2\": \"\\f5da\",\n \"tools\": \"\\f5db\",\n \"tornado\": \"\\f5dc\",\n \"trash-fill\": \"\\f5dd\",\n \"trash\": \"\\f5de\",\n \"trash2-fill\": \"\\f5df\",\n \"trash2\": \"\\f5e0\",\n \"tree-fill\": \"\\f5e1\",\n \"tree\": \"\\f5e2\",\n \"triangle-fill\": \"\\f5e3\",\n \"triangle-half\": \"\\f5e4\",\n \"triangle\": \"\\f5e5\",\n \"trophy-fill\": \"\\f5e6\",\n \"trophy\": \"\\f5e7\",\n \"tropical-storm\": \"\\f5e8\",\n \"truck-flatbed\": \"\\f5e9\",\n \"truck\": \"\\f5ea\",\n \"tsunami\": \"\\f5eb\",\n \"tv-fill\": \"\\f5ec\",\n \"tv\": \"\\f5ed\",\n \"twitch\": \"\\f5ee\",\n \"twitter\": \"\\f5ef\",\n \"type-bold\": \"\\f5f0\",\n \"type-h1\": \"\\f5f1\",\n \"type-h2\": \"\\f5f2\",\n \"type-h3\": \"\\f5f3\",\n \"type-italic\": \"\\f5f4\",\n \"type-strikethrough\": \"\\f5f5\",\n \"type-underline\": \"\\f5f6\",\n \"type\": \"\\f5f7\",\n \"ui-checks-grid\": \"\\f5f8\",\n \"ui-checks\": \"\\f5f9\",\n \"ui-radios-grid\": \"\\f5fa\",\n \"ui-radios\": \"\\f5fb\",\n \"umbrella-fill\": \"\\f5fc\",\n \"umbrella\": \"\\f5fd\",\n \"union\": \"\\f5fe\",\n \"unlock-fill\": \"\\f5ff\",\n \"unlock\": \"\\f600\",\n \"upc-scan\": \"\\f601\",\n \"upc\": \"\\f602\",\n \"upload\": \"\\f603\",\n \"vector-pen\": \"\\f604\",\n \"view-list\": \"\\f605\",\n \"view-stacked\": \"\\f606\",\n \"vinyl-fill\": \"\\f607\",\n \"vinyl\": \"\\f608\",\n \"voicemail\": \"\\f609\",\n \"volume-down-fill\": \"\\f60a\",\n \"volume-down\": \"\\f60b\",\n \"volume-mute-fill\": \"\\f60c\",\n \"volume-mute\": \"\\f60d\",\n \"volume-off-fill\": \"\\f60e\",\n \"volume-off\": \"\\f60f\",\n \"volume-up-fill\": \"\\f610\",\n \"volume-up\": \"\\f611\",\n \"vr\": \"\\f612\",\n \"wallet-fill\": \"\\f613\",\n \"wallet\": \"\\f614\",\n \"wallet2\": \"\\f615\",\n \"watch\": \"\\f616\",\n \"water\": \"\\f617\",\n \"whatsapp\": \"\\f618\",\n \"wifi-1\": \"\\f619\",\n \"wifi-2\": \"\\f61a\",\n \"wifi-off\": \"\\f61b\",\n \"wifi\": \"\\f61c\",\n \"wind\": \"\\f61d\",\n \"window-dock\": \"\\f61e\",\n \"window-sidebar\": \"\\f61f\",\n \"window\": \"\\f620\",\n \"wrench\": \"\\f621\",\n \"x-circle-fill\": \"\\f622\",\n \"x-circle\": \"\\f623\",\n \"x-diamond-fill\": \"\\f624\",\n \"x-diamond\": \"\\f625\",\n \"x-octagon-fill\": \"\\f626\",\n \"x-octagon\": \"\\f627\",\n \"x-square-fill\": \"\\f628\",\n \"x-square\": \"\\f629\",\n \"x\": \"\\f62a\",\n \"youtube\": \"\\f62b\",\n \"zoom-in\": \"\\f62c\",\n \"zoom-out\": \"\\f62d\",\n \"bank\": \"\\f62e\",\n \"bank2\": \"\\f62f\",\n \"bell-slash-fill\": \"\\f630\",\n \"bell-slash\": \"\\f631\",\n \"cash-coin\": \"\\f632\",\n \"check-lg\": \"\\f633\",\n \"coin\": \"\\f634\",\n \"currency-bitcoin\": \"\\f635\",\n \"currency-dollar\": \"\\f636\",\n \"currency-euro\": \"\\f637\",\n \"currency-exchange\": \"\\f638\",\n \"currency-pound\": \"\\f639\",\n \"currency-yen\": \"\\f63a\",\n \"dash-lg\": \"\\f63b\",\n \"exclamation-lg\": \"\\f63c\",\n \"file-earmark-pdf-fill\": \"\\f63d\",\n \"file-earmark-pdf\": \"\\f63e\",\n \"file-pdf-fill\": \"\\f63f\",\n \"file-pdf\": \"\\f640\",\n \"gender-ambiguous\": \"\\f641\",\n \"gender-female\": \"\\f642\",\n \"gender-male\": \"\\f643\",\n \"gender-trans\": \"\\f644\",\n \"headset-vr\": \"\\f645\",\n \"info-lg\": \"\\f646\",\n \"mastodon\": \"\\f647\",\n \"messenger\": \"\\f648\",\n \"piggy-bank-fill\": \"\\f649\",\n \"piggy-bank\": \"\\f64a\",\n \"pin-map-fill\": \"\\f64b\",\n \"pin-map\": \"\\f64c\",\n \"plus-lg\": \"\\f64d\",\n \"question-lg\": \"\\f64e\",\n \"recycle\": \"\\f64f\",\n \"reddit\": \"\\f650\",\n \"safe-fill\": \"\\f651\",\n \"safe2-fill\": \"\\f652\",\n \"safe2\": \"\\f653\",\n \"sd-card-fill\": \"\\f654\",\n \"sd-card\": \"\\f655\",\n \"skype\": \"\\f656\",\n \"slash-lg\": \"\\f657\",\n \"translate\": \"\\f658\",\n \"x-lg\": \"\\f659\",\n \"safe\": \"\\f65a\",\n \"apple\": \"\\f65b\",\n \"microsoft\": \"\\f65d\",\n \"windows\": \"\\f65e\",\n \"behance\": \"\\f65c\",\n \"dribbble\": \"\\f65f\",\n \"line\": \"\\f660\",\n \"medium\": \"\\f661\",\n \"paypal\": \"\\f662\",\n \"pinterest\": \"\\f663\",\n \"signal\": \"\\f664\",\n \"snapchat\": \"\\f665\",\n \"spotify\": \"\\f666\",\n \"stack-overflow\": \"\\f667\",\n \"strava\": \"\\f668\",\n \"wordpress\": \"\\f669\",\n \"vimeo\": \"\\f66a\",\n \"activity\": \"\\f66b\",\n \"easel2-fill\": \"\\f66c\",\n \"easel2\": \"\\f66d\",\n \"easel3-fill\": \"\\f66e\",\n \"easel3\": \"\\f66f\",\n \"fan\": \"\\f670\",\n \"fingerprint\": \"\\f671\",\n \"graph-down-arrow\": \"\\f672\",\n \"graph-up-arrow\": \"\\f673\",\n \"hypnotize\": \"\\f674\",\n \"magic\": \"\\f675\",\n \"person-rolodex\": \"\\f676\",\n \"person-video\": \"\\f677\",\n \"person-video2\": \"\\f678\",\n \"person-video3\": \"\\f679\",\n \"person-workspace\": \"\\f67a\",\n \"radioactive\": \"\\f67b\",\n \"webcam-fill\": \"\\f67c\",\n \"webcam\": \"\\f67d\",\n \"yin-yang\": \"\\f67e\",\n \"bandaid-fill\": \"\\f680\",\n \"bandaid\": \"\\f681\",\n \"bluetooth\": \"\\f682\",\n \"body-text\": \"\\f683\",\n \"boombox\": \"\\f684\",\n \"boxes\": \"\\f685\",\n \"dpad-fill\": \"\\f686\",\n \"dpad\": \"\\f687\",\n \"ear-fill\": \"\\f688\",\n \"ear\": \"\\f689\",\n \"envelope-check-fill\": \"\\f68b\",\n \"envelope-check\": \"\\f68c\",\n \"envelope-dash-fill\": \"\\f68e\",\n \"envelope-dash\": \"\\f68f\",\n \"envelope-exclamation-fill\": \"\\f691\",\n \"envelope-exclamation\": \"\\f692\",\n \"envelope-plus-fill\": \"\\f693\",\n \"envelope-plus\": \"\\f694\",\n \"envelope-slash-fill\": \"\\f696\",\n \"envelope-slash\": \"\\f697\",\n \"envelope-x-fill\": \"\\f699\",\n \"envelope-x\": \"\\f69a\",\n \"explicit-fill\": \"\\f69b\",\n \"explicit\": \"\\f69c\",\n \"git\": \"\\f69d\",\n \"infinity\": \"\\f69e\",\n \"list-columns-reverse\": \"\\f69f\",\n \"list-columns\": \"\\f6a0\",\n \"meta\": \"\\f6a1\",\n \"nintendo-switch\": \"\\f6a4\",\n \"pc-display-horizontal\": \"\\f6a5\",\n \"pc-display\": \"\\f6a6\",\n \"pc-horizontal\": \"\\f6a7\",\n \"pc\": \"\\f6a8\",\n \"playstation\": \"\\f6a9\",\n \"plus-slash-minus\": \"\\f6aa\",\n \"projector-fill\": \"\\f6ab\",\n \"projector\": \"\\f6ac\",\n \"qr-code-scan\": \"\\f6ad\",\n \"qr-code\": \"\\f6ae\",\n \"quora\": \"\\f6af\",\n \"quote\": \"\\f6b0\",\n \"robot\": \"\\f6b1\",\n \"send-check-fill\": \"\\f6b2\",\n \"send-check\": \"\\f6b3\",\n \"send-dash-fill\": \"\\f6b4\",\n \"send-dash\": \"\\f6b5\",\n \"send-exclamation-fill\": \"\\f6b7\",\n \"send-exclamation\": \"\\f6b8\",\n \"send-fill\": \"\\f6b9\",\n \"send-plus-fill\": \"\\f6ba\",\n \"send-plus\": \"\\f6bb\",\n \"send-slash-fill\": \"\\f6bc\",\n \"send-slash\": \"\\f6bd\",\n \"send-x-fill\": \"\\f6be\",\n \"send-x\": \"\\f6bf\",\n \"send\": \"\\f6c0\",\n \"steam\": \"\\f6c1\",\n \"terminal-dash\": \"\\f6c3\",\n \"terminal-plus\": \"\\f6c4\",\n \"terminal-split\": \"\\f6c5\",\n \"ticket-detailed-fill\": \"\\f6c6\",\n \"ticket-detailed\": \"\\f6c7\",\n \"ticket-fill\": \"\\f6c8\",\n \"ticket-perforated-fill\": \"\\f6c9\",\n \"ticket-perforated\": \"\\f6ca\",\n \"ticket\": \"\\f6cb\",\n \"tiktok\": \"\\f6cc\",\n \"window-dash\": \"\\f6cd\",\n \"window-desktop\": \"\\f6ce\",\n \"window-fullscreen\": \"\\f6cf\",\n \"window-plus\": \"\\f6d0\",\n \"window-split\": \"\\f6d1\",\n \"window-stack\": \"\\f6d2\",\n \"window-x\": \"\\f6d3\",\n \"xbox\": \"\\f6d4\",\n \"ethernet\": \"\\f6d5\",\n \"hdmi-fill\": \"\\f6d6\",\n \"hdmi\": \"\\f6d7\",\n \"usb-c-fill\": \"\\f6d8\",\n \"usb-c\": \"\\f6d9\",\n \"usb-fill\": \"\\f6da\",\n \"usb-plug-fill\": \"\\f6db\",\n \"usb-plug\": \"\\f6dc\",\n \"usb-symbol\": \"\\f6dd\",\n \"usb\": \"\\f6de\",\n \"boombox-fill\": \"\\f6df\",\n \"displayport\": \"\\f6e1\",\n \"gpu-card\": \"\\f6e2\",\n \"memory\": \"\\f6e3\",\n \"modem-fill\": \"\\f6e4\",\n \"modem\": \"\\f6e5\",\n \"motherboard-fill\": \"\\f6e6\",\n \"motherboard\": \"\\f6e7\",\n \"optical-audio-fill\": \"\\f6e8\",\n \"optical-audio\": \"\\f6e9\",\n \"pci-card\": \"\\f6ea\",\n \"router-fill\": \"\\f6eb\",\n \"router\": \"\\f6ec\",\n \"thunderbolt-fill\": \"\\f6ef\",\n \"thunderbolt\": \"\\f6f0\",\n \"usb-drive-fill\": \"\\f6f1\",\n \"usb-drive\": \"\\f6f2\",\n \"usb-micro-fill\": \"\\f6f3\",\n \"usb-micro\": \"\\f6f4\",\n \"usb-mini-fill\": \"\\f6f5\",\n \"usb-mini\": \"\\f6f6\",\n \"cloud-haze2\": \"\\f6f7\",\n \"device-hdd-fill\": \"\\f6f8\",\n \"device-hdd\": \"\\f6f9\",\n \"device-ssd-fill\": \"\\f6fa\",\n \"device-ssd\": \"\\f6fb\",\n \"displayport-fill\": \"\\f6fc\",\n \"mortarboard-fill\": \"\\f6fd\",\n \"mortarboard\": \"\\f6fe\",\n \"terminal-x\": \"\\f6ff\",\n \"arrow-through-heart-fill\": \"\\f700\",\n \"arrow-through-heart\": \"\\f701\",\n \"badge-sd-fill\": \"\\f702\",\n \"badge-sd\": \"\\f703\",\n \"bag-heart-fill\": \"\\f704\",\n \"bag-heart\": \"\\f705\",\n \"balloon-fill\": \"\\f706\",\n \"balloon-heart-fill\": \"\\f707\",\n \"balloon-heart\": \"\\f708\",\n \"balloon\": \"\\f709\",\n \"box2-fill\": \"\\f70a\",\n \"box2-heart-fill\": \"\\f70b\",\n \"box2-heart\": \"\\f70c\",\n \"box2\": \"\\f70d\",\n \"braces-asterisk\": \"\\f70e\",\n \"calendar-heart-fill\": \"\\f70f\",\n \"calendar-heart\": \"\\f710\",\n \"calendar2-heart-fill\": \"\\f711\",\n \"calendar2-heart\": \"\\f712\",\n \"chat-heart-fill\": \"\\f713\",\n \"chat-heart\": \"\\f714\",\n \"chat-left-heart-fill\": \"\\f715\",\n \"chat-left-heart\": \"\\f716\",\n \"chat-right-heart-fill\": \"\\f717\",\n \"chat-right-heart\": \"\\f718\",\n \"chat-square-heart-fill\": \"\\f719\",\n \"chat-square-heart\": \"\\f71a\",\n \"clipboard-check-fill\": \"\\f71b\",\n \"clipboard-data-fill\": \"\\f71c\",\n \"clipboard-fill\": \"\\f71d\",\n \"clipboard-heart-fill\": \"\\f71e\",\n \"clipboard-heart\": \"\\f71f\",\n \"clipboard-minus-fill\": \"\\f720\",\n \"clipboard-plus-fill\": \"\\f721\",\n \"clipboard-pulse\": \"\\f722\",\n \"clipboard-x-fill\": \"\\f723\",\n \"clipboard2-check-fill\": \"\\f724\",\n \"clipboard2-check\": \"\\f725\",\n \"clipboard2-data-fill\": \"\\f726\",\n \"clipboard2-data\": \"\\f727\",\n \"clipboard2-fill\": \"\\f728\",\n \"clipboard2-heart-fill\": \"\\f729\",\n \"clipboard2-heart\": \"\\f72a\",\n \"clipboard2-minus-fill\": \"\\f72b\",\n \"clipboard2-minus\": \"\\f72c\",\n \"clipboard2-plus-fill\": \"\\f72d\",\n \"clipboard2-plus\": \"\\f72e\",\n \"clipboard2-pulse-fill\": \"\\f72f\",\n \"clipboard2-pulse\": \"\\f730\",\n \"clipboard2-x-fill\": \"\\f731\",\n \"clipboard2-x\": \"\\f732\",\n \"clipboard2\": \"\\f733\",\n \"emoji-kiss-fill\": \"\\f734\",\n \"emoji-kiss\": \"\\f735\",\n \"envelope-heart-fill\": \"\\f736\",\n \"envelope-heart\": \"\\f737\",\n \"envelope-open-heart-fill\": \"\\f738\",\n \"envelope-open-heart\": \"\\f739\",\n \"envelope-paper-fill\": \"\\f73a\",\n \"envelope-paper-heart-fill\": \"\\f73b\",\n \"envelope-paper-heart\": \"\\f73c\",\n \"envelope-paper\": \"\\f73d\",\n \"filetype-aac\": \"\\f73e\",\n \"filetype-ai\": \"\\f73f\",\n \"filetype-bmp\": \"\\f740\",\n \"filetype-cs\": \"\\f741\",\n \"filetype-css\": \"\\f742\",\n \"filetype-csv\": \"\\f743\",\n \"filetype-doc\": \"\\f744\",\n \"filetype-docx\": \"\\f745\",\n \"filetype-exe\": \"\\f746\",\n \"filetype-gif\": \"\\f747\",\n \"filetype-heic\": \"\\f748\",\n \"filetype-html\": \"\\f749\",\n \"filetype-java\": \"\\f74a\",\n \"filetype-jpg\": \"\\f74b\",\n \"filetype-js\": \"\\f74c\",\n \"filetype-jsx\": \"\\f74d\",\n \"filetype-key\": \"\\f74e\",\n \"filetype-m4p\": \"\\f74f\",\n \"filetype-md\": \"\\f750\",\n \"filetype-mdx\": \"\\f751\",\n \"filetype-mov\": \"\\f752\",\n \"filetype-mp3\": \"\\f753\",\n \"filetype-mp4\": \"\\f754\",\n \"filetype-otf\": \"\\f755\",\n \"filetype-pdf\": \"\\f756\",\n \"filetype-php\": \"\\f757\",\n \"filetype-png\": \"\\f758\",\n \"filetype-ppt\": \"\\f75a\",\n \"filetype-psd\": \"\\f75b\",\n \"filetype-py\": \"\\f75c\",\n \"filetype-raw\": \"\\f75d\",\n \"filetype-rb\": \"\\f75e\",\n \"filetype-sass\": \"\\f75f\",\n \"filetype-scss\": \"\\f760\",\n \"filetype-sh\": \"\\f761\",\n \"filetype-svg\": \"\\f762\",\n \"filetype-tiff\": \"\\f763\",\n \"filetype-tsx\": \"\\f764\",\n \"filetype-ttf\": \"\\f765\",\n \"filetype-txt\": \"\\f766\",\n \"filetype-wav\": \"\\f767\",\n \"filetype-woff\": \"\\f768\",\n \"filetype-xls\": \"\\f76a\",\n \"filetype-xml\": \"\\f76b\",\n \"filetype-yml\": \"\\f76c\",\n \"heart-arrow\": \"\\f76d\",\n \"heart-pulse-fill\": \"\\f76e\",\n \"heart-pulse\": \"\\f76f\",\n \"heartbreak-fill\": \"\\f770\",\n \"heartbreak\": \"\\f771\",\n \"hearts\": \"\\f772\",\n \"hospital-fill\": \"\\f773\",\n \"hospital\": \"\\f774\",\n \"house-heart-fill\": \"\\f775\",\n \"house-heart\": \"\\f776\",\n \"incognito\": \"\\f777\",\n \"magnet-fill\": \"\\f778\",\n \"magnet\": \"\\f779\",\n \"person-heart\": \"\\f77a\",\n \"person-hearts\": \"\\f77b\",\n \"phone-flip\": \"\\f77c\",\n \"plugin\": \"\\f77d\",\n \"postage-fill\": \"\\f77e\",\n \"postage-heart-fill\": \"\\f77f\",\n \"postage-heart\": \"\\f780\",\n \"postage\": \"\\f781\",\n \"postcard-fill\": \"\\f782\",\n \"postcard-heart-fill\": \"\\f783\",\n \"postcard-heart\": \"\\f784\",\n \"postcard\": \"\\f785\",\n \"search-heart-fill\": \"\\f786\",\n \"search-heart\": \"\\f787\",\n \"sliders2-vertical\": \"\\f788\",\n \"sliders2\": \"\\f789\",\n \"trash3-fill\": \"\\f78a\",\n \"trash3\": \"\\f78b\",\n \"valentine\": \"\\f78c\",\n \"valentine2\": \"\\f78d\",\n \"wrench-adjustable-circle-fill\": \"\\f78e\",\n \"wrench-adjustable-circle\": \"\\f78f\",\n \"wrench-adjustable\": \"\\f790\",\n \"filetype-json\": \"\\f791\",\n \"filetype-pptx\": \"\\f792\",\n \"filetype-xlsx\": \"\\f793\",\n \"1-circle-fill\": \"\\f796\",\n \"1-circle\": \"\\f797\",\n \"1-square-fill\": \"\\f798\",\n \"1-square\": \"\\f799\",\n \"2-circle-fill\": \"\\f79c\",\n \"2-circle\": \"\\f79d\",\n \"2-square-fill\": \"\\f79e\",\n \"2-square\": \"\\f79f\",\n \"3-circle-fill\": \"\\f7a2\",\n \"3-circle\": \"\\f7a3\",\n \"3-square-fill\": \"\\f7a4\",\n \"3-square\": \"\\f7a5\",\n \"4-circle-fill\": \"\\f7a8\",\n \"4-circle\": \"\\f7a9\",\n \"4-square-fill\": \"\\f7aa\",\n \"4-square\": \"\\f7ab\",\n \"5-circle-fill\": \"\\f7ae\",\n \"5-circle\": \"\\f7af\",\n \"5-square-fill\": \"\\f7b0\",\n \"5-square\": \"\\f7b1\",\n \"6-circle-fill\": \"\\f7b4\",\n \"6-circle\": \"\\f7b5\",\n \"6-square-fill\": \"\\f7b6\",\n \"6-square\": \"\\f7b7\",\n \"7-circle-fill\": \"\\f7ba\",\n \"7-circle\": \"\\f7bb\",\n \"7-square-fill\": \"\\f7bc\",\n \"7-square\": \"\\f7bd\",\n \"8-circle-fill\": \"\\f7c0\",\n \"8-circle\": \"\\f7c1\",\n \"8-square-fill\": \"\\f7c2\",\n \"8-square\": \"\\f7c3\",\n \"9-circle-fill\": \"\\f7c6\",\n \"9-circle\": \"\\f7c7\",\n \"9-square-fill\": \"\\f7c8\",\n \"9-square\": \"\\f7c9\",\n \"airplane-engines-fill\": \"\\f7ca\",\n \"airplane-engines\": \"\\f7cb\",\n \"airplane-fill\": \"\\f7cc\",\n \"airplane\": \"\\f7cd\",\n \"alexa\": \"\\f7ce\",\n \"alipay\": \"\\f7cf\",\n \"android\": \"\\f7d0\",\n \"android2\": \"\\f7d1\",\n \"box-fill\": \"\\f7d2\",\n \"box-seam-fill\": \"\\f7d3\",\n \"browser-chrome\": \"\\f7d4\",\n \"browser-edge\": \"\\f7d5\",\n \"browser-firefox\": \"\\f7d6\",\n \"browser-safari\": \"\\f7d7\",\n \"c-circle-fill\": \"\\f7da\",\n \"c-circle\": \"\\f7db\",\n \"c-square-fill\": \"\\f7dc\",\n \"c-square\": \"\\f7dd\",\n \"capsule-pill\": \"\\f7de\",\n \"capsule\": \"\\f7df\",\n \"car-front-fill\": \"\\f7e0\",\n \"car-front\": \"\\f7e1\",\n \"cassette-fill\": \"\\f7e2\",\n \"cassette\": \"\\f7e3\",\n \"cc-circle-fill\": \"\\f7e6\",\n \"cc-circle\": \"\\f7e7\",\n \"cc-square-fill\": \"\\f7e8\",\n \"cc-square\": \"\\f7e9\",\n \"cup-hot-fill\": \"\\f7ea\",\n \"cup-hot\": \"\\f7eb\",\n \"currency-rupee\": \"\\f7ec\",\n \"dropbox\": \"\\f7ed\",\n \"escape\": \"\\f7ee\",\n \"fast-forward-btn-fill\": \"\\f7ef\",\n \"fast-forward-btn\": \"\\f7f0\",\n \"fast-forward-circle-fill\": \"\\f7f1\",\n \"fast-forward-circle\": \"\\f7f2\",\n \"fast-forward-fill\": \"\\f7f3\",\n \"fast-forward\": \"\\f7f4\",\n \"filetype-sql\": \"\\f7f5\",\n \"fire\": \"\\f7f6\",\n \"google-play\": \"\\f7f7\",\n \"h-circle-fill\": \"\\f7fa\",\n \"h-circle\": \"\\f7fb\",\n \"h-square-fill\": \"\\f7fc\",\n \"h-square\": \"\\f7fd\",\n \"indent\": \"\\f7fe\",\n \"lungs-fill\": \"\\f7ff\",\n \"lungs\": \"\\f800\",\n \"microsoft-teams\": \"\\f801\",\n \"p-circle-fill\": \"\\f804\",\n \"p-circle\": \"\\f805\",\n \"p-square-fill\": \"\\f806\",\n \"p-square\": \"\\f807\",\n \"pass-fill\": \"\\f808\",\n \"pass\": \"\\f809\",\n \"prescription\": \"\\f80a\",\n \"prescription2\": \"\\f80b\",\n \"r-circle-fill\": \"\\f80e\",\n \"r-circle\": \"\\f80f\",\n \"r-square-fill\": \"\\f810\",\n \"r-square\": \"\\f811\",\n \"repeat-1\": \"\\f812\",\n \"repeat\": \"\\f813\",\n \"rewind-btn-fill\": \"\\f814\",\n \"rewind-btn\": \"\\f815\",\n \"rewind-circle-fill\": \"\\f816\",\n \"rewind-circle\": \"\\f817\",\n \"rewind-fill\": \"\\f818\",\n \"rewind\": \"\\f819\",\n \"train-freight-front-fill\": \"\\f81a\",\n \"train-freight-front\": \"\\f81b\",\n \"train-front-fill\": \"\\f81c\",\n \"train-front\": \"\\f81d\",\n \"train-lightrail-front-fill\": \"\\f81e\",\n \"train-lightrail-front\": \"\\f81f\",\n \"truck-front-fill\": \"\\f820\",\n \"truck-front\": \"\\f821\",\n \"ubuntu\": \"\\f822\",\n \"unindent\": \"\\f823\",\n \"unity\": \"\\f824\",\n \"universal-access-circle\": \"\\f825\",\n \"universal-access\": \"\\f826\",\n \"virus\": \"\\f827\",\n \"virus2\": \"\\f828\",\n \"wechat\": \"\\f829\",\n \"yelp\": \"\\f82a\",\n \"sign-stop-fill\": \"\\f82b\",\n \"sign-stop-lights-fill\": \"\\f82c\",\n \"sign-stop-lights\": \"\\f82d\",\n \"sign-stop\": \"\\f82e\",\n \"sign-turn-left-fill\": \"\\f82f\",\n \"sign-turn-left\": \"\\f830\",\n \"sign-turn-right-fill\": \"\\f831\",\n \"sign-turn-right\": \"\\f832\",\n \"sign-turn-slight-left-fill\": \"\\f833\",\n \"sign-turn-slight-left\": \"\\f834\",\n \"sign-turn-slight-right-fill\": \"\\f835\",\n \"sign-turn-slight-right\": \"\\f836\",\n \"sign-yield-fill\": \"\\f837\",\n \"sign-yield\": \"\\f838\",\n \"ev-station-fill\": \"\\f839\",\n \"ev-station\": \"\\f83a\",\n \"fuel-pump-diesel-fill\": \"\\f83b\",\n \"fuel-pump-diesel\": \"\\f83c\",\n \"fuel-pump-fill\": \"\\f83d\",\n \"fuel-pump\": \"\\f83e\",\n \"0-circle-fill\": \"\\f83f\",\n \"0-circle\": \"\\f840\",\n \"0-square-fill\": \"\\f841\",\n \"0-square\": \"\\f842\",\n \"rocket-fill\": \"\\f843\",\n \"rocket-takeoff-fill\": \"\\f844\",\n \"rocket-takeoff\": \"\\f845\",\n \"rocket\": \"\\f846\",\n \"stripe\": \"\\f847\",\n \"subscript\": \"\\f848\",\n \"superscript\": \"\\f849\",\n \"trello\": \"\\f84a\",\n \"envelope-at-fill\": \"\\f84b\",\n \"envelope-at\": \"\\f84c\",\n \"regex\": \"\\f84d\",\n \"text-wrap\": \"\\f84e\",\n \"sign-dead-end-fill\": \"\\f84f\",\n \"sign-dead-end\": \"\\f850\",\n \"sign-do-not-enter-fill\": \"\\f851\",\n \"sign-do-not-enter\": \"\\f852\",\n \"sign-intersection-fill\": \"\\f853\",\n \"sign-intersection-side-fill\": \"\\f854\",\n \"sign-intersection-side\": \"\\f855\",\n \"sign-intersection-t-fill\": \"\\f856\",\n \"sign-intersection-t\": \"\\f857\",\n \"sign-intersection-y-fill\": \"\\f858\",\n \"sign-intersection-y\": \"\\f859\",\n \"sign-intersection\": \"\\f85a\",\n \"sign-merge-left-fill\": \"\\f85b\",\n \"sign-merge-left\": \"\\f85c\",\n \"sign-merge-right-fill\": \"\\f85d\",\n \"sign-merge-right\": \"\\f85e\",\n \"sign-no-left-turn-fill\": \"\\f85f\",\n \"sign-no-left-turn\": \"\\f860\",\n \"sign-no-parking-fill\": \"\\f861\",\n \"sign-no-parking\": \"\\f862\",\n \"sign-no-right-turn-fill\": \"\\f863\",\n \"sign-no-right-turn\": \"\\f864\",\n \"sign-railroad-fill\": \"\\f865\",\n \"sign-railroad\": \"\\f866\",\n \"building-add\": \"\\f867\",\n \"building-check\": \"\\f868\",\n \"building-dash\": \"\\f869\",\n \"building-down\": \"\\f86a\",\n \"building-exclamation\": \"\\f86b\",\n \"building-fill-add\": \"\\f86c\",\n \"building-fill-check\": \"\\f86d\",\n \"building-fill-dash\": \"\\f86e\",\n \"building-fill-down\": \"\\f86f\",\n \"building-fill-exclamation\": \"\\f870\",\n \"building-fill-gear\": \"\\f871\",\n \"building-fill-lock\": \"\\f872\",\n \"building-fill-slash\": \"\\f873\",\n \"building-fill-up\": \"\\f874\",\n \"building-fill-x\": \"\\f875\",\n \"building-fill\": \"\\f876\",\n \"building-gear\": \"\\f877\",\n \"building-lock\": \"\\f878\",\n \"building-slash\": \"\\f879\",\n \"building-up\": \"\\f87a\",\n \"building-x\": \"\\f87b\",\n \"buildings-fill\": \"\\f87c\",\n \"buildings\": \"\\f87d\",\n \"bus-front-fill\": \"\\f87e\",\n \"bus-front\": \"\\f87f\",\n \"ev-front-fill\": \"\\f880\",\n \"ev-front\": \"\\f881\",\n \"globe-americas\": \"\\f882\",\n \"globe-asia-australia\": \"\\f883\",\n \"globe-central-south-asia\": \"\\f884\",\n \"globe-europe-africa\": \"\\f885\",\n \"house-add-fill\": \"\\f886\",\n \"house-add\": \"\\f887\",\n \"house-check-fill\": \"\\f888\",\n \"house-check\": \"\\f889\",\n \"house-dash-fill\": \"\\f88a\",\n \"house-dash\": \"\\f88b\",\n \"house-down-fill\": \"\\f88c\",\n \"house-down\": \"\\f88d\",\n \"house-exclamation-fill\": \"\\f88e\",\n \"house-exclamation\": \"\\f88f\",\n \"house-gear-fill\": \"\\f890\",\n \"house-gear\": \"\\f891\",\n \"house-lock-fill\": \"\\f892\",\n \"house-lock\": \"\\f893\",\n \"house-slash-fill\": \"\\f894\",\n \"house-slash\": \"\\f895\",\n \"house-up-fill\": \"\\f896\",\n \"house-up\": \"\\f897\",\n \"house-x-fill\": \"\\f898\",\n \"house-x\": \"\\f899\",\n \"person-add\": \"\\f89a\",\n \"person-down\": \"\\f89b\",\n \"person-exclamation\": \"\\f89c\",\n \"person-fill-add\": \"\\f89d\",\n \"person-fill-check\": \"\\f89e\",\n \"person-fill-dash\": \"\\f89f\",\n \"person-fill-down\": \"\\f8a0\",\n \"person-fill-exclamation\": \"\\f8a1\",\n \"person-fill-gear\": \"\\f8a2\",\n \"person-fill-lock\": \"\\f8a3\",\n \"person-fill-slash\": \"\\f8a4\",\n \"person-fill-up\": \"\\f8a5\",\n \"person-fill-x\": \"\\f8a6\",\n \"person-gear\": \"\\f8a7\",\n \"person-lock\": \"\\f8a8\",\n \"person-slash\": \"\\f8a9\",\n \"person-up\": \"\\f8aa\",\n \"scooter\": \"\\f8ab\",\n \"taxi-front-fill\": \"\\f8ac\",\n \"taxi-front\": \"\\f8ad\",\n \"amd\": \"\\f8ae\",\n \"database-add\": \"\\f8af\",\n \"database-check\": \"\\f8b0\",\n \"database-dash\": \"\\f8b1\",\n \"database-down\": \"\\f8b2\",\n \"database-exclamation\": \"\\f8b3\",\n \"database-fill-add\": \"\\f8b4\",\n \"database-fill-check\": \"\\f8b5\",\n \"database-fill-dash\": \"\\f8b6\",\n \"database-fill-down\": \"\\f8b7\",\n \"database-fill-exclamation\": \"\\f8b8\",\n \"database-fill-gear\": \"\\f8b9\",\n \"database-fill-lock\": \"\\f8ba\",\n \"database-fill-slash\": \"\\f8bb\",\n \"database-fill-up\": \"\\f8bc\",\n \"database-fill-x\": \"\\f8bd\",\n \"database-fill\": \"\\f8be\",\n \"database-gear\": \"\\f8bf\",\n \"database-lock\": \"\\f8c0\",\n \"database-slash\": \"\\f8c1\",\n \"database-up\": \"\\f8c2\",\n \"database-x\": \"\\f8c3\",\n \"database\": \"\\f8c4\",\n \"houses-fill\": \"\\f8c5\",\n \"houses\": \"\\f8c6\",\n \"nvidia\": \"\\f8c7\",\n \"person-vcard-fill\": \"\\f8c8\",\n \"person-vcard\": \"\\f8c9\",\n \"sina-weibo\": \"\\f8ca\",\n \"tencent-qq\": \"\\f8cb\",\n \"wikipedia\": \"\\f8cc\",\n \"alphabet-uppercase\": \"\\f2a5\",\n \"alphabet\": \"\\f68a\",\n \"amazon\": \"\\f68d\",\n \"arrows-collapse-vertical\": \"\\f690\",\n \"arrows-expand-vertical\": \"\\f695\",\n \"arrows-vertical\": \"\\f698\",\n \"arrows\": \"\\f6a2\",\n \"ban-fill\": \"\\f6a3\",\n \"ban\": \"\\f6b6\",\n \"bing\": \"\\f6c2\",\n \"cake\": \"\\f6e0\",\n \"cake2\": \"\\f6ed\",\n \"cookie\": \"\\f6ee\",\n \"copy\": \"\\f759\",\n \"crosshair\": \"\\f769\",\n \"crosshair2\": \"\\f794\",\n \"emoji-astonished-fill\": \"\\f795\",\n \"emoji-astonished\": \"\\f79a\",\n \"emoji-grimace-fill\": \"\\f79b\",\n \"emoji-grimace\": \"\\f7a0\",\n \"emoji-grin-fill\": \"\\f7a1\",\n \"emoji-grin\": \"\\f7a6\",\n \"emoji-surprise-fill\": \"\\f7a7\",\n \"emoji-surprise\": \"\\f7ac\",\n \"emoji-tear-fill\": \"\\f7ad\",\n \"emoji-tear\": \"\\f7b2\",\n \"envelope-arrow-down-fill\": \"\\f7b3\",\n \"envelope-arrow-down\": \"\\f7b8\",\n \"envelope-arrow-up-fill\": \"\\f7b9\",\n \"envelope-arrow-up\": \"\\f7be\",\n \"feather\": \"\\f7bf\",\n \"feather2\": \"\\f7c4\",\n \"floppy-fill\": \"\\f7c5\",\n \"floppy\": \"\\f7d8\",\n \"floppy2-fill\": \"\\f7d9\",\n \"floppy2\": \"\\f7e4\",\n \"gitlab\": \"\\f7e5\",\n \"highlighter\": \"\\f7f8\",\n \"marker-tip\": \"\\f802\",\n \"nvme-fill\": \"\\f803\",\n \"nvme\": \"\\f80c\",\n \"opencollective\": \"\\f80d\",\n \"pci-card-network\": \"\\f8cd\",\n \"pci-card-sound\": \"\\f8ce\",\n \"radar\": \"\\f8cf\",\n \"send-arrow-down-fill\": \"\\f8d0\",\n \"send-arrow-down\": \"\\f8d1\",\n \"send-arrow-up-fill\": \"\\f8d2\",\n \"send-arrow-up\": \"\\f8d3\",\n \"sim-slash-fill\": \"\\f8d4\",\n \"sim-slash\": \"\\f8d5\",\n \"sourceforge\": \"\\f8d6\",\n \"substack\": \"\\f8d7\",\n \"threads-fill\": \"\\f8d8\",\n \"threads\": \"\\f8d9\",\n \"transparency\": \"\\f8da\",\n \"twitter-x\": \"\\f8db\",\n \"type-h4\": \"\\f8dc\",\n \"type-h5\": \"\\f8dd\",\n \"type-h6\": \"\\f8de\",\n \"backpack-fill\": \"\\f8df\",\n \"backpack\": \"\\f8e0\",\n \"backpack2-fill\": \"\\f8e1\",\n \"backpack2\": \"\\f8e2\",\n \"backpack3-fill\": \"\\f8e3\",\n \"backpack3\": \"\\f8e4\",\n \"backpack4-fill\": \"\\f8e5\",\n \"backpack4\": \"\\f8e6\",\n \"brilliance\": \"\\f8e7\",\n \"cake-fill\": \"\\f8e8\",\n \"cake2-fill\": \"\\f8e9\",\n \"duffle-fill\": \"\\f8ea\",\n \"duffle\": \"\\f8eb\",\n \"exposure\": \"\\f8ec\",\n \"gender-neuter\": \"\\f8ed\",\n \"highlights\": \"\\f8ee\",\n \"luggage-fill\": \"\\f8ef\",\n \"luggage\": \"\\f8f0\",\n \"mailbox-flag\": \"\\f8f1\",\n \"mailbox2-flag\": \"\\f8f2\",\n \"noise-reduction\": \"\\f8f3\",\n \"passport-fill\": \"\\f8f4\",\n \"passport\": \"\\f8f5\",\n \"person-arms-up\": \"\\f8f6\",\n \"person-raised-hand\": \"\\f8f7\",\n \"person-standing-dress\": \"\\f8f8\",\n \"person-standing\": \"\\f8f9\",\n \"person-walking\": \"\\f8fa\",\n \"person-wheelchair\": \"\\f8fb\",\n \"shadows\": \"\\f8fc\",\n \"suitcase-fill\": \"\\f8fd\",\n \"suitcase-lg-fill\": \"\\f8fe\",\n \"suitcase-lg\": \"\\f8ff\",\n \"suitcase\": \"\\f900\",\n \"suitcase2-fill\": \"\\f901\",\n \"suitcase2\": \"\\f902\",\n \"vignette\": \"\\f903\",\n);\n\n@each $icon, $codepoint in $bootstrap-icons-map {\n .bi-#{$icon}::before { content: $codepoint; }\n}\n", "/**\n * Licensed to the .NET Foundation under one or more agreements.\n * The .NET Foundation licenses this file to you under the MIT license.\n */\n\n$enable-important-utilities: false;\n$container-max-widths: (\n xxl: 1768px\n) !default;\n\n@import \"mixins\";\n@import \"bootstrap/scss/bootstrap\";\n@import \"highlight\";\n@import \"layout\";\n@import \"nav\";\n@import \"toc\";\n@import \"markdown\";\n@import \"search\";\n@import \"dotnet\";\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.xref,\n.text-break {\n word-wrap: break-word;\n word-break: break-word;\n}\n\n.divider {\n margin: 0 5px;\n color: #ccc;\n}\n\narticle {\n // For REST API view source link\n span.small.pull-right {\n float: right;\n }\n\n img {\n max-width: 100%;\n height: auto;\n }\n}\n\n.codewrapper {\n position: relative;\n}\n\n.sample-response .response-content {\n max-height: 200px;\n}\n\n@media (width <= 768px) {\n #mobile-indicator {\n display: block;\n }\n\n .mobile-hide {\n display: none;\n }\n\n /* workaround for #hashtag url is no longer needed */\n h1::before,\n h2::before,\n h3::before,\n h4::before {\n content: \"\";\n display: none;\n }\n}\n\n@media print {\n @page {\n margin: .4in;\n }\n}\n\n.pdftoc {\n ul {\n list-style: none;\n }\n\n a {\n display: flex;\n text-decoration: none;\n color: var(--bs-body-color);\n\n .spacer {\n flex: 1;\n border-bottom: 1px dashed var(--bs-body-color);\n margin: .4em;\n }\n }\n}\n", "/**\n * Licensed to the .NET Foundation under one or more agreements.\n * The .NET Foundation licenses this file to you under the MIT license.\n */\n\n@mixin adjust-icon {\n font-family: bootstrap-icons;\n position: relative;\n margin-right: 0.5em;\n top: 0.2em;\n font-size: 1.25em;\n font-weight: normal;\n }\n\n @mixin underline-on-hover {\n text-decoration: none;\n\n &:hover, &:focus {\n text-decoration: underline;\n }\n }\n", "@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n", ":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n", "// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n", "// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n", "// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`