omni-context-cli 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/agents/quest.md +1 -1
  2. package/dist/cli.js +7 -7
  3. package/dist/clients/extension.vsix +0 -0
  4. package/dist/clients/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  5. package/dist/clients/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  6. package/dist/clients/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  7. package/dist/clients/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  8. package/dist/clients/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  9. package/dist/clients/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  10. package/dist/clients/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  11. package/dist/clients/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  12. package/dist/clients/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  13. package/dist/clients/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  14. package/dist/clients/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  15. package/dist/clients/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  16. package/dist/clients/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  17. package/dist/clients/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  18. package/dist/clients/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  19. package/dist/clients/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  20. package/dist/clients/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  21. package/dist/clients/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  22. package/dist/clients/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  23. package/dist/clients/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  24. package/dist/clients/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  25. package/dist/clients/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  26. package/dist/clients/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  27. package/dist/clients/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  28. package/dist/clients/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  29. package/dist/clients/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  30. package/dist/clients/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  31. package/dist/clients/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  32. package/dist/clients/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  33. package/dist/clients/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  34. package/dist/clients/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  35. package/dist/clients/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  36. package/dist/clients/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  37. package/dist/clients/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  38. package/dist/clients/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  39. package/dist/clients/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  40. package/dist/clients/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  41. package/dist/clients/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  42. package/dist/clients/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  43. package/dist/clients/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  44. package/dist/clients/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  45. package/dist/clients/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  46. package/dist/clients/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  47. package/dist/clients/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  48. package/dist/clients/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  49. package/dist/clients/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  50. package/dist/clients/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  51. package/dist/clients/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  52. package/dist/clients/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  53. package/dist/clients/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  54. package/dist/clients/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  55. package/dist/clients/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  56. package/dist/clients/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  57. package/dist/clients/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  58. package/dist/clients/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  59. package/dist/clients/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  60. package/dist/clients/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  61. package/dist/clients/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/dist/clients/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  63. package/dist/clients/web/assets/_baseUniq-BFIaUHWF.js +1 -0
  64. package/dist/clients/web/assets/arc-CX4sIPz0.js +1 -0
  65. package/dist/clients/web/assets/architectureDiagram-VXUJARFQ-ClAz1TdR.js +1 -0
  66. package/dist/clients/web/assets/blockDiagram-VD42YOAC-cXvv5Xme.js +1 -0
  67. package/dist/clients/web/assets/c4Diagram-YG6GDRKO-CrEaxiOQ.js +1 -0
  68. package/dist/clients/web/assets/channel-WvpFzh0S.js +1 -0
  69. package/dist/clients/web/assets/chunk-4BX2VUAB-Xr5eQ2jr.js +1 -0
  70. package/dist/clients/web/assets/chunk-55IACEB6-BrPAEmD2.js +1 -0
  71. package/dist/clients/web/assets/chunk-B4BG7PRW-Cja4muSQ.js +1 -0
  72. package/dist/clients/web/assets/chunk-DI55MBZ5-CO44EGwl.js +1 -0
  73. package/dist/clients/web/assets/chunk-FMBD7UC4-DHQTSncN.js +1 -0
  74. package/dist/clients/web/assets/chunk-QN33PNHL-C_u6j8ll.js +1 -0
  75. package/dist/clients/web/assets/chunk-QZHKN3VN-Baz9sG4a.js +1 -0
  76. package/dist/clients/web/assets/chunk-TZMSLE5B-BlXDqp8M.js +1 -0
  77. package/dist/clients/web/assets/classDiagram-2ON5EDUG-BGhuL3vX.js +1 -0
  78. package/dist/clients/web/assets/classDiagram-v2-WZHVMYZB-BGhuL3vX.js +1 -0
  79. package/dist/clients/web/assets/clone-BrjahQ2T.js +1 -0
  80. package/dist/clients/web/assets/cose-bilkent-S5V4N54A-DZWAEoy6.js +1 -0
  81. package/dist/clients/web/assets/cytoscape.esm-Cw0kmstm.js +9 -0
  82. package/dist/clients/web/assets/dagre-6UL2VRFP-qiPMpj-s.js +1 -0
  83. package/dist/clients/web/assets/defaultLocale-DK_abR1s.js +1 -0
  84. package/dist/clients/web/assets/diagram-PSM6KHXK-e6unNrWN.js +1 -0
  85. package/dist/clients/web/assets/diagram-QEK2KX5R-DMbTtJpL.js +1 -0
  86. package/dist/clients/web/assets/diagram-S2PKOQOG-DJzyjWuo.js +1 -0
  87. package/dist/clients/web/assets/erDiagram-Q2GNP2WA-X-nh9pp7.js +1 -0
  88. package/dist/clients/web/assets/flowDiagram-NV44I4VS-Cfyd4KjH.js +1 -0
  89. package/dist/clients/web/assets/ganttDiagram-JELNMOA3-Qr2DTISc.js +1 -0
  90. package/dist/clients/web/assets/gitGraphDiagram-NY62KEGX-D7fkew24.js +1 -0
  91. package/dist/clients/web/assets/graph-DbcIVQWO.js +1 -0
  92. package/dist/clients/web/assets/index-PxdJoyNn.js +27 -0
  93. package/dist/clients/web/assets/index-_TATy_re.css +1 -0
  94. package/dist/clients/web/assets/infoDiagram-WHAUD3N6-CIhYDMFh.js +1 -0
  95. package/dist/clients/web/assets/init-C9Lo50Hz.js +1 -0
  96. package/dist/clients/web/assets/journeyDiagram-XKPGCS4Q-D31lU2HV.js +1 -0
  97. package/dist/clients/web/assets/kanban-definition-3W4ZIXB7-Dld77aF_.js +1 -0
  98. package/dist/clients/web/assets/layout-DFoNjwYU.js +1 -0
  99. package/dist/clients/web/assets/linear-DhSwIfiB.js +1 -0
  100. package/dist/clients/web/assets/min-C_FjB4Pz.js +1 -0
  101. package/dist/clients/web/assets/mindmap-definition-VGOIOE7T-BZ6YN87L.js +1 -0
  102. package/dist/clients/web/assets/ordinal-2upbOM02.js +1 -0
  103. package/dist/clients/web/assets/pieDiagram-ADFJNKIX-DFxN-730.js +1 -0
  104. package/dist/clients/web/assets/quadrantDiagram-AYHSOK5B-qmd91frX.js +1 -0
  105. package/dist/clients/web/assets/requirementDiagram-UZGBJVZJ-DXXq7RCX.js +1 -0
  106. package/dist/clients/web/assets/sankeyDiagram-TZEHDZUN-BlyT9ih9.js +1 -0
  107. package/dist/clients/web/assets/sequenceDiagram-WL72ISMW-B07J5kyu.js +1 -0
  108. package/dist/clients/web/assets/stateDiagram-FKZM4ZOC-YrX5yZ-e.js +1 -0
  109. package/dist/clients/web/assets/stateDiagram-v2-4FDKWEC3-DkYEm35t.js +1 -0
  110. package/dist/clients/web/assets/timeline-definition-IT6M3QCI-bMWx8q5z.js +1 -0
  111. package/dist/clients/web/assets/treemap-KMMF4GRG-B8jlkm1c.js +1 -0
  112. package/dist/clients/web/assets/xychartDiagram-PRI3JC2R-38DLhcVC.js +1 -0
  113. package/dist/clients/web/index.html +16 -0
  114. package/package.json +4 -2
@@ -0,0 +1,9 @@
1
+ function t(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=Array(n);r<n;r++)e[r]=t[r];return e}function n(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function r(t,n,r){return n&&function(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,u(e.key),e)}}(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function e(t,n){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=f(t))||n){r&&(t=r);var e=0,i=function(){};return{s:i,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return o=t.done,t},e:function(t){u=!0,a=t},f:function(){try{o||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,n,r){return(n=u(n))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function a(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var e,i,a,o,u=[],s=!0,f=!1;try{if(a=(r=r.call(t)).next,0===n){if(Object(r)!==r)return;s=!1}else for(;!(s=(e=a.call(r)).done)&&(u.push(e.value),u.length!==n);s=!0);}catch(c){f=!0,i=c}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(f)throw i}}return u}}(t,n)||f(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(n){return function(n){if(Array.isArray(n))return t(n)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||f(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t){var n=function(t,n){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,n);if("object"!=typeof e)return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof n?n:n+""}function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(n,r){if(n){if("string"==typeof n)return t(n,r);var e={}.toString.call(n).slice(8,-1);return"Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e?Array.from(n):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?t(n,r):void 0}}var c="undefined"==typeof window?null:window,l=c?c.navigator:null;c&&c.document;var v,h,d,g,p,y,m,b,x,w,k,M,B,C,A,T,E,S,z,P,O,N,R,F,I,D,L,j,q=s(""),_=s({}),V=s(function(){}),W="undefined"==typeof HTMLElement?"undefined":s(HTMLElement),$=function(t){return t&&t.instanceString&&Z(t.instanceString)?t.instanceString():null},K=function(t){return null!=t&&s(t)==q},Z=function(t){return null!=t&&s(t)===V},H=function(t){return!X(t)&&(Array.isArray?Array.isArray(t):null!=t&&t instanceof Array)},G=function(t){return null!=t&&s(t)===_&&!H(t)&&t.constructor===Object},U=function(t){return null!=t&&s(t)===s(1)&&!isNaN(t)},Y=function(t){return"undefined"===W?void 0:null!=t&&t instanceof HTMLElement},X=function(t){return Q(t)||J(t)},Q=function(t){return"collection"===$(t)&&t.t.single},J=function(t){return"collection"===$(t)&&!t.t.single},tt=function(t){return"core"===$(t)},nt=function(t){return"stylesheet"===$(t)},rt=function(t){return null==t||!(""!==t&&!t.match(/^\s+$/))},et=function(t){return function(t){return null!=t&&s(t)===_}(t)&&Z(t.then)},it=function(t,n){n||(n=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);return t.join("$")});var r=function(){var e,i=arguments,a=n.apply(this,i),o=r.cache;return(e=o[a])||(e=o[a]=t.apply(this,i)),e};return r.cache={},r},at=it(function(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}),ot=it(function(t){return t.replace(/(-\w)/g,function(t){return t[1].toUpperCase()})}),ut=it(function(t,n){return t+n[0].toUpperCase()+n.substring(1)},function(t,n){return t+"$"+n}),st=function(t){return rt(t)?t:t.charAt(0).toUpperCase()+t.substring(1)},ft=function(t,n){return t.slice(-1*n.length)===n},ct="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",lt="rgb[a]?\\(("+ct+"[%]?)\\s*,\\s*("+ct+"[%]?)\\s*,\\s*("+ct+"[%]?)(?:\\s*,\\s*("+ct+"))?\\)",vt="rgb[a]?\\((?:"+ct+"[%]?)\\s*,\\s*(?:"+ct+"[%]?)\\s*,\\s*(?:"+ct+"[%]?)(?:\\s*,\\s*(?:"+ct+"))?\\)",ht="hsl[a]?\\(("+ct+")\\s*,\\s*("+ct+"[%])\\s*,\\s*("+ct+"[%])(?:\\s*,\\s*("+ct+"))?\\)",dt="hsl[a]?\\((?:"+ct+")\\s*,\\s*(?:"+ct+"[%])\\s*,\\s*(?:"+ct+"[%])(?:\\s*,\\s*(?:"+ct+"))?\\)",gt=function(t,n){return t<n?-1:t>n?1:0},pt=null!=Object.assign?Object.assign.bind(Object):function(t){for(var n=arguments,r=1;r<n.length;r++){var e=n[r];if(null!=e)for(var i=Object.keys(e),a=0;a<i.length;a++){var o=i[a];t[o]=e[o]}}return t},yt=function(t){return(H(t)?t:null)||function(t){return mt[t.toLowerCase()]}(t)||function(t){if((4===t.length||7===t.length)&&"#"===t[0]){var n,r,e,i=16;return 4===t.length?(n=parseInt(t[1]+t[1],i),r=parseInt(t[2]+t[2],i),e=parseInt(t[3]+t[3],i)):(n=parseInt(t[1]+t[2],i),r=parseInt(t[3]+t[4],i),e=parseInt(t[5]+t[6],i)),[n,r,e]}}(t)||function(t){var n,r=new RegExp("^"+lt+"$").exec(t);if(r){n=[];for(var e=[],i=1;i<=3;i++){var a=r[i];if("%"===a[a.length-1]&&(e[i]=!0),a=parseFloat(a),e[i]&&(a=a/100*255),a<0||a>255)return;n.push(Math.floor(a))}var o=e[1]||e[2]||e[3],u=e[1]&&e[2]&&e[3];if(o&&!u)return;var s=r[4];if(void 0!==s){if((s=parseFloat(s))<0||s>1)return;n.push(s)}}return n}(t)||function(t){var n,r,e,i,a,o,u,s;function f(t,n,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(n-t)*r:r<.5?n:r<2/3?t+(n-t)*(2/3-r)*6:t}var c=new RegExp("^"+ht+"$").exec(t);if(c){if((r=parseInt(c[1]))<0?r=(360- -1*r%360)%360:r>360&&(r%=360),r/=360,(e=parseFloat(c[2]))<0||e>100)return;if(e/=100,(i=parseFloat(c[3]))<0||i>100)return;if(i/=100,void 0!==(a=c[4])&&((a=parseFloat(a))<0||a>1))return;if(0===e)o=u=s=Math.round(255*i);else{var l=i<.5?i*(1+e):i+e-i*e,v=2*i-l;o=Math.round(255*f(v,l,r+1/3)),u=Math.round(255*f(v,l,r)),s=Math.round(255*f(v,l,r-1/3))}n=[o,u,s,a]}return n}(t)},mt={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},bt=function(t){for(var n=t.map,r=t.keys,e=r.length,i=0;i<e;i++){var a=r[i];if(G(a))throw Error("Tried to set map with object key");i<r.length-1?(null==n[a]&&(n[a]={}),n=n[a]):n[a]=t.value}},xt=function(t){for(var n=t.map,r=t.keys,e=r.length,i=0;i<e;i++){var a=r[i];if(G(a))throw Error("Tried to get map with object key");if(null==(n=n[a]))return n}return n},wt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function kt(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Mt(){if(h)return v;return h=1,v=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}}function Bt(){if(y)return p;y=1;var t=function(){if(g)return d;g=1;var t="object"==typeof wt&&wt&&wt.Object===Object&&wt;return d=t}(),n="object"==typeof self&&self&&self.Object===Object&&self,r=t||n||Function("return this")();return p=r}function Ct(){if(M)return k;M=1;var t=function(){if(w)return x;w=1;var t=/\s/;return x=function(n){for(var r=n.length;r--&&t.test(n.charAt(r)););return r}}(),n=/^\s+/;return k=function(r){return r?r.slice(0,t(r)+1).replace(n,""):r}}function At(){if(C)return B;C=1;var t=Bt().Symbol;return B=t}function Tt(){if(P)return z;P=1;var t=At(),n=function(){if(T)return A;T=1;var t=At(),n=Object.prototype,r=n.hasOwnProperty,e=n.toString,i=t?t.toStringTag:void 0;return A=function(t){var n=r.call(t,i),a=t[i];try{t[i]=void 0;var o=!0}catch(s){}var u=e.call(t);return o&&(n?t[i]=a:delete t[i]),u}}(),r=function(){if(S)return E;S=1;var t=Object.prototype.toString;return E=function(n){return t.call(n)}}(),e=t?t.toStringTag:void 0;return z=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":e&&e in Object(t)?n(t):r(t)}}function Et(){if(F)return R;F=1;var t=Tt(),n=N?O:(N=1,O=function(t){return null!=t&&"object"==typeof t});return R=function(r){return"symbol"==typeof r||n(r)&&"[object Symbol]"==t(r)}}var St=kt(function(){if(j)return L;j=1;var t=Mt(),n=function(){if(b)return m;b=1;var t=Bt();return m=function(){return t.Date.now()}}(),r=function(){if(D)return I;D=1;var t=Ct(),n=Mt(),r=Et(),e=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,a=/^0o[0-7]+$/i,o=parseInt;return I=function(u){if("number"==typeof u)return u;if(r(u))return NaN;if(n(u)){var s="function"==typeof u.valueOf?u.valueOf():u;u=n(s)?s+"":s}if("string"!=typeof u)return 0===u?u:+u;u=t(u);var f=i.test(u);return f||a.test(u)?o(u.slice(2),f?2:8):e.test(u)?NaN:+u}}(),e=Math.max,i=Math.min;return L=function(a,o,u){var s,f,c,l,v,h,d=0,g=!1,p=!1,y=!0;if("function"!=typeof a)throw new TypeError("Expected a function");function m(t){var n=s,r=f;return s=f=void 0,d=t,l=a.apply(r,n)}function b(t){var n=t-h;return void 0===h||n>=o||n<0||p&&t-d>=c}function x(){var t=n();if(b(t))return w(t);v=setTimeout(x,function(t){var n=o-(t-h);return p?i(n,c-(t-d)):n}(t))}function w(t){return v=void 0,y&&s?m(t):(s=f=void 0,l)}function k(){var t=n(),r=b(t);if(s=arguments,f=this,h=t,r){if(void 0===v)return function(t){return d=t,v=setTimeout(x,o),g?m(t):l}(h);if(p)return clearTimeout(v),v=setTimeout(x,o),m(h)}return void 0===v&&(v=setTimeout(x,o)),l}return o=r(o)||0,t(u)&&(g=!!u.leading,c=(p="maxWait"in u)?e(r(u.maxWait)||0,o):c,y="trailing"in u?!!u.trailing:y),k.cancel=function(){void 0!==v&&clearTimeout(v),d=0,s=h=f=v=void 0},k.flush=function(){return void 0===v?l:w(n())},k}}()),zt=c?c.performance:null,Pt=zt&&zt.now?function(){return zt.now()}:function(){return Date.now()},Ot=function(){if(c){if(c.requestAnimationFrame)return function(t){c.requestAnimationFrame(t)};if(c.mozRequestAnimationFrame)return function(t){c.mozRequestAnimationFrame(t)};if(c.webkitRequestAnimationFrame)return function(t){c.webkitRequestAnimationFrame(t)};if(c.msRequestAnimationFrame)return function(t){c.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(Pt())},1e3/60)}}(),Nt=function(t){return Ot(t)},Rt=Pt,Ft=9261,It=5381,Dt=function(t){for(var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ft;!(n=t.next()).done;)r=65599*r+n.value|0;return r},Lt=function(t){return 65599*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ft)+t|0},jt=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:It;return(n<<5)+n+t|0},qt=function(t){return 2097152*t[0]+t[1]},_t=function(t,n){return[Lt(t[0],n[0]),jt(t[1],n[1])]},Vt=function(t,n){var r={value:0,done:!1},e=0,i=t.length;return Dt({next:function(){return e<i?r.value=t[e++]:r.done=!0,r}},n)},Wt=function(t,n){var r={value:0,done:!1},e=0,i=t.length;return Dt({next:function(){return e<i?r.value=t.charCodeAt(e++):r.done=!0,r}},n)},$t=function(){return Kt(arguments)},Kt=function(t){for(var n,r=0;r<t.length;r++){var e=t[r];n=0===r?Wt(e):Wt(e,n)}return n};function Zt(t,n,r){if(0===r)return t;var e=(n.x1+n.x2)/2,i=(n.y1+n.y2)/2,a=n.w/n.h,o=1/a,u=function(t,n,r,e,i){var a=i*Math.PI/180;return{x:Math.cos(a)*(t-r)-Math.sin(a)*(n-e)+r,y:Math.sin(a)*(t-r)+Math.cos(a)*(n-e)+e}}(t.x,t.y,e,i,r),s=function(t,n,r,e,i,a){return{x:(t-r)*i+r,y:(n-e)*a+e}}(u.x,u.y,e,i,a,o);return{x:s.x,y:s.y}}var Ht=!0,Gt=null!=console.warn,Ut=null!=console.trace,Yt=Number.MAX_SAFE_INTEGER||9007199254740991,Xt=function(){return!0},Qt=function(){return!1},Jt=function(){return 0},tn=function(){},nn=function(t){throw new Error(t)},rn=function(t){if(void 0===t)return Ht;Ht=!!t},en=function(t){rn()&&(Gt?console.warn(t):(console.log(t),Ut&&console.trace()))},an=function(t){return null==t?t:H(t)?t.slice():G(t)?function(t){return pt({},t)}(t):t},on=function(t,n){for(n=t="";t++<36;n+=51*t&52?(15^t?8^Math.random()*(20^t?16:4):4).toString(16):"-");return n},un={},sn=function(){return un},fn=function(t){var n=Object.keys(t);return function(r){for(var e={},i=0;i<n.length;i++){var a=n[i],o=null==r?void 0:r[a];e[a]=void 0===o?t[a]:o}return e}},cn=function(t,n,r){for(var e=t.length-1;e>=0;e--)t[e]===n&&t.splice(e,1)},ln=function(t){t.splice(0,t.length)},vn=function(t,n,r){return r&&(n=ut(r,n)),t[n]},hn=function(t,n,r,e){r&&(n=ut(r,n)),t[n]=e},dn="undefined"!=typeof Map?Map:function(){return r(function t(){n(this,t),this._obj={}},[{key:"set",value:function(t,n){return this._obj[t]=n,this}},{key:"delete",value:function(t){return this._obj[t]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(t){return void 0!==this._obj[t]}},{key:"get",value:function(t){return this._obj[t]}}])}(),gn=function(){return r(function t(r){if(n(this,t),this._obj=Object.create(null),this.size=0,null!=r){var e;e=null!=r.instanceString&&r.instanceString()===this.instanceString()?r.toArray():r;for(var i=0;i<e.length;i++)this.add(e[i])}},[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(t){var n=this._obj;1!==n[t]&&(n[t]=1,this.size++)}},{key:"delete",value:function(t){var n=this._obj;1===n[t]&&(n[t]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(t){return 1===this._obj[t]}},{key:"toArray",value:function(){var t=this;return Object.keys(this._obj).filter(function(n){return t.has(n)})}},{key:"forEach",value:function(t,n){return this.toArray().forEach(t,n)}}])}(),pn="undefined"!==("undefined"==typeof Set?"undefined":s(Set))?Set:gn,yn=function(t,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==t&&void 0!==n&&tt(t)){var e=n.group;if(null==e&&(e=n.data&&null!=n.data.source&&null!=n.data.target?"edges":"nodes"),"nodes"===e||"edges"===e){this.length=1,this[0]=this;var i=this.t={cy:t,single:!0,data:n.data||{},position:n.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:e,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!n.selected,selectable:void 0===n.selectable||!!n.selectable,locked:!!n.locked,grabbed:!1,grabbable:void 0===n.grabbable||!!n.grabbable,pannable:void 0===n.pannable?"edges"===e:!!n.pannable,active:!1,classes:new pn,animation:{current:[],queue:[]},rscratch:{},scratch:n.scratch||{},edges:[],children:[],parent:n.parent&&n.parent.isNode()?n.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),n.renderedPosition){var a=n.renderedPosition,o=t.pan(),u=t.zoom();i.position={x:(a.x-o.x)/u,y:(a.y-o.y)/u}}var s=[];H(n.classes)?s=n.classes:K(n.classes)&&(s=n.classes.split(/\s+/));for(var f=0,c=s.length;f<c;f++){var l=s[f];l&&""!==l&&i.classes.add(l)}this.createEmitter(),(void 0===r||r)&&this.restore();var v=n.style||n.css;v&&(en("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(v))}else nn("An element must be of type `nodes` or `edges`; you specified `"+e+"`")}else nn("An element must have a core reference and parameters set")},mn=function(t){return t={bfs:t.bfs||!t.dfs,dfs:t.dfs||!t.bfs},function(n,r,e){var i;G(n)&&!X(n)&&(n=(i=n).roots||i.root,r=i.visit,e=i.directed),e=2!==arguments.length||Z(r)?e:r,r=Z(r)?r:function(){};for(var a,o=this.t.cy,u=n=K(n)?this.filter(n):n,s=[],f=[],c={},l={},v={},h=0,d=this.byGroup(),g=d.nodes,p=d.edges,y=0;y<u.length;y++){var m=u[y],b=m.id();m.isNode()&&(s.unshift(m),t.bfs&&(v[b]=!0,f.push(m)),l[b]=0)}for(var x,w=function(){var n=t.bfs?s.shift():s.pop(),i=n.id();if(t.dfs){if(v[i])return 0;v[i]=!0,f.push(n)}var o,u=l[i],d=c[i],y=null!=d?d.source():null,m=null!=d?d.target():null,b=null==d?void 0:n.same(y)?m[0]:y[0];if(!0===(o=r(n,d,b,h++,u)))return a=n,1;if(!1===o)return 1;for(var x=n.connectedEdges().filter(function(t){return(!e||t.source().same(n))&&p.has(t)}),w=0;w<x.length;w++){var k=x[w],M=k.connectedNodes().filter(function(t){return!t.same(n)&&g.has(t)}),B=M.id();0===M.length||v[B]||(M=M[0],s.push(M),t.bfs&&(v[B]=!0,f.push(M)),c[B]=k,l[B]=l[i]+1)}};0!==s.length&&(0===(x=w())||1!==x););for(var k=o.collection(),M=0;M<f.length;M++){var B=f[M],C=c[B.id()];null!=C&&k.push(C),k.push(B)}return{path:o.collection(k),found:o.collection(a)}}},bn={breadthFirstSearch:mn({bfs:!0}),depthFirstSearch:mn({dfs:!0})};bn.bfs=bn.breadthFirstSearch,bn.dfs=bn.depthFirstSearch;var xn,wn,kn,Mn={exports:{}},Bn=Mn.exports;function Cn(){return xn||(xn=1,t=Mn,function(){var n,r,e,i,a,o,u,s,f,c,l,v,h,d,g;e=Math.floor,c=Math.min,r=function(t,n){return t<n?-1:t>n?1:0},f=function(t,n,i,a,o){var u;if(null==i&&(i=0),null==o&&(o=r),i<0)throw new Error("lo must be non-negative");for(null==a&&(a=t.length);i<a;)o(n,t[u=e((i+a)/2)])<0?a=u:i=u+1;return[].splice.apply(t,[i,i-i].concat(n)),n},o=function(t,n,e){return null==e&&(e=r),t.push(n),d(t,0,t.length-1,e)},a=function(t,n){var e,i;return null==n&&(n=r),e=t.pop(),t.length?(i=t[0],t[0]=e,g(t,0,n)):i=e,i},s=function(t,n,e){var i;return null==e&&(e=r),i=t[0],t[0]=n,g(t,0,e),i},u=function(t,n,e){var i;return null==e&&(e=r),t.length&&e(t[0],n)<0&&(n=(i=[t[0],n])[0],t[0]=i[1],g(t,0,e)),n},i=function(t,n){var i,a,o,u,s,f;for(null==n&&(n=r),s=[],a=0,o=(u=function(){f=[];for(var n=0,r=e(t.length/2);0<=r?n<r:n>r;0<=r?n++:n--)f.push(n);return f}.apply(this).reverse()).length;a<o;a++)i=u[a],s.push(g(t,i,n));return s},h=function(t,n,e){var i;if(null==e&&(e=r),-1!==(i=t.indexOf(n)))return d(t,0,i,e),g(t,i,e)},l=function(t,n,e){var a,o,s,f,c;if(null==e&&(e=r),!(o=t.slice(0,n)).length)return o;for(i(o,e),s=0,f=(c=t.slice(n)).length;s<f;s++)a=c[s],u(o,a,e);return o.sort(e).reverse()},v=function(t,n,e){var o,u,s,l,v,h,d,g,p;if(null==e&&(e=r),10*n<=t.length){if(!(s=t.slice(0,n).sort(e)).length)return s;for(u=s[s.length-1],l=0,h=(d=t.slice(n)).length;l<h;l++)e(o=d[l],u)<0&&(f(s,o,0,null,e),s.pop(),u=s[s.length-1]);return s}for(i(t,e),p=[],v=0,g=c(n,t.length);0<=g?v<g:v>g;0<=g?++v:--v)p.push(a(t,e));return p},d=function(t,n,e,i){var a,o,u;for(null==i&&(i=r),a=t[e];e>n&&i(a,o=t[u=e-1>>1])<0;)t[e]=o,e=u;return t[e]=a},g=function(t,n,e){var i,a,o,u,s;for(null==e&&(e=r),a=t.length,s=n,o=t[n],i=2*n+1;i<a;)(u=i+1)<a&&!(e(t[i],t[u])<0)&&(i=u),t[n]=t[i],i=2*(n=i)+1;return t[n]=o,d(t,s,n,e)},n=function(){function t(t){this.cmp=null!=t?t:r,this.nodes=[]}return t.push=o,t.pop=a,t.replace=s,t.pushpop=u,t.heapify=i,t.updateItem=h,t.nlargest=l,t.nsmallest=v,t.prototype.push=function(t){return o(this.nodes,t,this.cmp)},t.prototype.pop=function(){return a(this.nodes,this.cmp)},t.prototype.peek=function(){return this.nodes[0]},t.prototype.contains=function(t){return-1!==this.nodes.indexOf(t)},t.prototype.replace=function(t){return s(this.nodes,t,this.cmp)},t.prototype.pushpop=function(t){return u(this.nodes,t,this.cmp)},t.prototype.heapify=function(){return i(this.nodes,this.cmp)},t.prototype.updateItem=function(t){return h(this.nodes,t,this.cmp)},t.prototype.clear=function(){return this.nodes=[]},t.prototype.empty=function(){return 0===this.nodes.length},t.prototype.size=function(){return this.nodes.length},t.prototype.clone=function(){var n;return(n=new t).nodes=this.nodes.slice(0),n},t.prototype.toArray=function(){return this.nodes.slice(0)},t.prototype.insert=t.prototype.push,t.prototype.top=t.prototype.peek,t.prototype.front=t.prototype.peek,t.prototype.has=t.prototype.contains,t.prototype.copy=t.prototype.clone,t}(),t.exports=n}.call(Bn)),Mn.exports;var t}var An,Tn=kt(kn?wn:(kn=1,wn=Cn())),En=fn({root:null,weight:function(t){return 1},directed:!1}),Sn={dijkstra:function(t){if(!G(t)){var n=arguments;t={root:n[0],weight:n[1],directed:n[2]}}var r=En(t),e=r.root,i=r.weight,a=r.directed,o=this,u=i,s=K(e)?this.filter(e)[0]:e[0],f={},c={},l={},v=this.byGroup(),h=v.nodes,d=v.edges;d.unmergeBy(function(t){return t.isLoop()});for(var g=function(t){return f[t.id()]},p=function(t,n){f[t.id()]=n,y.updateItem(t)},y=new Tn(function(t,n){return g(t)-g(n)}),m=0;m<h.length;m++){var b=h[m];f[b.id()]=b.same(s)?0:1/0,y.push(b)}for(var x=function(t,n){for(var r,e=(a?t.edgesTo(n):t.edgesWith(n)).intersect(d),i=1/0,o=0;o<e.length;o++){var s=e[o],f=u(s);(f<i||!r)&&(i=f,r=s)}return{edge:r,dist:i}};y.size()>0;){var w=y.pop(),k=g(w),M=w.id();if(l[M]=k,k!==1/0)for(var B=w.neighborhood().intersect(h),C=0;C<B.length;C++){var A=B[C],T=A.id(),E=x(w,A),S=k+E.dist;S<g(A)&&(p(A,S),c[T]={node:w,edge:E.edge})}}return{distanceTo:function(t){var n=K(t)?h.filter(t)[0]:t[0];return l[n.id()]},pathTo:function(t){var n=K(t)?h.filter(t)[0]:t[0],r=[],e=n,i=e.id();if(n.length>0)for(r.unshift(n);c[i];){var a=c[i];r.unshift(a.edge),r.unshift(a.node),i=(e=a.node).id()}return o.spawn(r)}}}},zn={kruskal:function(t){t=t||function(t){return 1};for(var n=this.byGroup(),r=n.nodes,e=n.edges,i=r.length,a=new Array(i),o=r,u=function(t){for(var n=0;n<a.length;n++){if(a[n].has(t))return n}},s=0;s<i;s++)a[s]=this.spawn(r[s]);for(var f=e.sort(function(n,r){return t(n)-t(r)}),c=0;c<f.length;c++){var l=f[c],v=l.source()[0],h=l.target()[0],d=u(v),g=u(h),p=a[d],y=a[g];d!==g&&(o.merge(l),p.merge(y),a.splice(g,1))}return o}},Pn=fn({root:null,goal:null,weight:function(t){return 1},heuristic:function(t){return 0},directed:!1}),On={aStar:function(t){var n=this.cy(),r=Pn(t),e=r.root,i=r.goal,a=r.heuristic,o=r.directed,u=r.weight;e=n.collection(e)[0],i=n.collection(i)[0];var s,f,c=e.id(),l=i.id(),v={},h={},d={},g=new Tn(function(t,n){return h[t.id()]-h[n.id()]}),p=new pn,y={},m={},b=function(t,n){g.push(t),p.add(n)},x=function(){s=g.pop(),f=s.id(),p.delete(f)},w=function(t){return p.has(t)};b(e,c),v[c]=0,h[c]=a(e);for(var k=0;g.size()>0;){if(x(),k++,f===l){for(var M=[],B=i,C=l,A=m[C];M.unshift(B),null!=A&&M.unshift(A),null!=(B=y[C]);)A=m[C=B.id()];return{found:!0,distance:v[f],path:this.spawn(M),steps:k}}d[f]=!0;for(var T=s.t.edges,E=0;E<T.length;E++){var S=T[E];if(this.hasElementWithId(S.id())&&(!o||S.data("source")===f)){var z=S.source(),P=S.target(),O=z.id()!==f?z:P,N=O.id();if(this.hasElementWithId(N)&&!d[N]){var R=v[f]+u(S);w(N)?R<v[N]&&(v[N]=R,h[N]=R+a(O),y[N]=s,m[N]=S):(v[N]=R,h[N]=R+a(O),b(O,N),y[N]=s,m[N]=S)}}}}return{found:!1,distance:void 0,path:void 0,steps:k}}},Nn=fn({weight:function(t){return 1},directed:!1}),Rn={floydWarshall:function(t){for(var n=this.cy(),r=Nn(t),e=r.weight,i=r.directed,a=e,o=this.byGroup(),u=o.nodes,s=o.edges,f=u.length,c=f*f,l=function(t){return u.indexOf(t)},v=function(t){return u[t]},h=new Array(c),d=0;d<c;d++){var g=d%f,p=(d-g)/f;h[d]=p===g?0:1/0}for(var y=new Array(c),m=new Array(c),b=0;b<s.length;b++){var x=s[b],w=x.source()[0],k=x.target()[0];if(w!==k){var M=l(w),B=l(k),C=M*f+B,A=a(x);if(h[C]>A&&(h[C]=A,y[C]=B,m[C]=x),!i){var T=B*f+M;!i&&h[T]>A&&(h[T]=A,y[T]=M,m[T]=x)}}}for(var E=0;E<f;E++)for(var S=0;S<f;S++)for(var z=S*f+E,P=0;P<f;P++){var O=S*f+P,N=E*f+P;h[z]+h[N]<h[O]&&(h[O]=h[z]+h[N],y[O]=y[z])}var R=function(t){return l(function(t){return(K(t)?n.filter(t):t)[0]}(t))};return{distance:function(t,n){var r=R(t),e=R(n);return h[r*f+e]},path:function(t,r){var e=R(t),i=R(r),a=v(e);if(e===i)return a.collection();if(null==y[e*f+i])return n.collection();var o,u=n.collection(),s=e;for(u.merge(a);e!==i;)s=e,e=y[e*f+i],o=m[s*f+e],u.merge(o),u.merge(v(e));return u}}}},Fn=fn({weight:function(t){return 1},directed:!1,root:null}),In={bellmanFord:function(t){var n=this,r=Fn(t),e=r.weight,i=r.directed,a=r.root,o=e,u=this,s=this.cy(),f=this.byGroup(),c=f.edges,l=f.nodes,v=l.length,h=new dn,d=!1,g=[];a=s.collection(a)[0],c.unmergeBy(function(t){return t.isLoop()});for(var p=c.length,y=function(t){var n=h.get(t.id());return n||(n={},h.set(t.id(),n)),n},m=function(t){return(K(t)?s.$(t):t)[0]},b=0;b<v;b++){var x=l[b],w=y(x);x.same(a)?w.dist=0:w.dist=1/0,w.pred=null,w.edge=null}for(var k=!1,M=function(t,n,r,e,i,a){var o=e.dist+a;o<i.dist&&!r.same(e.edge)&&(i.dist=o,i.pred=t,i.edge=r,k=!0)},B=1;B<v;B++){k=!1;for(var C=0;C<p;C++){var A=c[C],T=A.source(),E=A.target(),S=o(A),z=y(T),P=y(E);M(T,0,A,z,P,S),i||M(E,0,A,P,z,S)}if(!k)break}if(k)for(var O=[],N=0;N<p;N++){var R=c[N],F=R.source(),I=R.target(),D=o(R),L=y(F).dist,j=y(I).dist;if(L+D<j||!i&&j+D<L){if(d||(en("Graph contains a negative weight cycle for Bellman-Ford"),d=!0),!1===t.findNegativeWeightCycles)break;var q=[];L+D<j&&q.push(F),!i&&j+D<L&&q.push(I);for(var _=q.length,V=0;V<_;V++){var W=q[V],$=[W];$.push(y(W).edge);for(var Z=y(W).pred;-1===$.indexOf(Z);)$.push(Z),$.push(y(Z).edge),Z=y(Z).pred;for(var H=($=$.slice($.indexOf(Z)))[0].id(),G=0,U=2;U<$.length;U+=2)$[U].id()<H&&(H=$[U].id(),G=U);($=$.slice(G).concat($.slice(0,G))).push($[0]);var Y=$.map(function(t){return t.id()}).join(",");-1===O.indexOf(Y)&&(g.push(u.spawn($)),O.push(Y))}}}return{distanceTo:function(t){return y(m(t)).dist},pathTo:function(t){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,e=[],i=m(t);;){if(null==i)return n.spawn();var o=y(i),s=o.edge,f=o.pred;if(e.unshift(i[0]),i.same(r)&&e.length>0)break;null!=s&&e.unshift(s),i=f}return u.spawn(e)},hasNegativeWeightCycle:d,negativeWeightCycles:g}}},Dn=Math.sqrt(2),Ln=function(t,n,r){0===r.length&&nn("Karger-Stein must be run on a connected (sub)graph");for(var e=r[t],i=e[1],a=e[2],o=n[i],u=n[a],s=r,f=s.length-1;f>=0;f--){var c=s[f],l=c[1],v=c[2];(n[l]===o&&n[v]===u||n[l]===u&&n[v]===o)&&s.splice(f,1)}for(var h=0;h<s.length;h++){var d=s[h];d[1]===u?(s[h]=d.slice(),s[h][1]=o):d[2]===u&&(s[h]=d.slice(),s[h][2]=o)}for(var g=0;g<n.length;g++)n[g]===u&&(n[g]=o);return s},jn=function(t,n,r,e){for(;r>e;){var i=Math.floor(Math.random()*n.length);n=Ln(i,t,n),r--}return n},qn={kargerStein:function(){var t=this,n=this.byGroup(),r=n.nodes,e=n.edges;e.unmergeBy(function(t){return t.isLoop()});var i=r.length,a=e.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),u=Math.floor(i/Dn);if(!(i<2)){for(var s=[],f=0;f<a;f++){var c=e[f];s.push([f,r.indexOf(c.source()),r.indexOf(c.target())])}for(var l=1/0,v=[],h=new Array(i),d=new Array(i),g=new Array(i),p=function(t,n){for(var r=0;r<i;r++)n[r]=t[r]},y=0;y<=o;y++){for(var m=0;m<i;m++)d[m]=m;var b=jn(d,s.slice(),i,u),x=b.slice();p(d,g);var w=jn(d,b,u,2),k=jn(g,x,u,2);w.length<=k.length&&w.length<l?(l=w.length,v=w,p(d,h)):k.length<=w.length&&k.length<l&&(l=k.length,v=k,p(g,h))}for(var M=this.spawn(v.map(function(t){return e[t[0]]})),B=this.spawn(),C=this.spawn(),A=h[0],T=0;T<h.length;T++){var E=h[T],S=r[T];E===A?B.merge(S):C.merge(S)}var z=function(n){var r=t.spawn();return n.forEach(function(n){r.merge(n),n.connectedEdges().forEach(function(n){t.contains(n)&&!M.contains(n)&&r.merge(n)})}),r},P=[z(B),z(C)];return{cut:M,components:P,partition1:B,partition2:C}}nn("At least 2 nodes are required for Karger-Stein algorithm")}},_n=function(t,n,r){return{x:t.x*n+r.x,y:t.y*n+r.y}},Vn=function(t,n,r){return{x:(t.x-r.x)/n,y:(t.y-r.y)/n}},Wn=function(t){return{x:t[0],y:t[1]}},$n=function(t,n){return Math.atan2(n,t)-Math.PI/2},Kn=Math.log2||function(t){return Math.log(t)/Math.log(2)},Zn=function(t){return t>0?1:t<0?-1:0},Hn=function(t,n){return Math.sqrt(Gn(t,n))},Gn=function(t,n){var r=n.x-t.x,e=n.y-t.y;return r*r+e*e},Un=function(t){for(var n=t.length,r=0,e=0;e<n;e++)r+=t[e];for(var i=0;i<n;i++)t[i]=t[i]/r;return t},Yn=function(t,n,r,e){return(1-e)*(1-e)*t+2*(1-e)*e*n+e*e*r},Xn=function(t,n,r,e){return{x:Yn(t.x,n.x,r.x,e),y:Yn(t.y,n.y,r.y,e)}},Qn=function(t,n,r){return Math.max(t,Math.min(r,n))},Jn=function(t){if(null==t)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=t.x1&&null!=t.y1){if(null!=t.x2&&null!=t.y2&&t.x2>=t.x1&&t.y2>=t.y1)return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1};if(null!=t.w&&null!=t.h&&t.w>=0&&t.h>=0)return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}},tr=function(t,n){t.x1=Math.min(t.x1,n.x1),t.x2=Math.max(t.x2,n.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,n.y1),t.y2=Math.max(t.y2,n.y2),t.h=t.y2-t.y1},nr=function(t,n,r){t.x1=Math.min(t.x1,n),t.x2=Math.max(t.x2,n),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,r),t.y2=Math.max(t.y2,r),t.h=t.y2-t.y1},rr=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.x1-=n,t.x2+=n,t.y1-=n,t.y2+=n,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},er=function(t){var n,r,e,i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===o.length)n=r=e=i=o[0];else if(2===o.length)n=e=o[0],i=r=o[1];else if(4===o.length){var u=a(o,4);n=u[0],r=u[1],e=u[2],i=u[3]}return t.x1-=i,t.x2+=r,t.y1-=n,t.y2+=e,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},ir=function(t,n){t.x1=n.x1,t.y1=n.y1,t.x2=n.x2,t.y2=n.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1},ar=function(t,n){return!(t.x1>n.x2)&&(!(n.x1>t.x2)&&(!(t.x2<n.x1)&&(!(n.x2<t.x1)&&(!(t.y2<n.y1)&&(!(n.y2<t.y1)&&(!(t.y1>n.y2)&&!(n.y1>t.y2)))))))},or=function(t,n,r){return t.x1<=n&&n<=t.x2&&t.y1<=r&&r<=t.y2},ur=function(t,n){return or(t,n.x,n.y)},sr=function(t,n){return or(t,n.x1,n.y1)&&or(t,n.x2,n.y2)},fr=null!==(An=Math.hypot)&&void 0!==An?An:function(t,n){return Math.sqrt(t*t+n*n)};function cr(t,n,r,e,i,a){var o=function(t,n){if(t.length<3)throw new Error("Need at least 3 vertices");var r=function(t,n){return{x:t.x+n.x,y:t.y+n.y}},e=function(t,n){return{x:t.x-n.x,y:t.y-n.y}},i=function(t,n){return{x:t.x*n,y:t.y*n}},a=function(t,n){return t.x*n.y-t.y*n.x},o=function(t){var n=fr(t.x,t.y);return 0===n?{x:0,y:0}:{x:t.x/n,y:t.y/n}},u=function(t,n,o,u){var s=e(n,t),f=e(u,o),c=a(s,f);if(Math.abs(c)<1e-9)return r(t,i(s,.5));var l=a(e(o,t),f)/c;return r(t,i(s,l))},s=t.map(function(t){return{x:t.x,y:t.y}});(function(t){for(var n=0,r=0;r<t.length;r++){var e=t[r],i=t[(r+1)%t.length];n+=e.x*i.y-i.x*e.y}return n/2})(s)<0&&s.reverse();for(var f=s.length,c=[],l=0;l<f;l++){var v=s[l],h=s[(l+1)%f],d=e(h,v),g=o({x:d.y,y:-d.x});c.push(g)}for(var p=c.map(function(t,e){return{p1:r(s[e],i(t,n)),p2:r(s[(e+1)%f],i(t,n))}}),y=[],m=0;m<f;m++){var b=p[(m-1+f)%f],x=p[m],w=u(b.p1,b.p2,x.p1,x.p2);y.push(w)}return y}(Br(t,n,r,e,i),a),u=Jn();return o.forEach(function(t){return nr(u,t.x,t.y)}),u}var lr=function(t,n,r,e,i,a,o){var u,s,f=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===f?zr(i,a):f,l=i/2,v=a/2,h=(c=Math.min(c,l,v))!==l,d=c!==v;if(h){var g=e-v-o;if((u=Mr(t,n,r,e,r-l+c-o,g,r+l-c+o,g,!1)).length>0)return u}if(d){var p=r+l+o;if((u=Mr(t,n,r,e,p,e-v+c-o,p,e+v-c+o,!1)).length>0)return u}if(h){var y=e+v+o;if((u=Mr(t,n,r,e,r-l+c-o,y,r+l-c+o,y,!1)).length>0)return u}if(d){var m=r-l-o;if((u=Mr(t,n,r,e,m,e-v+c-o,m,e+v-c+o,!1)).length>0)return u}var b=r-l+c,x=e-v+c;if((s=wr(t,n,r,e,b,x,c+o)).length>0&&s[0]<=b&&s[1]<=x)return[s[0],s[1]];var w=r+l-c,k=e-v+c;if((s=wr(t,n,r,e,w,k,c+o)).length>0&&s[0]>=w&&s[1]<=k)return[s[0],s[1]];var M=r+l-c,B=e+v-c;if((s=wr(t,n,r,e,M,B,c+o)).length>0&&s[0]>=M&&s[1]>=B)return[s[0],s[1]];var C=r-l+c,A=e+v-c;return(s=wr(t,n,r,e,C,A,c+o)).length>0&&s[0]<=C&&s[1]>=A?[s[0],s[1]]:[]},vr=function(t,n,r,e,i,a,o){var u=o,s=Math.min(r,i),f=Math.max(r,i),c=Math.min(e,a),l=Math.max(e,a);return s-u<=t&&t<=f+u&&c-u<=n&&n<=l+u},hr=function(t,n,r,e,i,a,o,u,s){var f=Math.min(r,o,i)-s,c=Math.max(r,o,i)+s,l=Math.min(e,u,a)-s,v=Math.max(e,u,a)+s;return!(t<f||t>c||n<l||n>v)},dr=function(t,n,r,e,i,a,o,u){var s=[];!function(t,n,r,e,i){var a,o,u,s,f,c,l,v;0===t&&(t=1e-5),u=-27*(e/=t)+(n/=t)*(9*(r/=t)-n*n*2),a=(o=(3*r-n*n)/9)*o*o+(u/=54)*u,i[1]=0,l=n/3,a>0?(f=(f=u+Math.sqrt(a))<0?-Math.pow(-f,1/3):Math.pow(f,1/3),c=(c=u-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-l+f+c,l+=(f+c)/2,i[4]=i[2]=-l,l=Math.sqrt(3)*(-c+f)/2,i[3]=l,i[5]=-l):(i[5]=i[3]=0,0===a?(v=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=2*v-l,i[4]=i[2]=-(v+l)):(s=(o=-o)*o*o,s=Math.acos(u/Math.sqrt(s)),v=2*Math.sqrt(o),i[0]=-l+v*Math.cos(s/3),i[2]=-l+v*Math.cos((s+2*Math.PI)/3),i[4]=-l+v*Math.cos((s+4*Math.PI)/3)))}(1*r*r-4*r*i+2*r*o+4*i*i-4*i*o+o*o+e*e-4*e*a+2*e*u+4*a*a-4*a*u+u*u,9*r*i-3*r*r-3*r*o-6*i*i+3*i*o+9*e*a-3*e*e-3*e*u-6*a*a+3*a*u,3*r*r-6*r*i+r*o-r*t+2*i*i+2*i*t-o*t+3*e*e-6*e*a+e*u-e*n+2*a*a+2*a*n-u*n,1*r*i-r*r+r*t-i*t+e*a-e*e+e*n-a*n,s);for(var f=[],c=0;c<6;c+=2)Math.abs(s[c+1])<1e-7&&s[c]>=0&&s[c]<=1&&f.push(s[c]);f.push(1),f.push(0);for(var l,v,h,d=-1,g=0;g<f.length;g++)l=Math.pow(1-f[g],2)*r+2*(1-f[g])*f[g]*i+f[g]*f[g]*o,v=Math.pow(1-f[g],2)*e+2*(1-f[g])*f[g]*a+f[g]*f[g]*u,h=Math.pow(l-t,2)+Math.pow(v-n,2),d>=0?h<d&&(d=h):d=h;return d},gr=function(t,n,r,e,i,a){var o=[t-r,n-e],u=[i-r,a-e],s=u[0]*u[0]+u[1]*u[1],f=o[0]*o[0]+o[1]*o[1],c=o[0]*u[0]+o[1]*u[1],l=c*c/s;return c<0?f:l>s?(t-i)*(t-i)+(n-a)*(n-a):f-l},pr=function(t,n,r){for(var e,i,a,o,u=0,s=0;s<r.length/2;s++)if(e=r[2*s],i=r[2*s+1],s+1<r.length/2?(a=r[2*(s+1)],o=r[2*(s+1)+1]):(a=r[2*(s+1-r.length/2)],o=r[2*(s+1-r.length/2)+1]),e==t&&a==t);else{if(!(e>=t&&t>=a||e<=t&&t<=a))continue;(t-e)/(a-e)*(o-i)+i>n&&u++}return u%2!=0},yr=function(t,n,r,e,i,a,o,u,s){var f,c=new Array(r.length);null!=u[0]?(f=Math.atan(u[1]/u[0]),u[0]<0?f+=Math.PI/2:f=-f-Math.PI/2):f=u;for(var l,v=Math.cos(-f),h=Math.sin(-f),d=0;d<c.length/2;d++)c[2*d]=a/2*(r[2*d]*v-r[2*d+1]*h),c[2*d+1]=o/2*(r[2*d+1]*v+r[2*d]*h),c[2*d]+=e,c[2*d+1]+=i;if(s>0){var g=br(c,-s);l=mr(g)}else l=c;return pr(t,n,l)},mr=function(t){for(var n,r,e,i,a,o,u,s,f=new Array(t.length/2),c=0;c<t.length/4;c++){n=t[4*c],r=t[4*c+1],e=t[4*c+2],i=t[4*c+3],c<t.length/4-1?(a=t[4*(c+1)],o=t[4*(c+1)+1],u=t[4*(c+1)+2],s=t[4*(c+1)+3]):(a=t[0],o=t[1],u=t[2],s=t[3]);var l=Mr(n,r,e,i,a,o,u,s,!0);f[2*c]=l[0],f[2*c+1]=l[1]}return f},br=function(t,n){for(var r,e,i,a,o=new Array(2*t.length),u=0;u<t.length/2;u++){r=t[2*u],e=t[2*u+1],u<t.length/2-1?(i=t[2*(u+1)],a=t[2*(u+1)+1]):(i=t[0],a=t[1]);var s=a-e,f=-(i-r),c=Math.sqrt(s*s+f*f),l=s/c,v=f/c;o[4*u]=r+l*n,o[4*u+1]=e+v*n,o[4*u+2]=i+l*n,o[4*u+3]=a+v*n}return o},xr=function(t,n,r,e,i,a,o){return t-=i,n-=a,(t/=r/2+o)*t+(n/=e/2+o)*n<=1},wr=function(t,n,r,e,i,a,o){var u=[r-t,e-n],s=[t-i,n-a],f=u[0]*u[0]+u[1]*u[1],c=2*(s[0]*u[0]+s[1]*u[1]),l=c*c-4*f*(s[0]*s[0]+s[1]*s[1]-o*o);if(l<0)return[];var v=(-c+Math.sqrt(l))/(2*f),h=(-c-Math.sqrt(l))/(2*f),d=Math.min(v,h),g=Math.max(v,h),p=[];if(d>=0&&d<=1&&p.push(d),g>=0&&g<=1&&p.push(g),0===p.length)return[];var y=p[0]*u[0]+t,m=p[0]*u[1]+n;return p.length>1?p[0]==p[1]?[y,m]:[y,m,p[1]*u[0]+t,p[1]*u[1]+n]:[y,m]},kr=function(t,n,r){return n<=t&&t<=r||r<=t&&t<=n?t:t<=n&&n<=r||r<=n&&n<=t?n:r},Mr=function(t,n,r,e,i,a,o,u,s){var f=t-i,c=r-t,l=o-i,v=n-a,h=e-n,d=u-a,g=l*v-d*f,p=c*v-h*f,y=d*c-l*h;if(0!==y){var m=g/y,b=p/y,x=-.001;return x<=m&&m<=1.001&&x<=b&&b<=1.001||s?[t+m*c,n+m*h]:[]}return 0===g||0===p?kr(t,r,o)===o?[o,u]:kr(t,r,i)===i?[i,a]:kr(i,o,r)===r?[r,e]:[]:[]},Br=function(t,n,r,e,i){var a=[],o=e/2,u=i/2,s=n,f=r;a.push({x:s+o*t[0],y:f+u*t[1]});for(var c=1;c<t.length/2;c++)a.push({x:s+o*t[2*c],y:f+u*t[2*c+1]});return a},Cr=function(t,n,r,e,i,a,o,u){var s,f,c,l,v,h,d=[],g=new Array(r.length),p=!0;if(null==a&&(p=!1),p){for(var y=0;y<g.length/2;y++)g[2*y]=r[2*y]*a+e,g[2*y+1]=r[2*y+1]*o+i;if(u>0){var m=br(g,-u);f=mr(m)}else f=g}else f=r;for(var b=0;b<f.length/2;b++)c=f[2*b],l=f[2*b+1],b<f.length/2-1?(v=f[2*(b+1)],h=f[2*(b+1)+1]):(v=f[0],h=f[1]),0!==(s=Mr(t,n,e,i,c,l,v,h)).length&&d.push(s[0],s[1]);return d},Ar=function(t,n,r){var e=[t[0]-n[0],t[1]-n[1]],i=Math.sqrt(e[0]*e[0]+e[1]*e[1]),a=(i-r)/i;return a<0&&(a=1e-5),[n[0]+a*e[0],n[1]+a*e[1]]},Tr=function(t,n){var r=Sr(t,n);return r=Er(r)},Er=function(t){for(var n,r,e=t.length/2,i=1/0,a=1/0,o=-1/0,u=-1/0,s=0;s<e;s++)n=t[2*s],r=t[2*s+1],i=Math.min(i,n),o=Math.max(o,n),a=Math.min(a,r),u=Math.max(u,r);for(var f=2/(o-i),c=2/(u-a),l=0;l<e;l++)n=t[2*l]=t[2*l]*f,r=t[2*l+1]=t[2*l+1]*c,i=Math.min(i,n),o=Math.max(o,n),a=Math.min(a,r),u=Math.max(u,r);if(a<-1)for(var v=0;v<e;v++)r=t[2*v+1]=t[2*v+1]+(-1-a);return t},Sr=function(t,n){var r=1/t*2*Math.PI,e=t%2==0?Math.PI/2+r/2:Math.PI/2;e+=n;for(var i,a=new Array(2*t),o=0;o<t;o++)i=o*r+e,a[2*o]=Math.cos(i),a[2*o+1]=Math.sin(-i);return a},zr=function(t,n){return Math.min(t/4,n/4,8)},Pr=function(t,n){return Math.min(t/10,n/10,8)},Or=function(t,n){return{heightOffset:Math.min(15,.05*n),widthOffset:Math.min(100,.25*t),ctrlPtOffsetPct:.05}};function Nr(t,n){function r(t){for(var n=[],r=0;r<t.length;r++){var e=t[r],i=t[(r+1)%t.length],a={x:i.x-e.x,y:i.y-e.y},o={x:-a.y,y:a.x},u=Math.sqrt(o.x*o.x+o.y*o.y);n.push({x:o.x/u,y:o.y/u})}return n}function i(t,n){var r,i=1/0,a=-1/0,o=e(t);try{for(o.s();!(r=o.n()).done;){var u=r.value,s=u.x*n.x+u.y*n.y;i=Math.min(i,s),a=Math.max(a,s)}}catch(f){o.e(f)}finally{o.f()}return{min:i,max:a}}function a(t,n){return!(t.max<n.min||n.max<t.min)}var u,s=e([].concat(o(r(t)),o(r(n))));try{for(s.s();!(u=s.n()).done;){var f=u.value;if(!a(i(t,f),i(n,f)))return!1}}catch(c){s.e(c)}finally{s.f()}return!0}var Rr=fn({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(t){return 1}}),Fr={pageRank:function(t){for(var n=Rr(t),r=n.dampingFactor,e=n.precision,i=n.iterations,a=n.weight,o=this.t.cy,u=this.byGroup(),s=u.nodes,f=u.edges,c=s.length,l=c*c,v=f.length,h=new Array(l),d=new Array(c),g=(1-r)/c,p=0;p<c;p++){for(var y=0;y<c;y++){h[p*c+y]=0}d[p]=0}for(var m=0;m<v;m++){var b=f[m],x=b.data("source"),w=b.data("target");if(x!==w){var k=s.indexOfId(x),M=s.indexOfId(w),B=a(b);h[M*c+k]+=B,d[k]+=B}}for(var C=1/c+g,A=0;A<c;A++)if(0===d[A])for(var T=0;T<c;T++){h[T*c+A]=C}else for(var E=0;E<c;E++){var S=E*c+A;h[S]=h[S]/d[A]+g}for(var z,P=new Array(c),O=new Array(c),N=0;N<c;N++)P[N]=1;for(var R=0;R<i;R++){for(var F=0;F<c;F++)O[F]=0;for(var I=0;I<c;I++)for(var D=0;D<c;D++){var L=I*c+D;O[I]+=h[L]*P[D]}Un(O),z=P,P=O,O=z;for(var j=0,q=0;q<c;q++){var _=z[q]-P[q];j+=_*_}if(j<e)break}return{rank:function(t){return t=o.collection(t)[0],P[s.indexOf(t)]}}}},Ir=fn({root:null,weight:function(t){return 1},directed:!1,alpha:0}),Dr={degreeCentralityNormalized:function(t){t=Ir(t);var n=this.cy(),r=this.nodes(),e=r.length;if(t.directed){for(var i={},a={},o=0,u=0,s=0;s<e;s++){var f=r[s],c=f.id();t.root=f;var l=this.degreeCentrality(t);o<l.indegree&&(o=l.indegree),u<l.outdegree&&(u=l.outdegree),i[c]=l.indegree,a[c]=l.outdegree}return{indegree:function(t){return 0==o?0:(K(t)&&(t=n.filter(t)),i[t.id()]/o)},outdegree:function(t){return 0===u?0:(K(t)&&(t=n.filter(t)),a[t.id()]/u)}}}for(var v={},h=0,d=0;d<e;d++){var g=r[d];t.root=g;var p=this.degreeCentrality(t);h<p.degree&&(h=p.degree),v[g.id()]=p.degree}return{degree:function(t){return 0===h?0:(K(t)&&(t=n.filter(t)),v[t.id()]/h)}}},degreeCentrality:function(t){t=Ir(t);var n=this.cy(),r=this,e=t,i=e.root,a=e.weight,o=e.directed,u=e.alpha;if(i=n.collection(i)[0],o){for(var s=i.connectedEdges(),f=s.filter(function(t){return t.target().same(i)&&r.has(t)}),c=s.filter(function(t){return t.source().same(i)&&r.has(t)}),l=f.length,v=c.length,h=0,d=0,g=0;g<f.length;g++)h+=a(f[g]);for(var p=0;p<c.length;p++)d+=a(c[p]);return{indegree:Math.pow(l,1-u)*Math.pow(h,u),outdegree:Math.pow(v,1-u)*Math.pow(d,u)}}for(var y=i.connectedEdges().intersection(r),m=y.length,b=0,x=0;x<y.length;x++)b+=a(y[x]);return{degree:Math.pow(m,1-u)*Math.pow(b,u)}}};Dr.dc=Dr.degreeCentrality,Dr.dcn=Dr.degreeCentralityNormalised=Dr.degreeCentralityNormalized;var Lr=fn({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),jr={closenessCentralityNormalized:function(t){for(var n=Lr(t),r=n.harmonic,e=n.weight,i=n.directed,a=this.cy(),o={},u=0,s=this.nodes(),f=this.floydWarshall({weight:e,directed:i}),c=0;c<s.length;c++){for(var l=0,v=s[c],h=0;h<s.length;h++)if(c!==h){var d=f.distance(v,s[h]);l+=r?1/d:d}r||(l=1/l),u<l&&(u=l),o[v.id()]=l}return{closeness:function(t){return 0==u?0:(t=K(t)?a.filter(t)[0].id():t.id(),o[t]/u)}}},closenessCentrality:function(t){var n=Lr(t),r=n.root,e=n.weight,i=n.directed,a=n.harmonic;r=this.filter(r)[0];for(var o=this.dijkstra({root:r,weight:e,directed:i}),u=0,s=this.nodes(),f=0;f<s.length;f++){var c=s[f];if(!c.same(r)){var l=o.distanceTo(c);u+=a?1/l:l}}return a?u:1/u}};jr.cc=jr.closenessCentrality,jr.ccn=jr.closenessCentralityNormalised=jr.closenessCentralityNormalized;var qr=fn({weight:null,directed:!1}),_r={betweennessCentrality:function(t){for(var n=qr(t),r=n.directed,e=n.weight,i=null!=e,a=this.cy(),o=this.nodes(),u={},s={},f=0,c=function(t,n){s[t]=n,n>f&&(f=n)},l=function(t){return s[t]},v=0;v<o.length;v++){var h=o[v],d=h.id();u[d]=r?h.outgoers().nodes():h.openNeighborhood().nodes(),c(d,0)}for(var g=function(){for(var t=o[p].id(),n=[],r={},s={},f={},v=new Tn(function(t,n){return f[t]-f[n]}),h=0;h<o.length;h++){var d=o[h].id();r[d]=[],s[d]=0,f[d]=1/0}for(s[t]=1,f[t]=0,v.push(t);!v.empty();){var g=v.pop();if(n.push(g),i)for(var y=0;y<u[g].length;y++){var m=u[g][y],b=a.getElementById(g),x=void 0;x=b.edgesTo(m).length>0?b.edgesTo(m)[0]:m.edgesTo(b)[0];var w=e(x);m=m.id(),f[m]>f[g]+w&&(f[m]=f[g]+w,v.nodes.indexOf(m)<0?v.push(m):v.updateItem(m),s[m]=0,r[m]=[]),f[m]==f[g]+w&&(s[m]=s[m]+s[g],r[m].push(g))}else for(var k=0;k<u[g].length;k++){var M=u[g][k].id();f[M]==1/0&&(v.push(M),f[M]=f[g]+1),f[M]==f[g]+1&&(s[M]=s[M]+s[g],r[M].push(g))}}for(var B={},C=0;C<o.length;C++)B[o[C].id()]=0;for(;n.length>0;){for(var A=n.pop(),T=0;T<r[A].length;T++){var E=r[A][T];B[E]=B[E]+s[E]/s[A]*(1+B[A])}A!=o[p].id()&&c(A,l(A)+B[A])}},p=0;p<o.length;p++)g();var y={betweenness:function(t){var n=a.collection(t).id();return l(n)},betweennessNormalized:function(t){if(0==f)return 0;var n=a.collection(t).id();return l(n)/f}};return y.betweennessNormalised=y.betweennessNormalized,y}};_r.bc=_r.betweennessCentrality;var Vr=fn({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(t){return 1}]}),Wr=function(t,n){for(var r=0,e=0;e<n.length;e++)r+=n[e](t);return r},$r=function(t,n){for(var r,e=0;e<n;e++){r=0;for(var i=0;i<n;i++)r+=t[i*n+e];for(var a=0;a<n;a++)t[a*n+e]=t[a*n+e]/r}},Kr=function(t,n,r){for(var e=new Array(r*r),i=0;i<r;i++){for(var a=0;a<r;a++)e[i*r+a]=0;for(var o=0;o<r;o++)for(var u=0;u<r;u++)e[i*r+u]+=t[i*r+o]*n[o*r+u]}return e},Zr=function(t,n,r){for(var e=t.slice(0),i=1;i<r;i++)t=Kr(t,e,n);return t},Hr=function(t,n,r){for(var e=new Array(n*n),i=0;i<n*n;i++)e[i]=Math.pow(t[i],r);return $r(e,n),e},Gr=function(t,n,r,e){for(var i=0;i<r;i++){if(Math.round(t[i]*Math.pow(10,e))/Math.pow(10,e)!==Math.round(n[i]*Math.pow(10,e))/Math.pow(10,e))return!1}return!0},Ur=function(t,n){for(var r=0;r<t.length;r++)if(!n[r]||t[r].id()!==n[r].id())return!1;return!0},Yr=function(t){for(var n=this.nodes(),r=this.edges(),e=this.cy(),i=function(t){return Vr(t)}(t),a={},o=0;o<n.length;o++)a[n[o].id()]=o;for(var u,s=n.length,f=s*s,c=new Array(f),l=0;l<f;l++)c[l]=0;for(var v=0;v<r.length;v++){var h=r[v],d=a[h.source().id()],g=a[h.target().id()],p=Wr(h,i.attributes);c[d*s+g]+=p,c[g*s+d]+=p}!function(t,n,r){for(var e=0;e<n;e++)t[e*n+e]=r}(c,s,i.multFactor),$r(c,s);for(var y=!0,m=0;y&&m<i.maxIterations;)y=!1,u=Zr(c,s,i.expandFactor),c=Hr(u,s,i.inflateFactor),Gr(c,u,f,4)||(y=!0),m++;var b=function(t,n,r,e){for(var i=[],a=0;a<n;a++){for(var o=[],u=0;u<n;u++)Math.round(1e3*t[a*n+u])/1e3>0&&o.push(r[u]);0!==o.length&&i.push(e.collection(o))}return i}(c,s,n,e);return b=function(t){for(var n=0;n<t.length;n++)for(var r=0;r<t.length;r++)n!=r&&Ur(t[n],t[r])&&t.splice(r,1);return t}(b),b},Xr={markovClustering:Yr,mcl:Yr},Qr=function(t){return t},Jr=function(t,n){return Math.abs(n-t)},te=function(t,n,r){return t+Jr(n,r)},ne=function(t,n,r){return t+Math.pow(r-n,2)},re=function(t){return Math.sqrt(t)},ee=function(t,n,r){return Math.max(t,Jr(n,r))},ie=function(t,n,r,e,i){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Qr,o=e,u=0;u<t;u++)o=i(o,n(u),r(u));return a(o)},ae={euclidean:function(t,n,r){return t>=2?ie(t,n,r,0,ne,re):ie(t,n,r,0,te)},squaredEuclidean:function(t,n,r){return ie(t,n,r,0,ne)},manhattan:function(t,n,r){return ie(t,n,r,0,te)},max:function(t,n,r){return ie(t,n,r,-1/0,ee)}};function oe(t,n,r,e,i,a){var o;return o=Z(t)?t:ae[t]||ae.euclidean,0===n&&Z(t)?o(i,a):o(n,r,e,i,a)}ae["squared-euclidean"]=ae.squaredEuclidean,ae.squaredeuclidean=ae.squaredEuclidean;var ue=fn({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),se=function(t){return ue(t)},fe=function(t,n,r,e,i){var a="kMedoids"!==i?function(t){return r[t]}:function(t){return e[t](r)},o=r,u=n;return oe(t,e.length,a,function(t){return e[t](n)},o,u)},ce=function(t,n,r){for(var e=r.length,i=new Array(e),a=new Array(e),o=new Array(n),u=null,s=0;s<e;s++)i[s]=t.min(r[s]).value,a[s]=t.max(r[s]).value;for(var f=0;f<n;f++){u=[];for(var c=0;c<e;c++)u[c]=Math.random()*(a[c]-i[c])+i[c];o[f]=u}return o},le=function(t,n,r,e,i){for(var a=1/0,o=0,u=0;u<n.length;u++){var s=fe(r,t,n[u],e,i);s<a&&(a=s,o=u)}return o},ve=function(t,n,r){for(var e=[],i=null,a=0;a<n.length;a++)r[(i=n[a]).id()]===t&&e.push(i);return e},he=function(t,n,r){return Math.abs(n-t)<=r},de=function(t,n,r){for(var e=0;e<t.length;e++)for(var i=0;i<t[e].length;i++){if(Math.abs(t[e][i]-n[e][i])>r)return!1}return!0},ge=function(t,n,r){for(var e=0;e<r;e++)if(t===n[e])return!0;return!1},pe=function(t,n){var r=new Array(n);if(t.length<50)for(var e=0;e<n;e++){for(var i=t[Math.floor(Math.random()*t.length)];ge(i,r,e);)i=t[Math.floor(Math.random()*t.length)];r[e]=i}else for(var a=0;a<n;a++)r[a]=t[Math.floor(Math.random()*t.length)];return r},ye=function(t,n,r){for(var e=0,i=0;i<n.length;i++)e+=fe("manhattan",n[i],t,r,"kMedoids");return e},me=function(t,n,r,e,i){for(var a,o,u=0;u<n.length;u++)for(var s=0;s<t.length;s++)e[u][s]=Math.pow(r[u][s],i.m);for(var f=0;f<t.length;f++)for(var c=0;c<i.attributes.length;c++){a=0,o=0;for(var l=0;l<n.length;l++)a+=e[l][f]*i.attributes[c](n[l]),o+=e[l][f];t[f][c]=a/o}},be=function(t,n,r,e,i){for(var a=0;a<t.length;a++)n[a]=t[a].slice();for(var o,u,s,f=2/(i.m-1),c=0;c<r.length;c++)for(var l=0;l<e.length;l++){o=0;for(var v=0;v<r.length;v++)u=fe(i.distance,e[l],r[c],i.attributes,"cmeans"),s=fe(i.distance,e[l],r[v],i.attributes,"cmeans"),o+=Math.pow(u/s,f);t[l][c]=1/o}},xe=function(t){var n,r,e,i,a,o=this.cy(),u=this.nodes(),s=se(t);i=new Array(u.length);for(var f=0;f<u.length;f++)i[f]=new Array(s.k);e=new Array(u.length);for(var c=0;c<u.length;c++)e[c]=new Array(s.k);for(var l=0;l<u.length;l++){for(var v=0,h=0;h<s.k;h++)e[l][h]=Math.random(),v+=e[l][h];for(var d=0;d<s.k;d++)e[l][d]=e[l][d]/v}r=new Array(s.k);for(var g=0;g<s.k;g++)r[g]=new Array(s.attributes.length);a=new Array(u.length);for(var p=0;p<u.length;p++)a[p]=new Array(s.k);for(var y=!0,m=0;y&&m<s.maxIterations;)y=!1,me(r,u,e,a,s),be(e,i,r,u,s),de(e,i,s.sensitivityThreshold)||(y=!0),m++;return n=function(t,n,r,e){for(var i,a,o=new Array(r.k),u=0;u<o.length;u++)o[u]=[];for(var s=0;s<n.length;s++){i=-1/0,a=-1;for(var f=0;f<n[0].length;f++)n[s][f]>i&&(i=n[s][f],a=f);o[a].push(t[s])}for(var c=0;c<o.length;c++)o[c]=e.collection(o[c]);return o}(u,e,s,o),{clusters:n,degreeOfMembership:e}},we={kMeans:function(t){var n,r=this.cy(),e=this.nodes(),i=null,a=se(t),o=new Array(a.k),u={};a.testMode?"number"==typeof a.testCentroids?(a.testCentroids,n=ce(e,a.k,a.attributes)):n="object"===s(a.testCentroids)?a.testCentroids:ce(e,a.k,a.attributes):n=ce(e,a.k,a.attributes);for(var f=!0,c=0;f&&c<a.maxIterations;){for(var l=0;l<e.length;l++)u[(i=e[l]).id()]=le(i,n,a.distance,a.attributes,"kMeans");f=!1;for(var v=0;v<a.k;v++){var h=ve(v,e,u);if(0!==h.length){for(var d=a.attributes.length,g=n[v],p=new Array(d),y=new Array(d),m=0;m<d;m++){y[m]=0;for(var b=0;b<h.length;b++)i=h[b],y[m]+=a.attributes[m](i);p[m]=y[m]/h.length,he(p[m],g[m],a.sensitivityThreshold)||(f=!0)}n[v]=p,o[v]=r.collection(h)}}c++}return o},kMedoids:function(t){var n,r,e=this.cy(),i=this.nodes(),a=null,o=se(t),u=new Array(o.k),f={},c=new Array(o.k);o.testMode?"number"==typeof o.testCentroids||(n="object"===s(o.testCentroids)?o.testCentroids:pe(i,o.k)):n=pe(i,o.k);for(var l=!0,v=0;l&&v<o.maxIterations;){for(var h=0;h<i.length;h++)f[(a=i[h]).id()]=le(a,n,o.distance,o.attributes,"kMedoids");l=!1;for(var d=0;d<n.length;d++){var g=ve(d,i,f);if(0!==g.length){c[d]=ye(n[d],g,o.attributes);for(var p=0;p<g.length;p++)(r=ye(g[p],g,o.attributes))<c[d]&&(c[d]=r,n[d]=g[p],l=!0);u[d]=e.collection(g)}}v++}return u},fuzzyCMeans:xe,fcm:xe},ke=fn({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),Me={single:"min",complete:"max"},Be=function(t,n,r,e,i){for(var a,o=0,u=1/0,s=i.attributes,f=function(t,n){return oe(i.distance,s.length,function(n){return s[n](t)},function(t){return s[t](n)},t,n)},c=0;c<t.length;c++){var l=t[c].key,v=r[l][e[l]];v<u&&(o=l,u=v)}if("threshold"===i.mode&&u>=i.threshold||"dendrogram"===i.mode&&1===t.length)return!1;var h,d=n[o],g=n[e[o]];h="dendrogram"===i.mode?{left:d,right:g,key:d.key}:{value:d.value.concat(g.value),key:d.key},t[d.index]=h,t.splice(g.index,1),n[d.key]=h;for(var p=0;p<t.length;p++){var y=t[p];d.key===y.key?a=1/0:"min"===i.linkage?(a=r[d.key][y.key],r[d.key][y.key]>r[g.key][y.key]&&(a=r[g.key][y.key])):"max"===i.linkage?(a=r[d.key][y.key],r[d.key][y.key]<r[g.key][y.key]&&(a=r[g.key][y.key])):a="mean"===i.linkage?(r[d.key][y.key]*d.size+r[g.key][y.key]*g.size)/(d.size+g.size):"dendrogram"===i.mode?f(y.value,d.value):f(y.value[0],d.value[0]),r[d.key][y.key]=r[y.key][d.key]=a}for(var m=0;m<t.length;m++){var b=t[m].key;if(e[b]===d.key||e[b]===g.key){for(var x=b,w=0;w<t.length;w++){var k=t[w].key;r[b][k]<r[b][x]&&(x=k)}e[b]=x}t[m].index=m}return d.key=g.key=d.index=g.index=null,!0},Ce=function(t,n,r){t&&(t.value?n.push(t.value):(t.left&&Ce(t.left,n),t.right&&Ce(t.right,n)))},Ae=function(t,n){if(!t)return"";if(t.left&&t.right){var r=Ae(t.left,n),e=Ae(t.right,n),i=n.add({group:"nodes",data:{id:r+","+e}});return n.add({group:"edges",data:{source:r,target:i.id()}}),n.add({group:"edges",data:{source:e,target:i.id()}}),i.id()}return t.value?t.value.id():void 0},Te=function(t,n,r){if(!t)return[];var e=[],i=[],a=[];return 0===n?(t.left&&Ce(t.left,e),t.right&&Ce(t.right,i),a=e.concat(i),[r.collection(a)]):1===n?t.value?[r.collection(t.value)]:(t.left&&Ce(t.left,e),t.right&&Ce(t.right,i),[r.collection(e),r.collection(i)]):t.value?[r.collection(t.value)]:(t.left&&(e=Te(t.left,n-1,r)),t.right&&(i=Te(t.right,n-1,r)),e.concat(i))},Ee=function(t){for(var n=this.cy(),r=this.nodes(),e=function(t){var n=ke(t),r=Me[n.linkage];return null!=r&&(n.linkage=r),n}(t),i=e.attributes,a=function(t,n){return oe(e.distance,i.length,function(n){return i[n](t)},function(t){return i[t](n)},t,n)},o=[],u=[],s=[],f=[],c=0;c<r.length;c++){var l={value:"dendrogram"===e.mode?r[c]:[r[c]],key:c,index:c};o[c]=l,f[c]=l,u[c]=[],s[c]=0}for(var v=0;v<o.length;v++)for(var h=0;h<=v;h++){var d=void 0;d="dendrogram"===e.mode?v===h?1/0:a(o[v].value,o[h].value):v===h?1/0:a(o[v].value[0],o[h].value[0]),u[v][h]=d,u[h][v]=d,d<u[v][s[v]]&&(s[v]=h)}for(var g,p=Be(o,f,u,s,e);p;)p=Be(o,f,u,s,e);return"dendrogram"===e.mode?(g=Te(o[0],e.dendrogramDepth,n),e.addDendrogram&&Ae(o[0],n)):(g=new Array(o.length),o.forEach(function(t,r){t.key=t.index=null,g[r]=n.collection(t.value)})),g},Se={hierarchicalClustering:Ee,hca:Ee},ze=fn({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),Pe=function(t,n,r,e){var i=function(t,n){return e[n](t)};return-oe(t,e.length,function(t){return i(n,t)},function(t){return i(r,t)},n,r)},Oe=function(t,n){var r=null;return r="median"===n?function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,e=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(r<t.length&&t.splice(r,t.length-r),n>0&&t.splice(0,n)):t=t.slice(n,r);for(var a=0,o=t.length-1;o>=0;o--){var u=t[o];i?isFinite(u)||(t[o]=-1/0,a++):t.splice(o,1)}e&&t.sort(function(t,n){return t-n});var s=t.length,f=Math.floor(s/2);return s%2!=0?t[f+1+a]:(t[f-1+a]+t[f+a])/2}(t):"mean"===n?function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,e=0,i=0,a=n;a<r;a++){var o=t[a];isFinite(o)&&(e+=o,i++)}return e/i}(t):"min"===n?function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,e=1/0,i=n;i<r;i++){var a=t[i];isFinite(a)&&(e=Math.min(a,e))}return e}(t):"max"===n?function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,e=-1/0,i=n;i<r;i++){var a=t[i];isFinite(a)&&(e=Math.max(a,e))}return e}(t):n,r},Ne=function(t,n,r){for(var e=[],i=0;i<t;i++){for(var a=-1,o=-1/0,u=0;u<r.length;u++){var s=r[u];n[i*t+s]>o&&(a=s,o=n[i*t+s])}a>0&&e.push(a)}for(var f=0;f<r.length;f++)e[r[f]]=r[f];return e},Re=function(t){for(var n,r,e,i,a,o,u=this.cy(),s=this.nodes(),f=function(t){var n=t.damping,r=t.preference;.5<=n&&n<1||nn("Damping must range on [0.5, 1). Got: ".concat(n));var e=["median","mean","min","max"];return e.some(function(t){return t===r})||U(r)||nn("Preference must be one of [".concat(e.map(function(t){return"'".concat(t,"'")}).join(", "),"] or a number. Got: ").concat(r)),ze(t)}(t),c={},l=0;l<s.length;l++)c[s[l].id()]=l;r=(n=s.length)*n,e=new Array(r);for(var v=0;v<r;v++)e[v]=-1/0;for(var h=0;h<n;h++)for(var d=0;d<n;d++)h!==d&&(e[h*n+d]=Pe(f.distance,s[h],s[d],f.attributes));i=Oe(e,f.preference);for(var g=0;g<n;g++)e[g*n+g]=i;a=new Array(r);for(var p=0;p<r;p++)a[p]=0;o=new Array(r);for(var y=0;y<r;y++)o[y]=0;for(var m=new Array(n),b=new Array(n),x=new Array(n),w=0;w<n;w++)m[w]=0,b[w]=0,x[w]=0;for(var k,M=new Array(n*f.minIterations),B=0;B<M.length;B++)M[B]=0;for(k=0;k<f.maxIterations;k++){for(var C=0;C<n;C++){for(var A=-1/0,T=-1/0,E=-1,S=0,z=0;z<n;z++)m[z]=a[C*n+z],(S=o[C*n+z]+e[C*n+z])>=A?(T=A,A=S,E=z):S>T&&(T=S);for(var P=0;P<n;P++)a[C*n+P]=(1-f.damping)*(e[C*n+P]-A)+f.damping*m[P];a[C*n+E]=(1-f.damping)*(e[C*n+E]-T)+f.damping*m[E]}for(var O=0;O<n;O++){for(var N=0,R=0;R<n;R++)m[R]=o[R*n+O],b[R]=Math.max(0,a[R*n+O]),N+=b[R];N-=b[O],b[O]=a[O*n+O],N+=b[O];for(var F=0;F<n;F++)o[F*n+O]=(1-f.damping)*Math.min(0,N-b[F])+f.damping*m[F];o[O*n+O]=(1-f.damping)*(N-b[O])+f.damping*m[O]}for(var I=0,D=0;D<n;D++){var L=o[D*n+D]+a[D*n+D]>0?1:0;M[k%f.minIterations*n+D]=L,I+=L}if(I>0&&(k>=f.minIterations-1||k==f.maxIterations-1)){for(var j=0,q=0;q<n;q++){x[q]=0;for(var _=0;_<f.minIterations;_++)x[q]+=M[_*n+q];0!==x[q]&&x[q]!==f.minIterations||j++}if(j===n)break}}for(var V=function(t,n,r){for(var e=[],i=0;i<t;i++)n[i*t+i]+r[i*t+i]>0&&e.push(i);return e}(n,a,o),W=function(t,n,r){for(var e=Ne(t,n,r),i=0;i<r.length;i++){for(var a=[],o=0;o<e.length;o++)e[o]===r[i]&&a.push(o);for(var u=-1,s=-1/0,f=0;f<a.length;f++){for(var c=0,l=0;l<a.length;l++)c+=n[a[l]*t+a[f]];c>s&&(u=f,s=c)}r[i]=a[u]}return Ne(t,n,r)}(n,e,V),$={},K=0;K<V.length;K++)$[V[K]]=[];for(var Z=0;Z<s.length;Z++){var H=W[c[s[Z].id()]];null!=H&&$[H].push(s[Z])}for(var G=new Array(V.length),Y=0;Y<V.length;Y++)G[Y]=u.collection($[V[Y]]);return G},Fe={affinityPropagation:Re,ap:Re},Ie=fn({root:void 0,directed:!1}),De=function(){var t=this,n={},r=0,e=0,i=[],a=[],o={},u=function(s,f,c){s===c&&(e+=1),n[f]={id:r,low:r++,cutVertex:!1};var l,v,h,d,g=t.getElementById(f).connectedEdges().intersection(t);0===g.size()?i.push(t.spawn(t.getElementById(f))):g.forEach(function(r){l=r.source().id(),v=r.target().id(),(h=l===f?v:l)!==c&&(d=r.id(),o[d]||(o[d]=!0,a.push({x:f,y:h,edge:r})),h in n?n[f].low=Math.min(n[f].low,n[h].id):(u(s,h,f),n[f].low=Math.min(n[f].low,n[h].low),n[f].id<=n[h].low&&(n[f].cutVertex=!0,function(r,e){for(var o=a.length-1,u=[],s=t.spawn();a[o].x!=r||a[o].y!=e;)u.push(a.pop().edge),o--;u.push(a.pop().edge),u.forEach(function(r){var e=r.connectedNodes().intersection(t);s.merge(r),e.forEach(function(r){var e=r.id(),i=r.connectedEdges().intersection(t);s.merge(r),n[e].cutVertex?s.merge(i.filter(function(t){return t.isLoop()})):s.merge(i)})}),i.push(s)}(f,h))))})};t.forEach(function(t){if(t.isNode()){var r=t.id();r in n||(e=0,u(r,r),n[r].cutVertex=e>1)}});var s=Object.keys(n).filter(function(t){return n[t].cutVertex}).map(function(n){return t.getElementById(n)});return{cut:t.spawn(s),components:i}},Le=function(){var t=this,n={},r=0,e=[],i=[],a=t.spawn(t),o=function(u){if(i.push(u),n[u]={index:r,low:r++,explored:!1},t.getElementById(u).connectedEdges().intersection(t).forEach(function(t){var r=t.target().id();r!==u&&(r in n||o(r),n[r].explored||(n[u].low=Math.min(n[u].low,n[r].low)))}),n[u].index===n[u].low){for(var s=t.spawn();;){var f=i.pop();if(s.merge(t.getElementById(f)),n[f].low=n[u].index,n[f].explored=!0,f===u)break}var c=s.edgesWith(s),l=s.merge(c);e.push(l),a=a.difference(l)}};return t.forEach(function(t){if(t.isNode()){var r=t.id();r in n||o(r)}}),{cut:a,components:e}},je={};[bn,Sn,zn,On,Rn,In,qn,Fr,Dr,jr,_r,Xr,we,Se,Fe,{hierholzer:function(t){if(!G(t)){var n=arguments;t={root:n[0],directed:n[1]}}var r,e,i,a=Ie(t),o=a.root,u=a.directed,s=this,f=!1;o&&(i=K(o)?this.filter(o)[0].id():o[0].id());var c={},l={};u?s.forEach(function(t){var n=t.id();if(t.isNode()){var i=t.indegree(!0),a=t.outdegree(!0),o=i-a,u=a-i;1==o?r?f=!0:r=n:1==u?e?f=!0:e=n:(u>1||o>1)&&(f=!0),c[n]=[],t.outgoers().forEach(function(t){t.isEdge()&&c[n].push(t.id())})}else l[n]=[void 0,t.target().id()]}):s.forEach(function(t){var n=t.id();t.isNode()?(t.degree(!0)%2&&(r?e?f=!0:e=n:r=n),c[n]=[],t.connectedEdges().forEach(function(t){return c[n].push(t.id())})):l[n]=[t.source().id(),t.target().id()]});var v={found:!1,trail:void 0};if(f)return v;if(e&&r)if(u){if(i&&e!=i)return v;i=e}else{if(i&&e!=i&&r!=i)return v;i||(i=e)}else i||(i=s[0].id());var h=function(t){for(var n,r,e,i=t,a=[t];c[i].length;)n=c[i].shift(),r=l[n][0],i!=(e=l[n][1])?(c[e]=c[e].filter(function(t){return t!=n}),i=e):u||i==r||(c[r]=c[r].filter(function(t){return t!=n}),i=r),a.unshift(n),a.unshift(i);return a},d=[],g=[];for(g=h(i);1!=g.length;)0==c[g[0]].length?(d.unshift(s.getElementById(g.shift())),d.unshift(s.getElementById(g.shift()))):g=h(g.shift()).concat(g);for(var p in d.unshift(s.getElementById(g.shift())),c)if(c[p].length)return v;return v.found=!0,v.trail=this.spawn(d,!0),v}},{hopcroftTarjanBiconnected:De,htbc:De,htb:De,hopcroftTarjanBiconnectedComponents:De},{tarjanStronglyConnected:Le,tsc:Le,tscc:Le,tarjanStronglyConnectedComponents:Le}].forEach(function(t){pt(je,t)});
2
+ /*!
3
+ Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
4
+ Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
5
+ Licensed under The MIT License (http://opensource.org/licenses/MIT)
6
+ */
7
+ var qe=function(t){if(!(this instanceof qe))return new qe(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};qe.prototype={fulfill:function(t){return _e(this,1,"fulfillValue",t)},reject:function(t){return _e(this,2,"rejectReason",t)},then:function(t,n){var r=this,e=new qe;return r.onFulfilled.push($e(t,e,"fulfill")),r.onRejected.push($e(n,e,"reject")),Ve(r),e.proxy}};var _e=function(t,n,r,e){return 0===t.state&&(t.state=n,t[r]=e,Ve(t)),t},Ve=function(t){1===t.state?We(t,"onFulfilled",t.fulfillValue):2===t.state&&We(t,"onRejected",t.rejectReason)},We=function(t,n,r){if(0!==t[n].length){var e=t[n];t[n]=[];var i=function(){for(var t=0;t<e.length;t++)e[t](r)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},$e=function(t,n,r){return function(e){if("function"!=typeof t)n[r].call(n,e);else{var i;try{i=t(e)}catch(a){return void n.reject(a)}Ke(n,i)}}},Ke=function(t,n){if(t!==n&&t.proxy!==n){var r;if("object"===s(n)&&null!==n||"function"==typeof n)try{r=n.then}catch(i){return void t.reject(i)}if("function"!=typeof r)t.fulfill(n);else{var e=!1;try{r.call(n,function(r){e||(e=!0,r===n?t.reject(new TypeError("circular thenable chain")):Ke(t,r))},function(n){e||(e=!0,t.reject(n))})}catch(i){e||t.reject(i)}}}else t.reject(new TypeError("cannot resolve promise with itself"))};qe.all=function(t){return new qe(function(n,r){for(var e=new Array(t.length),i=0,a=function(r,a){e[r]=a,++i===t.length&&n(e)},o=0;o<t.length;o++)(function(n){var e=t[n];null!=e&&null!=e.then?e.then(function(t){a(n,t)},function(t){r(t)}):a(n,e)})(o)})},qe.resolve=function(t){return new qe(function(n,r){n(t)})},qe.reject=function(t){return new qe(function(n,r){r(t)})};var Ze="undefined"!=typeof Promise?Promise:qe,He=function(t,n,r){var e=tt(t),i=!e,a=this.t=pt({duration:1e3},n,r);if(a.target=t,a.style=a.style||a.css,a.started=!1,a.playing=!1,a.hooked=!1,a.applying=!1,a.progress=0,a.completes=[],a.frames=[],a.complete&&Z(a.complete)&&a.completes.push(a.complete),i){var o=t.position();a.startPosition=a.startPosition||{x:o.x,y:o.y},a.startStyle=a.startStyle||t.cy().style().getAnimationStartStyle(t,a.style)}if(e){var u=t.pan();a.startPan={x:u.x,y:u.y},a.startZoom=t.zoom()}this.length=1,this[0]=this},Ge=He.prototype;pt(Ge,{instanceString:function(){return"animation"},hook:function(){var t=this.t;if(!t.hooked){var n=t.target.t.animation;(t.queue?n.queue:n.current).push(this),X(t.target)&&t.target.cy().addToAnimationPool(t.target),t.hooked=!0}return this},play:function(){var t=this.t;return 1===t.progress&&(t.progress=0),t.playing=!0,t.started=!1,t.stopped=!1,this.hook(),this},playing:function(){return this.t.playing},apply:function(){var t=this.t;return t.applying=!0,t.started=!1,t.stopped=!1,this.hook(),this},applying:function(){return this.t.applying},pause:function(){var t=this.t;return t.playing=!1,t.started=!1,this},stop:function(){var t=this.t;return t.playing=!1,t.started=!1,t.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(t){var n=this.t;return void 0===t?n.progress*n.duration:this.progress(t/n.duration)},progress:function(t){var n=this.t,r=n.playing;return void 0===t?n.progress:(r&&this.pause(),n.progress=t,n.started=!1,r&&this.play(),this)},completed:function(){return 1===this.t.progress},reverse:function(){var t=this.t,n=t.playing;n&&this.pause(),t.progress=1-t.progress,t.started=!1;var r=function(n,r){var e=t[n];null!=e&&(t[n]=t[r],t[r]=e)};if(r("zoom","startZoom"),r("pan","startPan"),r("position","startPosition"),t.style)for(var e=0;e<t.style.length;e++){var i=t.style[e],a=i.name,o=t.startStyle[a];t.startStyle[a]=i,t.style[e]=o}return n&&this.play(),this},promise:function(t){var n,r=this.t;if("frame"===t)n=r.frames;else n=r.completes;return new Ze(function(t,r){n.push(function(){t()})})}}),Ge.complete=Ge.completed,Ge.run=Ge.play,Ge.running=Ge.playing;var Ue,Ye,Xe,Qe,Je,ti,ni,ri,ei,ii,ai,oi,ui,si,fi,ci,li,vi,hi,di,gi,pi,yi,mi,bi,xi,wi,ki,Mi,Bi,Ci,Ai,Ti,Ei,Si,zi,Pi,Oi,Ni,Ri,Fi,Ii,Di,Li,ji,qi,_i,Vi,Wi,$i,Ki,Zi,Hi,Gi,Ui,Yi,Xi,Qi,Ji,ta,na,ra,ea,ia,aa,oa,ua,sa,fa,ca,la,va,ha,da,ga,pa,ya,ma,ba,xa,wa,ka,Ma,Ba,Ca,Aa,Ta={animated:function(){return function(){var t=this,n=void 0!==t.length?t:[t];if(!(this.t.cy||this).styleEnabled())return!1;var r=n[0];return r?r.t.animation.current.length>0:void 0}},clearQueue:function(){return function(){var t=this,n=void 0!==t.length?t:[t];if(!(this.t.cy||this).styleEnabled())return this;for(var r=0;r<n.length;r++){n[r].t.animation.queue=[]}return this}},delay:function(){return function(t,n){return(this.t.cy||this).styleEnabled()?this.animate({delay:t,duration:t,complete:n}):this}},delayAnimation:function(){return function(t,n){return(this.t.cy||this).styleEnabled()?this.animation({delay:t,duration:t,complete:n}):this}},animation:function(){return function(t,n){var r=this,e=void 0!==r.length,i=e?r:[r],a=this.t.cy||this,o=!e,u=!o;if(!a.styleEnabled())return this;var s=a.style();if(t=pt({},t,n),0===Object.keys(t).length)return new He(i[0],t);switch(void 0===t.duration&&(t.duration=400),t.duration){case"slow":t.duration=600;break;case"fast":t.duration=200}if(u&&(t.style=s.getPropsList(t.style||t.css),t.css=void 0),u&&null!=t.renderedPosition){var f=t.renderedPosition,c=a.pan(),l=a.zoom();t.position=Vn(f,l,c)}if(o&&null!=t.panBy){var v=t.panBy,h=a.pan();t.pan={x:h.x+v.x,y:h.y+v.y}}var d=t.center||t.centre;if(o&&null!=d){var g=a.getCenterPan(d.eles,t.zoom);null!=g&&(t.pan=g)}if(o&&null!=t.fit){var p=t.fit,y=a.getFitViewport(p.eles||p.boundingBox,p.padding);null!=y&&(t.pan=y.pan,t.zoom=y.zoom)}if(o&&G(t.zoom)){var m=a.getZoomedViewport(t.zoom);null!=m?(m.zoomed&&(t.zoom=m.zoom),m.panned&&(t.pan=m.pan)):t.zoom=null}return new He(i[0],t)}},animate:function(){return function(t,n){var r=this,e=void 0!==r.length?r:[r];if(!(this.t.cy||this).styleEnabled())return this;n&&(t=pt({},t,n));for(var i=0;i<e.length;i++){var a=e[i],o=a.animated()&&(void 0===t.queue||t.queue);a.animation(t,o?{queue:!0}:void 0).play()}return this}},stop:function(){return function(t,n){var r=this,e=void 0!==r.length?r:[r],i=this.t.cy||this;if(!i.styleEnabled())return this;for(var a=0;a<e.length;a++){for(var o=e[a].t,u=o.animation.current,s=0;s<u.length;s++){var f=u[s].t;n&&(f.duration=0)}t&&(o.animation.queue=[]),n||(o.animation.current=[])}return i.notify("draw"),this}}};function Ea(){if(Ye)return Ue;Ye=1;var t=Array.isArray;return Ue=t}function Sa(){if(ii)return ei;ii=1;var t,n=function(){if(ri)return ni;ri=1;var t=Bt()["__core-js_shared__"];return ni=t}(),r=(t=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||""))?"Symbol(src)_1."+t:"";return ei=function(t){return!!r&&r in t}}function za(){if(si)return ui;si=1;var t=function(){if(ti)return Je;ti=1;var t=Tt(),n=Mt();return Je=function(r){if(!n(r))return!1;var e=t(r);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}}(),n=Sa(),r=Mt(),e=function(){if(oi)return ai;oi=1;var t=Function.prototype.toString;return ai=function(n){if(null!=n){try{return t.call(n)}catch(r){}try{return n+""}catch(r){}}return""}}(),i=/^\[object .+?Constructor\]$/,a=Function.prototype,o=Object.prototype,u=a.toString,s=o.hasOwnProperty,f=RegExp("^"+u.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");return ui=function(a){return!(!r(a)||n(a))&&(t(a)?f:i).test(e(a))}}function Pa(){if(vi)return li;vi=1;var t=za(),n=ci?fi:(ci=1,fi=function(t,n){return null==t?void 0:t[n]});return li=function(r,e){var i=n(r,e);return t(i)?i:void 0}}function Oa(){if(di)return hi;di=1;var t=Pa()(Object,"create");return hi=t}function Na(){if(Ai)return Ci;Ai=1;var t=function(){if(pi)return gi;pi=1;var t=Oa();return gi=function(){this.__data__=t?t(null):{},this.size=0}}(),n=mi?yi:(mi=1,yi=function(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}),r=function(){if(xi)return bi;xi=1;var t=Oa(),n=Object.prototype.hasOwnProperty;return bi=function(r){var e=this.__data__;if(t){var i=e[r];return"__lodash_hash_undefined__"===i?void 0:i}return n.call(e,r)?e[r]:void 0}}(),e=function(){if(ki)return wi;ki=1;var t=Oa(),n=Object.prototype.hasOwnProperty;return wi=function(r){var e=this.__data__;return t?void 0!==e[r]:n.call(e,r)}}(),i=function(){if(Bi)return Mi;Bi=1;var t=Oa();return Mi=function(n,r){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=t&&void 0===r?"__lodash_hash_undefined__":r,this}}();function a(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=e,a.prototype.set=i,Ci=a}function Ra(){if(zi)return Si;return zi=1,Si=function(t,n){return t===n||t!=t&&n!=n}}function Fa(){if(Oi)return Pi;Oi=1;var t=Ra();return Pi=function(n,r){for(var e=n.length;e--;)if(t(n[e][0],r))return e;return-1}}function Ia(){if(Vi)return _i;Vi=1;var t=Ei?Ti:(Ei=1,Ti=function(){this.__data__=[],this.size=0}),n=function(){if(Ri)return Ni;Ri=1;var t=Fa(),n=Array.prototype.splice;return Ni=function(r){var e=this.__data__,i=t(e,r);return!(i<0||(i==e.length-1?e.pop():n.call(e,i,1),--this.size,0))}}(),r=function(){if(Ii)return Fi;Ii=1;var t=Fa();return Fi=function(n){var r=this.__data__,e=t(r,n);return e<0?void 0:r[e][1]}}(),e=function(){if(Li)return Di;Li=1;var t=Fa();return Di=function(n){return t(this.__data__,n)>-1}}(),i=function(){if(qi)return ji;qi=1;var t=Fa();return ji=function(n,r){var e=this.__data__,i=t(e,n);return i<0?(++this.size,e.push([n,r])):e[i][1]=r,this}}();function a(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=e,a.prototype.set=i,_i=a}function Da(){if(Zi)return Ki;Zi=1;var t=Na(),n=Ia(),r=function(){if($i)return Wi;$i=1;var t=Pa()(Bt(),"Map");return Wi=t}();return Ki=function(){this.size=0,this.__data__={hash:new t,map:new(r||n),string:new t}}}function La(){if(Yi)return Ui;Yi=1;var t=Gi?Hi:(Gi=1,Hi=function(t){var n=typeof t;return"string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==t:null===t});return Ui=function(n,r){var e=n.__data__;return t(r)?e["string"==typeof r?"string":"hash"]:e.map}}function ja(){if(oa)return aa;oa=1;var t=Da(),n=function(){if(Qi)return Xi;Qi=1;var t=La();return Xi=function(n){var r=t(this,n).delete(n);return this.size-=r?1:0,r}}(),r=function(){if(ta)return Ji;ta=1;var t=La();return Ji=function(n){return t(this,n).get(n)}}(),e=function(){if(ra)return na;ra=1;var t=La();return na=function(n){return t(this,n).has(n)}}(),i=function(){if(ia)return ea;ia=1;var t=La();return ea=function(n,r){var e=t(this,n),i=e.size;return e.set(n,r),this.size+=e.size==i?0:1,this}}();function a(t){var n=-1,r=null==t?0:t.length;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}return a.prototype.clear=t,a.prototype.delete=n,a.prototype.get=r,a.prototype.has=e,a.prototype.set=i,aa=a}function qa(){if(ca)return fa;ca=1;var t=function(){if(sa)return ua;sa=1;var t=ja();function n(r,e){if("function"!=typeof r||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var t=arguments,n=e?e.apply(this,t):t[0],a=i.cache;if(a.has(n))return a.get(n);var o=r.apply(this,t);return i.cache=a.set(n,o)||a,o};return i.cache=new(n.Cache||t),i}return n.Cache=t,ua=n}();return fa=function(n){var r=t(n,function(t){return 500===e.size&&e.clear(),t}),e=r.cache;return r}}function _a(){if(va)return la;va=1;var t=qa(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,e=t(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(n,function(t,n,i,a){e.push(i?a.replace(r,"$1"):n||t)}),e});return la=e}function Va(){if(da)return ha;return da=1,ha=function(t,n){for(var r=-1,e=null==t?0:t.length,i=Array(e);++r<e;)i[r]=n(t[r],r,t);return i}}function Wa(){if(ma)return ya;ma=1;var t=function(){if(pa)return ga;pa=1;var t=At(),n=Va(),r=Ea(),e=Et(),i=t?t.prototype:void 0,a=i?i.toString:void 0;return ga=function t(i){if("string"==typeof i)return i;if(r(i))return n(i,t)+"";if(e(i))return a?a.call(i):"";var o=i+"";return"0"==o&&1/i==-1/0?"-0":o},ga}();return ya=function(n){return null==n?"":t(n)}}function $a(){if(xa)return ba;xa=1;var t=Ea(),n=function(){if(Qe)return Xe;Qe=1;var t=Ea(),n=Et(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,e=/^\w*$/;return Xe=function(i,a){if(t(i))return!1;var o=typeof i;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=i&&!n(i))||e.test(i)||!r.test(i)||null!=a&&i in Object(a)}}(),r=_a(),e=Wa();return ba=function(i,a){return t(i)?i:n(i,a)?[i]:r(e(i))}}function Ka(){if(ka)return wa;ka=1;var t=Et();return wa=function(n){if("string"==typeof n||t(n))return n;var r=n+"";return"0"==r&&1/n==-1/0?"-0":r}}var Za,Ha,Ga,Ua,Ya,Xa,Qa,Ja,to,no,ro,eo,io=kt(function(){if(Aa)return Ca;Aa=1;var t=function(){if(Ba)return Ma;Ba=1;var t=$a(),n=Ka();return Ma=function(r,e){for(var i=0,a=(e=t(e,r)).length;null!=r&&i<a;)r=r[n(e[i++])];return i&&i==a?r:void 0}}();return Ca=function(n,r,e){var i=null==n?void 0:t(n,r);return void 0===i?e:i}}());function ao(){if(Ua)return Ga;Ua=1;var t=function(){if(Ha)return Za;Ha=1;var t=Pa(),n=function(){try{var n=t(Object,"defineProperty");return n({},"",{}),n}catch(r){}}();return Za=n}();return Ga=function(n,r,e){"__proto__"==r&&t?t(n,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[r]=e}}function oo(){if(no)return to;no=1;var t=function(){if(Xa)return Ya;Xa=1;var t=ao(),n=Ra(),r=Object.prototype.hasOwnProperty;return Ya=function(e,i,a){var o=e[i];r.call(e,i)&&n(o,a)&&(void 0!==a||i in e)||t(e,i,a)}}(),n=$a(),r=function(){if(Ja)return Qa;Ja=1;var t=/^(?:0|[1-9]\d*)$/;return Qa=function(n,r){var e=typeof n;return!!(r=null==r?9007199254740991:r)&&("number"==e||"symbol"!=e&&t.test(n))&&n>-1&&n%1==0&&n<r}}(),e=Mt(),i=Ka();return to=function(a,o,u,s){if(!e(a))return a;for(var f=-1,c=(o=n(o,a)).length,l=c-1,v=a;null!=v&&++f<c;){var h=i(o[f]),d=u;if("__proto__"===h||"constructor"===h||"prototype"===h)return a;if(f!=l){var g=v[h];void 0===(d=s?s(g,h,v):void 0)&&(d=e(g)?g:r(o[f+1])?[]:{})}t(v,h,d),v=v[h]}return a}}var uo,so,fo,co,lo=kt(function(){if(eo)return ro;eo=1;var t=oo();return ro=function(n,r,e){return null==n?n:t(n,r,e)}}());var vo=kt(function(){if(co)return fo;co=1;var t=Va(),n=so?uo:(so=1,uo=function(t,n){var r=-1,e=t.length;for(n||(n=Array(e));++r<e;)n[r]=t[r];return n}),r=Ea(),e=Et(),i=_a(),a=Ka(),o=Wa();return fo=function(u){return r(u)?t(u,a):e(u)?[u]:n(i(o(u)))}}()),ho={data:function(t){return t=pt({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(t){},beforeSet:function(t,n){},onSet:function(t){},canSet:function(t){return!0}},t),function(n,r){var e=t,a=this,o=void 0!==a.length,u=o?a:[a],s=o?a[0]:a;if(K(n)){var f,c=-1!==n.indexOf(".")&&vo(n);if(e.allowGetting&&void 0===r)return s&&(e.beforeGet(s),f=c&&void 0===s.t[e.field][n]?io(s.t[e.field],c):s.t[e.field][n]),f;if(e.allowSetting&&void 0!==r&&!e.immutableKeys[n]){var l=i({},n,r);e.beforeSet(a,l);for(var v=0,h=u.length;v<h;v++){var d=u[v];e.canSet(d)&&(c&&void 0===s.t[e.field][n]?lo(d.t[e.field],c,r):d.t[e.field][n]=r)}e.updateStyle&&a.updateStyle(),e.onSet(a),e.settingTriggersEvent&&a[e.triggerFnName](e.settingEvent)}}else if(e.allowSetting&&G(n)){var g,p,y=n,m=Object.keys(y);e.beforeSet(a,y);for(var b=0;b<m.length;b++){if(p=y[g=m[b]],!e.immutableKeys[g])for(var x=0;x<u.length;x++){var w=u[x];e.canSet(w)&&(w.t[e.field][g]=p)}}e.updateStyle&&a.updateStyle(),e.onSet(a),e.settingTriggersEvent&&a[e.triggerFnName](e.settingEvent)}else if(e.allowBinding&&Z(n)){var k=n;a.on(e.bindingEvent,k)}else if(e.allowGetting&&void 0===n){var M;return s&&(e.beforeGet(s),M=s.t[e.field]),M}return a}},removeData:function(t){return t=pt({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},t),function(n){var r=t,e=this,i=void 0!==e.length?e:[e];if(K(n)){for(var a=n.split(/\s+/),o=a.length,u=0;u<o;u++){var s=a[u];if(!rt(s))if(!r.immutableKeys[s])for(var f=0,c=i.length;f<c;f++)i[f].t[r.field][s]=void 0}r.triggerEvent&&e[r.triggerFnName](r.event)}else if(void 0===n){for(var l=0,v=i.length;l<v;l++)for(var h=i[l].t[r.field],d=Object.keys(h),g=0;g<d.length;g++){var p=d[g];!r.immutableKeys[p]&&(h[p]=void 0)}r.triggerEvent&&e[r.triggerFnName](r.event)}return e}}},go={};[Ta,ho,{eventAliasesOn:function(t){var n=t;n.addListener=n.listen=n.bind=n.on,n.unlisten=n.unbind=n.off=n.removeListener,n.trigger=n.emit,n.pon=n.promiseOn=function(t,n){var r=this,e=Array.prototype.slice.call(arguments,0);return new Ze(function(t,n){var i=e.concat([function(n){r.off.apply(r,a),t(n)}]),a=i.concat([]);r.on.apply(r,i)})}}}].forEach(function(t){pt(go,t)});var po={animate:go.animate(),animation:go.animation(),animated:go.animated(),clearQueue:go.clearQueue(),delay:go.delay(),delayAnimation:go.delayAnimation(),stop:go.stop()},yo={classes:function(t){var n=this;if(void 0===t){var r=[];return n[0].t.classes.forEach(function(t){return r.push(t)}),r}H(t)||(t=(t||"").match(/\S+/g)||[]);for(var e=[],i=new pn(t),a=0;a<n.length;a++){for(var o=n[a],u=o.t,s=u.classes,f=!1,c=0;c<t.length;c++){var l=t[c];if(!s.has(l)){f=!0;break}}f||(f=s.size!==t.length),f&&(u.classes=i,e.push(o))}return e.length>0&&this.spawn(e).updateStyle().emit("class"),n},addClass:function(t){return this.toggleClass(t,!0)},hasClass:function(t){var n=this[0];return null!=n&&n.t.classes.has(t)},toggleClass:function(t,n){H(t)||(t=t.match(/\S+/g)||[]);for(var r=this,e=void 0===n,i=[],a=0,o=r.length;a<o;a++)for(var u=r[a],s=u.t.classes,f=!1,c=0;c<t.length;c++){var l=t[c],v=s.has(l),h=!1;n||e&&!v?(s.add(l),h=!0):(!n||e&&v)&&(s.delete(l),h=!0),!f&&h&&(i.push(u),f=!0)}return i.length>0&&this.spawn(i).updateStyle().emit("class"),r},removeClass:function(t){return this.toggleClass(t,!1)},flashClass:function(t,n){var r=this;if(null==n)n=250;else if(0===n)return r;return r.addClass(t),setTimeout(function(){r.removeClass(t)},n),r}};yo.className=yo.classNames=yo.classes;var mo={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:ct,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};mo.variable="(?:[\\w-.]|(?:\\\\"+mo.metaChar+"))+",mo.className="(?:[\\w-]|(?:\\\\"+mo.metaChar+"))+",mo.value=mo.string+"|"+mo.number,mo.id=mo.variable,function(){var t,n,r;for(t=mo.comparatorOp.split("|"),r=0;r<t.length;r++)n=t[r],mo.comparatorOp+="|@"+n;for(t=mo.comparatorOp.split("|"),r=0;r<t.length;r++)(n=t[r]).indexOf("!")>=0||"="!==n&&(mo.comparatorOp+="|\\!"+n)}();var bo=0,xo=1,wo=2,ko=3,Mo=4,Bo=5,Co=6,Ao=7,To=8,Eo=9,So=10,zo=11,Po=12,Oo=13,No=14,Ro=15,Fo=16,Io=17,Do=18,Lo=19,jo=20,qo=[{selector:":selected",matches:function(t){return t.selected()}},{selector:":unselected",matches:function(t){return!t.selected()}},{selector:":selectable",matches:function(t){return t.selectable()}},{selector:":unselectable",matches:function(t){return!t.selectable()}},{selector:":locked",matches:function(t){return t.locked()}},{selector:":unlocked",matches:function(t){return!t.locked()}},{selector:":visible",matches:function(t){return t.visible()}},{selector:":hidden",matches:function(t){return!t.visible()}},{selector:":transparent",matches:function(t){return t.transparent()}},{selector:":grabbed",matches:function(t){return t.grabbed()}},{selector:":free",matches:function(t){return!t.grabbed()}},{selector:":removed",matches:function(t){return t.removed()}},{selector:":inside",matches:function(t){return!t.removed()}},{selector:":grabbable",matches:function(t){return t.grabbable()}},{selector:":ungrabbable",matches:function(t){return!t.grabbable()}},{selector:":animated",matches:function(t){return t.animated()}},{selector:":unanimated",matches:function(t){return!t.animated()}},{selector:":parent",matches:function(t){return t.isParent()}},{selector:":childless",matches:function(t){return t.isChildless()}},{selector:":child",matches:function(t){return t.isChild()}},{selector:":orphan",matches:function(t){return t.isOrphan()}},{selector:":nonorphan",matches:function(t){return t.isChild()}},{selector:":compound",matches:function(t){return t.isNode()?t.isParent():t.source().isParent()||t.target().isParent()}},{selector:":loop",matches:function(t){return t.isLoop()}},{selector:":simple",matches:function(t){return t.isSimple()}},{selector:":active",matches:function(t){return t.active()}},{selector:":inactive",matches:function(t){return!t.active()}},{selector:":backgrounding",matches:function(t){return t.backgrounding()}},{selector:":nonbackgrounding",matches:function(t){return!t.backgrounding()}}].sort(function(t,n){return function(t,n){return-1*gt(t,n)}(t.selector,n.selector)}),_o=function(){for(var t,n={},r=0;r<qo.length;r++)n[(t=qo[r]).selector]=t.matches;return n}(),Vo="("+qo.map(function(t){return t.selector}).join("|")+")",Wo=function(t){return t.replace(new RegExp("\\\\("+mo.metaChar+")","g"),function(t,n){return n})},$o=function(t,n,r){t[t.length-1]=r},Ko=[{name:"group",query:!0,regex:"("+mo.group+")",populate:function(t,n,r){var e=a(r,1)[0];n.checks.push({type:bo,value:"*"===e?e:e+"s"})}},{name:"state",query:!0,regex:Vo,populate:function(t,n,r){var e=a(r,1)[0];n.checks.push({type:Ao,value:e})}},{name:"id",query:!0,regex:"\\#("+mo.id+")",populate:function(t,n,r){var e=a(r,1)[0];n.checks.push({type:To,value:Wo(e)})}},{name:"className",query:!0,regex:"\\.("+mo.className+")",populate:function(t,n,r){var e=a(r,1)[0];n.checks.push({type:Eo,value:Wo(e)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+mo.variable+")\\s*\\]",populate:function(t,n,r){var e=a(r,1)[0];n.checks.push({type:Mo,field:Wo(e)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+mo.variable+")\\s*("+mo.comparatorOp+")\\s*("+mo.value+")\\s*\\]",populate:function(t,n,r){var e=a(r,3),i=e[0],o=e[1],u=e[2];u=null!=new RegExp("^"+mo.string+"$").exec(u)?u.substring(1,u.length-1):parseFloat(u),n.checks.push({type:ko,field:Wo(i),operator:o,value:u})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+mo.boolOp+")\\s*("+mo.variable+")\\s*\\]",populate:function(t,n,r){var e=a(r,2),i=e[0],o=e[1];n.checks.push({type:Bo,field:Wo(o),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+mo.meta+")\\s*("+mo.comparatorOp+")\\s*("+mo.number+")\\s*\\]\\]",populate:function(t,n,r){var e=a(r,3),i=e[0],o=e[1],u=e[2];n.checks.push({type:Co,field:Wo(i),operator:o,value:parseFloat(u)})}},{name:"nextQuery",separator:!0,regex:mo.separator,populate:function(t,n){var r=t.currentSubject,e=t.edgeCount,i=t.compoundCount,a=t[t.length-1];return null!=r&&(a.subject=r,t.currentSubject=null),a.edgeCount=e,a.compoundCount=i,t.edgeCount=0,t.compoundCount=0,t[t.length++]={checks:[]}}},{name:"directedEdge",separator:!0,regex:mo.directedEdge,populate:function(t,n){if(null==t.currentSubject){var r={checks:[]},e=n,i={checks:[]};return r.checks.push({type:zo,source:e,target:i}),$o(t,0,r),t.edgeCount++,i}var a={checks:[]},o=n,u={checks:[]};return a.checks.push({type:Po,source:o,target:u}),$o(t,0,a),t.edgeCount++,u}},{name:"undirectedEdge",separator:!0,regex:mo.undirectedEdge,populate:function(t,n){if(null==t.currentSubject){var r={checks:[]},e=n,i={checks:[]};return r.checks.push({type:So,nodes:[e,i]}),$o(t,0,r),t.edgeCount++,i}var a={checks:[]},o=n,u={checks:[]};return a.checks.push({type:No,node:o,neighbor:u}),$o(t,0,a),u}},{name:"child",separator:!0,regex:mo.child,populate:function(t,n){if(null==t.currentSubject){var r={checks:[]},e={checks:[]},i=t[t.length-1];return r.checks.push({type:Ro,parent:i,child:e}),$o(t,0,r),t.compoundCount++,e}if(t.currentSubject===n){var a={checks:[]},o=t[t.length-1],u={checks:[]},s={checks:[]},f={checks:[]},c={checks:[]};return a.checks.push({type:Lo,left:o,right:u,subject:s}),s.checks=n.checks,n.checks=[{type:jo}],c.checks.push({type:jo}),u.checks.push({type:Io,parent:c,child:f}),$o(t,0,a),t.currentSubject=s,t.compoundCount++,f}var l={checks:[]},v={checks:[]},h=[{type:Io,parent:l,child:v}];return l.checks=n.checks,n.checks=h,t.compoundCount++,v}},{name:"descendant",separator:!0,regex:mo.descendant,populate:function(t,n){if(null==t.currentSubject){var r={checks:[]},e={checks:[]},i=t[t.length-1];return r.checks.push({type:Fo,ancestor:i,descendant:e}),$o(t,0,r),t.compoundCount++,e}if(t.currentSubject===n){var a={checks:[]},o=t[t.length-1],u={checks:[]},s={checks:[]},f={checks:[]},c={checks:[]};return a.checks.push({type:Lo,left:o,right:u,subject:s}),s.checks=n.checks,n.checks=[{type:jo}],c.checks.push({type:jo}),u.checks.push({type:Do,ancestor:c,descendant:f}),$o(t,0,a),t.currentSubject=s,t.compoundCount++,f}var l={checks:[]},v={checks:[]},h=[{type:Do,ancestor:l,descendant:v}];return l.checks=n.checks,n.checks=h,t.compoundCount++,v}},{name:"subject",modifier:!0,regex:mo.subject,populate:function(t,n){if(null!=t.currentSubject&&t.currentSubject!==n)return en("Redefinition of subject in selector `"+t.toString()+"`"),!1;t.currentSubject=n;var r=t[t.length-1].checks[0],e=null==r?null:r.type;e===zo?r.type=Oo:e===So&&(r.type=No,r.node=r.nodes[1],r.neighbor=r.nodes[0],r.nodes=null)}}];Ko.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});var Zo=function(t){for(var n,r,e,i=0;i<Ko.length;i++){var a=Ko[i],o=a.name,u=t.match(a.regexObj);if(null!=u){r=u,n=a,e=o;var s=u[0];t=t.substring(s.length);break}}return{expr:n,match:r,name:e,remaining:t}},Ho={parse:function(t){var n=this,r=n.inputText=t,e=n[0]={checks:[]};for(n.length=1,r=function(t){var n=t.match(/^\s+/);if(n){var r=n[0];t=t.substring(r.length)}return t}(r);;){var i=Zo(r);if(null==i.expr)return en("The selector `"+t+"`is invalid"),!1;var a=i.match.slice(1),o=i.expr.populate(n,e,a);if(!1===o)return!1;if(null!=o&&(e=o),(r=i.remaining).match(/^\s*$/))break}var u=n[n.length-1];null!=n.currentSubject&&(u.subject=n.currentSubject),u.edgeCount=n.edgeCount,u.compoundCount=n.compoundCount;for(var s=0;s<n.length;s++){var f=n[s];if(f.compoundCount>0&&f.edgeCount>0)return en("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return en("The selector `"+t+"` is invalid because it uses multiple edge selectors"),!1;1===f.edgeCount&&en("The selector `"+t+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var t=function(t){return null==t?"":t},n=function(n){return K(n)?'"'+n+'"':t(n)},r=function(t){return" "+t+" "},e=function(i,a){return i.checks.reduce(function(o,u,s){return o+(a===i&&0===s?"$":"")+function(i,a){var o=i.type,u=i.value;switch(o){case bo:var s=t(u);return s.substring(0,s.length-1);case ko:var f=i.field,c=i.operator;return"["+f+r(t(c))+n(u)+"]";case Bo:var l=i.operator,v=i.field;return"["+t(l)+v+"]";case Mo:return"["+i.field+"]";case Co:var h=i.operator;return"[["+i.field+r(t(h))+n(u)+"]]";case Ao:return u;case To:return"#"+u;case Eo:return"."+u;case Io:case Ro:return e(i.parent,a)+r(">")+e(i.child,a);case Do:case Fo:return e(i.ancestor,a)+" "+e(i.descendant,a);case Lo:var d=e(i.left,a),g=e(i.subject,a),p=e(i.right,a);return d+(d.length>0?" ":"")+g+p;case jo:return""}}(u,a)},"")},i="",a=0;a<this.length;a++){var o=this[a];i+=e(o,o.subject),this.length>1&&a<this.length-1&&(i+=", ")}return this.toStringCache=i,i}},Go=function(t,n,r){var e,i,a,o=K(t),u=U(t),s=K(r),f=!1,c=!1,l=!1;switch(n.indexOf("!")>=0&&(n=n.replace("!",""),c=!0),n.indexOf("@")>=0&&(n=n.replace("@",""),f=!0),(o||s||f)&&(i=o||u?""+t:"",a=""+r),f&&(t=i=i.toLowerCase(),r=a=a.toLowerCase()),n){case"*=":e=i.indexOf(a)>=0;break;case"$=":e=i.indexOf(a,i.length-a.length)>=0;break;case"^=":e=0===i.indexOf(a);break;case"=":e=t===r;break;case">":l=!0,e=t>r;break;case">=":l=!0,e=t>=r;break;case"<":l=!0,e=t<r;break;case"<=":l=!0,e=t<=r;break;default:e=!1}return!c||null==t&&l||(e=!e),e},Uo=function(t,n){return t.data(n)},Yo=[],Xo=function(t,n){return t.checks.every(function(t){return Yo[t.type](t,n)})};Yo[bo]=function(t,n){var r=t.value;return"*"===r||r===n.group()},Yo[Ao]=function(t,n){return function(t,n){return _o[t](n)}(t.value,n)},Yo[To]=function(t,n){var r=t.value;return n.id()===r},Yo[Eo]=function(t,n){var r=t.value;return n.hasClass(r)},Yo[Co]=function(t,n){var r=t.field,e=t.operator,i=t.value;return Go(function(t,n){return t[n]()}(n,r),e,i)},Yo[ko]=function(t,n){var r=t.field,e=t.operator,i=t.value;return Go(Uo(n,r),e,i)},Yo[Bo]=function(t,n){var r=t.field,e=t.operator;return function(t,n){switch(n){case"?":return!!t;case"!":return!t;case"^":return void 0===t}}(Uo(n,r),e)},Yo[Mo]=function(t,n){var r=t.field;return t.operator,void 0!==Uo(n,r)},Yo[So]=function(t,n){var r=t.nodes[0],e=t.nodes[1],i=n.source(),a=n.target();return Xo(r,i)&&Xo(e,a)||Xo(e,i)&&Xo(r,a)},Yo[No]=function(t,n){return Xo(t.node,n)&&n.neighborhood().some(function(n){return n.isNode()&&Xo(t.neighbor,n)})},Yo[zo]=function(t,n){return Xo(t.source,n.source())&&Xo(t.target,n.target())},Yo[Po]=function(t,n){return Xo(t.source,n)&&n.outgoers().some(function(n){return n.isNode()&&Xo(t.target,n)})},Yo[Oo]=function(t,n){return Xo(t.target,n)&&n.incomers().some(function(n){return n.isNode()&&Xo(t.source,n)})},Yo[Ro]=function(t,n){return Xo(t.child,n)&&Xo(t.parent,n.parent())},Yo[Io]=function(t,n){return Xo(t.parent,n)&&n.children().some(function(n){return Xo(t.child,n)})},Yo[Fo]=function(t,n){return Xo(t.descendant,n)&&n.ancestors().some(function(n){return Xo(t.ancestor,n)})},Yo[Do]=function(t,n){return Xo(t.ancestor,n)&&n.descendants().some(function(n){return Xo(t.descendant,n)})},Yo[Lo]=function(t,n){return Xo(t.subject,n)&&Xo(t.left,n)&&Xo(t.right,n)},Yo[jo]=function(){return!0},Yo[xo]=function(t,n){return t.value.has(n)},Yo[wo]=function(t,n){return(0,t.value)(n)};var Qo=function(t){this.inputText=t,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==t||K(t)&&t.match(/^\s*$/)||(X(t)?this.addQuery({checks:[{type:xo,value:t.collection()}]}):Z(t)?this.addQuery({checks:[{type:wo,value:t}]}):K(t)?this.parse(t)||(this.invalid=!0):nn("A selector must be created from a string; found "))},Jo=Qo.prototype;[Ho,{matches:function(t){for(var n=0;n<this.length;n++){var r=this[n];if(Xo(r,t))return!0}return!1},filter:function(t){var n=this;if(1===n.length&&1===n[0].checks.length&&n[0].checks[0].type===To)return t.getElementById(n[0].checks[0].value).collection();var r=function(t){for(var r=0;r<n.length;r++){var e=n[r];if(Xo(e,t))return!0}return!1};return null==n.text()&&(r=function(){return!0}),t.filter(r)}}].forEach(function(t){return pt(Jo,t)}),Jo.text=function(){return this.inputText},Jo.size=function(){return this.length},Jo.eq=function(t){return this[t]},Jo.sameText=function(t){return!this.invalid&&!t.invalid&&this.text()===t.text()},Jo.addQuery=function(t){this[this.length++]=t},Jo.selector=Jo.toString;var tu={allAre:function(t){var n=new Qo(t);return this.every(function(t){return n.matches(t)})},is:function(t){var n=new Qo(t);return this.some(function(t){return n.matches(t)})},some:function(t,n){for(var r=0;r<this.length;r++){if(n?t.apply(n,[this[r],r,this]):t(this[r],r,this))return!0}return!1},every:function(t,n){for(var r=0;r<this.length;r++){if(!(n?t.apply(n,[this[r],r,this]):t(this[r],r,this)))return!1}return!0},same:function(t){if(this===t)return!0;t=this.cy().collection(t);var n=this.length;return n===t.length&&(1===n?this[0]===t[0]:this.every(function(n){return t.hasElementWithId(n.id())}))},anySame:function(t){return t=this.cy().collection(t),this.some(function(n){return t.hasElementWithId(n.id())})},allAreNeighbors:function(t){t=this.cy().collection(t);var n=this.neighborhood();return t.every(function(t){return n.hasElementWithId(t.id())})},contains:function(t){t=this.cy().collection(t);var n=this;return t.every(function(t){return n.hasElementWithId(t.id())})}};tu.allAreNeighbours=tu.allAreNeighbors,tu.has=tu.contains,tu.equal=tu.equals=tu.same;var nu,ru,eu=function(t,n){return function(r,e,i,a){var o,u=r,s=this;if(null==u?o="":X(u)&&1===u.length&&(o=u.id()),1===s.length&&o){var f=s[0].t,c=f.traversalCache=f.traversalCache||{},l=c[n]=c[n]||[],v=Wt(o),h=l[v];return h||(l[v]=t.call(s,r,e,i,a))}return t.call(s,r,e,i,a)}},iu={parent:function(t){var n=[];if(1===this.length){var r=this[0].t.parent;if(r)return r}for(var e=0;e<this.length;e++){var i=this[e].t.parent;i&&n.push(i)}return this.spawn(n,!0).filter(t)},parents:function(t){for(var n=[],r=this.parent();r.nonempty();){for(var e=0;e<r.length;e++){var i=r[e];n.push(i)}r=r.parent()}return this.spawn(n,!0).filter(t)},commonAncestors:function(t){for(var n,r=0;r<this.length;r++){var e=this[r].parents();n=(n=n||e).intersect(e)}return n.filter(t)},orphans:function(t){return this.stdFilter(function(t){return t.isOrphan()}).filter(t)},nonorphans:function(t){return this.stdFilter(function(t){return t.isChild()}).filter(t)},children:eu(function(t){for(var n=[],r=0;r<this.length;r++)for(var e=this[r].t.children,i=0;i<e.length;i++)n.push(e[i]);return this.spawn(n,!0).filter(t)},"children"),siblings:function(t){return this.parent().children().not(this).filter(t)},isParent:function(){var t=this[0];if(t)return t.isNode()&&0!==t.t.children.length},isChildless:function(){var t=this[0];if(t)return t.isNode()&&0===t.t.children.length},isChild:function(){var t=this[0];if(t)return t.isNode()&&null!=t.t.parent},isOrphan:function(){var t=this[0];if(t)return t.isNode()&&null==t.t.parent},descendants:function(t){var n=[];return function t(r){for(var e=0;e<r.length;e++){var i=r[e];n.push(i),i.children().nonempty()&&t(i.children())}}(this.children()),this.spawn(n,!0).filter(t)}};function au(t,n,r,e){for(var i=[],a=new pn,o=t.cy().hasCompoundNodes(),u=0;u<t.length;u++){var s=t[u];r?i.push(s):o&&e(i,a,s)}for(;i.length>0;){var f=i.shift();n(f),a.add(f.id()),o&&e(i,a,f)}return t}function ou(t,n,r){if(r.isParent())for(var e=r.t.children,i=0;i<e.length;i++){var a=e[i];n.has(a.id())||t.push(a)}}function uu(t,n,r){if(r.isChild()){var e=r.t.parent;n.has(e.id())||t.push(e)}}function su(t,n,r){uu(t,n,r),ou(t,n,r)}iu.forEachDown=function(t){return au(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],ou)},iu.forEachUp=function(t){return au(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],uu)},iu.forEachUpAndDown=function(t){return au(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],su)},iu.ancestors=iu.parents,(nu=ru={data:go.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:go.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:go.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:go.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:go.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:go.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var t=this[0];if(t)return t.t.data.id}}).attr=nu.data,nu.removeAttr=nu.removeData;var fu,cu,lu=ru,vu={};function hu(t){return function(n){var r=this;if(void 0===n&&(n=!0),0!==r.length&&r.isNode()&&!r.removed()){for(var e=0,i=r[0],a=i.t.edges,o=0;o<a.length;o++){var u=a[o];!n&&u.isLoop()||(e+=t(i,u))}return e}}}function du(t,n){return function(r){for(var e,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][t](r);void 0===o||void 0!==e&&!n(o,e)||(e=o)}return e}}pt(vu,{degree:hu(function(t,n){return n.source().same(n.target())?2:1}),indegree:hu(function(t,n){return n.target().same(t)?1:0}),outdegree:hu(function(t,n){return n.source().same(t)?1:0})}),pt(vu,{minDegree:du("degree",function(t,n){return t<n}),maxDegree:du("degree",function(t,n){return t>n}),minIndegree:du("indegree",function(t,n){return t<n}),maxIndegree:du("indegree",function(t,n){return t>n}),minOutdegree:du("outdegree",function(t,n){return t<n}),maxOutdegree:du("outdegree",function(t,n){return t>n})}),pt(vu,{totalDegree:function(t){for(var n=0,r=this.nodes(),e=0;e<r.length;e++)n+=r[e].degree(t);return n}});var gu=function(t,n,r){for(var e=0;e<t.length;e++){var i=t[e];if(!i.locked()){var a=i.t.position,o={x:null!=n.x?n.x-a.x:0,y:null!=n.y?n.y-a.y:0};!i.isParent()||0===o.x&&0===o.y||i.children().shift(o,r),i.dirtyBoundingBoxCache()}}},pu={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(t){t.updateCompoundBounds()},beforeSet:function(t,n){gu(t,n,!1)},onSet:function(t){t.dirtyCompoundBoundsCache()},canSet:function(t){return!t.locked()}};fu=cu={position:go.data(pu),silentPosition:go.data(pt({},pu,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(t,n){gu(t,n,!0)},onSet:function(t){t.dirtyCompoundBoundsCache()}})),positions:function(t,n){if(G(t))n?this.silentPosition(t):this.position(t);else if(Z(t)){var r=t,e=this.cy();e.startBatch();for(var i=0;i<this.length;i++){var a,o=this[i];(a=r(o,i))&&(n?o.silentPosition(a):o.position(a))}e.endBatch()}return this},silentPositions:function(t){return this.positions(t,!0)},shift:function(t,n,r){var e;if(G(t)?(e={x:U(t.x)?t.x:0,y:U(t.y)?t.y:0},r=n):K(t)&&U(n)&&((e={x:0,y:0})[t]=n),null!=e){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var u=o.position(),s={x:u.x+e.x,y:u.y+e.y};r?o.silentPosition(s):o.position(s)}}i.endBatch()}return this},silentShift:function(t,n){return G(t)?this.shift(t,!0):K(t)&&U(n)&&this.shift(t,n,!0),this},renderedPosition:function(t,n){var r=this[0],e=this.cy(),i=e.zoom(),a=e.pan(),o=G(t)?t:void 0,u=void 0!==o||void 0!==n&&K(t);if(r&&r.isNode()){if(!u){var s=r.position();return o=_n(s,i,a),void 0===t?o:o[t]}for(var f=0;f<this.length;f++){var c=this[f];void 0!==n?c.position(t,(n-a[t])/i):void 0!==o&&c.position(Vn(o,i,a))}}else if(!u)return;return this},relativePosition:function(t,n){var r=this[0],e=this.cy(),i=G(t)?t:void 0,a=void 0!==i||void 0!==n&&K(t),o=e.hasCompoundNodes();if(r&&r.isNode()){if(!a){var u=r.position(),s=o?r.parent():null,f=s&&s.length>0,c=f;f&&(s=s[0]);var l=c?s.position():{x:0,y:0};return i={x:u.x-l.x,y:u.y-l.y},void 0===t?i:i[t]}for(var v=0;v<this.length;v++){var h=this[v],d=o?h.parent():null,g=d&&d.length>0,p=g;g&&(d=d[0]);var y=p?d.position():{x:0,y:0};void 0!==n?h.position(t,n+y[t]):void 0!==i&&h.position({x:i.x+y.x,y:i.y+y.y})}}else if(!a)return;return this}},fu.modelPosition=fu.point=fu.position,fu.modelPositions=fu.points=fu.positions,fu.renderedPoint=fu.renderedPosition,fu.relativePoint=fu.relativePosition;var yu,mu,bu=cu;yu=mu={},mu.renderedBoundingBox=function(t){var n=this.boundingBox(t),r=this.cy(),e=r.zoom(),i=r.pan(),a=n.x1*e+i.x,o=n.x2*e+i.x,u=n.y1*e+i.y,s=n.y2*e+i.y;return{x1:a,x2:o,y1:u,y2:s,w:o-a,h:s-u}},mu.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.cy();return n.styleEnabled()&&n.hasCompoundNodes()?(this.forEachUp(function(n){if(n.isParent()){var r=n.t;r.compoundBoundsClean=!1,r.bbCache=null,t||n.emitAndNotify("bounds")}}),this):this},mu.updateCompoundBounds=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.cy();if(!n.styleEnabled()||!n.hasCompoundNodes())return this;if(!t&&n.batching())return this;function r(t){if(t.isParent()){var n=t.t,r=t.children(),e="include"===t.pstyle("compound-sizing-wrt-labels").value,i={width:{val:t.pstyle("min-width").pfValue,left:t.pstyle("min-width-bias-left"),right:t.pstyle("min-width-bias-right")},height:{val:t.pstyle("min-height").pfValue,top:t.pstyle("min-height-bias-top"),bottom:t.pstyle("min-height-bias-bottom")}},a=r.boundingBox({includeLabels:e,includeOverlays:!1,useCache:!1}),o=n.position;0!==a.w&&0!==a.h||((a={w:t.pstyle("width").pfValue,h:t.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var u=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(u=100*u/i.width.val);var s=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(s=100*s/i.width.val);var f=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(f=100*f/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var l=y(i.width.val-a.w,u,s),v=l.biasDiff,h=l.biasComplementDiff,d=y(i.height.val-a.h,f,c),g=d.biasDiff,p=d.biasComplementDiff;n.autoPadding=function(t,n,r,e){if("%"!==r.units)return"px"===r.units?r.pfValue:0;switch(e){case"width":return t>0?r.pfValue*t:0;case"height":return n>0?r.pfValue*n:0;case"average":return t>0&&n>0?r.pfValue*(t+n)/2:0;case"min":return t>0&&n>0?t>n?r.pfValue*n:r.pfValue*t:0;case"max":return t>0&&n>0?t>n?r.pfValue*t:r.pfValue*n:0;default:return 0}}(a.w,a.h,t.pstyle("padding"),t.pstyle("padding-relative-to").value),n.autoWidth=Math.max(a.w,i.width.val),o.x=(-v+a.x1+a.x2+h)/2,n.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+p)/2}function y(t,n,r){var e=0,i=0,a=n+r;return t>0&&a>0&&(e=n/a*t,i=r/a*t),{biasDiff:e,biasComplementDiff:i}}}for(var e=0;e<this.length;e++){var i=this[e],a=i.t;a.compoundBoundsClean&&!t||(r(i),n.batching()||(a.compoundBoundsClean=!0))}return this};var xu=function(t){return t===1/0||t===-1/0?0:t},wu=function(t,n,r,e,i){e-n!==0&&i-r!==0&&null!=n&&null!=r&&null!=e&&null!=i&&(t.x1=n<t.x1?n:t.x1,t.x2=e>t.x2?e:t.x2,t.y1=r<t.y1?r:t.y1,t.y2=i>t.y2?i:t.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1)},ku=function(t,n){return null==n?t:wu(t,n.x1,n.y1,n.x2,n.y2)},Mu=function(t,n,r){return vn(t,n,r)},Bu=function(t,n,r){if(!n.cy().headless()){var e,i,a=n.t,o=a.rstyle,u=o.arrowWidth/2;if("none"!==n.pstyle(r+"-arrow-shape").value){"source"===r?(e=o.srcX,i=o.srcY):"target"===r?(e=o.tgtX,i=o.tgtY):(e=o.midX,i=o.midY);var s=a.arrowBounds=a.arrowBounds||{},f=s[r]=s[r]||{};f.x1=e-u,f.y1=i-u,f.x2=e+u,f.y2=i+u,f.w=f.x2-f.x1,f.h=f.y2-f.y1,rr(f,1),wu(t,f.x1,f.y1,f.x2,f.y2)}}},Cu=function(t,n,r){if(!n.cy().headless()){var e;e=r?r+"-":"";var i=n.t,a=i.rstyle;if(n.pstyle(e+"label").strValue){var o,u,s,f,c=n.pstyle("text-halign"),l=n.pstyle("text-valign"),v=Mu(a,"labelWidth",r),h=Mu(a,"labelHeight",r),d=Mu(a,"labelX",r),g=Mu(a,"labelY",r),p=n.pstyle(e+"text-margin-x").pfValue,y=n.pstyle(e+"text-margin-y").pfValue,m=n.isEdge(),b=n.pstyle(e+"text-rotation"),x=n.pstyle("text-outline-width").pfValue,w=n.pstyle("text-border-width").pfValue/2,k=n.pstyle("text-background-padding").pfValue,M=h,B=v,C=B/2,A=M/2;if(m)o=d-C,u=d+C,s=g-A,f=g+A;else{switch(c.value){case"left":o=d-B,u=d;break;case"center":o=d-C,u=d+C;break;case"right":o=d,u=d+B}switch(l.value){case"top":s=g-M,f=g;break;case"center":s=g-A,f=g+A;break;case"bottom":s=g,f=g+M}}var T=p-Math.max(x,w)-k-2,E=p+Math.max(x,w)+k+2,S=y-Math.max(x,w)-k-2,z=y+Math.max(x,w)+k+2;o+=T,u+=E,s+=S,f+=z;var P=r||"main",O=i.labelBounds,N=O[P]=O[P]||{};N.x1=o,N.y1=s,N.x2=u,N.y2=f,N.w=u-o,N.h=f-s,N.leftPad=T,N.rightPad=E,N.topPad=S,N.botPad=z;var R=m&&"autorotate"===b.strValue,F=null!=b.pfValue&&0!==b.pfValue;if(R||F){var I=R?Mu(i.rstyle,"labelAngle",r):b.pfValue,D=Math.cos(I),L=Math.sin(I),j=(o+u)/2,q=(s+f)/2;if(!m){switch(c.value){case"left":j=u;break;case"right":j=o}switch(l.value){case"top":q=f;break;case"bottom":q=s}}var _=function(t,n){return{x:(t-=j)*D-(n-=q)*L+j,y:t*L+n*D+q}},V=_(o,s),W=_(o,f),$=_(u,s),K=_(u,f);o=Math.min(V.x,W.x,$.x,K.x),u=Math.max(V.x,W.x,$.x,K.x),s=Math.min(V.y,W.y,$.y,K.y),f=Math.max(V.y,W.y,$.y,K.y)}var Z=P+"Rot",H=O[Z]=O[Z]||{};H.x1=o,H.y1=s,H.x2=u,H.y2=f,H.w=u-o,H.h=f-s,wu(t,o,s,u,f),wu(i.labelBounds.all,o,s,u,f)}return t}},Au=function(t,n){if(!n.cy().headless()){var r=n.pstyle("outline-opacity").value,e=n.pstyle("outline-width").value+n.pstyle("outline-offset").value;Tu(t,n,r,e,"outside",e/2)}},Tu=function(t,n,r,e,i,a){if(!(0===r||e<=0||"inside"===i)){var o=n.cy(),u=n.pstyle("shape").value,s=o.renderer().nodeShapes[u],f=n.position(),c=f.x,l=f.y,v=n.width(),h=n.height();if(s.hasMiterBounds){"center"===i&&(e/=2);var d=s.miterBounds(c,l,v,h,e);ku(t,d)}else null!=a&&a>0&&er(t,[a,a,a,a])}},Eu=function(t,n){var r,e,i,a,o,u,s,f=t.t.cy,c=f.styleEnabled(),l=f.headless(),v=Jn(),h=t.t,d=t.isNode(),g=t.isEdge(),p=h.rstyle,y=d&&c?t.pstyle("bounds-expansion").pfValue:[0],m=function(t){return"none"!==t.pstyle("display").value},b=!c||m(t)&&(!g||m(t.source())&&m(t.target()));if(b){var x=0;c&&n.includeOverlays&&0!==t.pstyle("overlay-opacity").value&&(x=t.pstyle("overlay-padding").value);var w=0;c&&n.includeUnderlays&&0!==t.pstyle("underlay-opacity").value&&(w=t.pstyle("underlay-padding").value);var k=Math.max(x,w),M=0;if(c&&(M=t.pstyle("width").pfValue/2),d&&n.includeNodes){var B=t.position();o=B.x,u=B.y;var C=t.outerWidth()/2,A=t.outerHeight()/2;wu(v,r=o-C,i=u-A,e=o+C,a=u+A),c&&Au(v,t),c&&n.includeOutlines&&!l&&Au(v,t),c&&function(t,n){if(!n.cy().headless()){var r=n.pstyle("border-opacity").value,e=n.pstyle("border-width").pfValue,i=n.pstyle("border-position").value;Tu(t,n,r,e,i)}}(v,t)}else if(g&&n.includeEdges)if(c&&!l){var T=t.pstyle("curve-style").strValue;if(r=Math.min(p.srcX,p.midX,p.tgtX),e=Math.max(p.srcX,p.midX,p.tgtX),i=Math.min(p.srcY,p.midY,p.tgtY),a=Math.max(p.srcY,p.midY,p.tgtY),wu(v,r-=M,i-=M,e+=M,a+=M),"haystack"===T){var E=p.haystackPts;if(E&&2===E.length){if(r=E[0].x,i=E[0].y,r>(e=E[1].x)){var S=r;r=e,e=S}if(i>(a=E[1].y)){var z=i;i=a,a=z}wu(v,r-M,i-M,e+M,a+M)}}else if("bezier"===T||"unbundled-bezier"===T||ft(T,"segments")||ft(T,"taxi")){var P;switch(T){case"bezier":case"unbundled-bezier":P=p.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":P=p.linePts}if(null!=P)for(var O=0;O<P.length;O++){var N=P[O];r=N.x-M,e=N.x+M,i=N.y-M,a=N.y+M,wu(v,r,i,e,a)}}}else{var R=t.source().position(),F=t.target().position();if((r=R.x)>(e=F.x)){var I=r;r=e,e=I}if((i=R.y)>(a=F.y)){var D=i;i=a,a=D}wu(v,r-=M,i-=M,e+=M,a+=M)}if(c&&n.includeEdges&&g&&(Bu(v,t,"mid-source"),Bu(v,t,"mid-target"),Bu(v,t,"source"),Bu(v,t,"target")),c)if("yes"===t.pstyle("ghost").value){var L=t.pstyle("ghost-offset-x").pfValue,j=t.pstyle("ghost-offset-y").pfValue;wu(v,v.x1+L,v.y1+j,v.x2+L,v.y2+j)}var q=h.bodyBounds=h.bodyBounds||{};ir(q,v),er(q,y),rr(q,1),c&&(r=v.x1,e=v.x2,i=v.y1,a=v.y2,wu(v,r-k,i-k,e+k,a+k));var _=h.overlayBounds=h.overlayBounds||{};ir(_,v),er(_,y),rr(_,1);var V=h.labelBounds=h.labelBounds||{};null!=V.all?((s=V.all).x1=1/0,s.y1=1/0,s.x2=-1/0,s.y2=-1/0,s.w=0,s.h=0):V.all=Jn(),c&&n.includeLabels&&(n.includeMainLabels&&Cu(v,t,null),g&&(n.includeSourceLabels&&Cu(v,t,"source"),n.includeTargetLabels&&Cu(v,t,"target")))}return v.x1=xu(v.x1),v.y1=xu(v.y1),v.x2=xu(v.x2),v.y2=xu(v.y2),v.w=xu(v.x2-v.x1),v.h=xu(v.y2-v.y1),v.w>0&&v.h>0&&b&&(er(v,y),rr(v,1)),v},Su=function(t){var n=0,r=function(t){return(t?1:0)<<n++},e=0;return e+=r(t.incudeNodes),e+=r(t.includeEdges),e+=r(t.includeLabels),e+=r(t.includeMainLabels),e+=r(t.includeSourceLabels),e+=r(t.includeTargetLabels),e+=r(t.includeOverlays),e+=r(t.includeOutlines)},zu=function(t){var n=function(t){return Math.round(t)};if(t.isEdge()){var r=t.source().position(),e=t.target().position();return Vt([n(r.x),n(r.y),n(e.x),n(e.y)])}var i=t.position();return Vt([n(i.x),n(i.y)])},Pu=function(t,n){var r,e=t.t,i=t.isEdge(),a=(null==n?Nu:Su(n))===Nu;if(null==e.bbCache?(r=Eu(t,Ou),e.bbCache=r,e.bbCachePosKey=zu(t)):r=e.bbCache,!a){var o=t.isNode();r=Jn(),(n.includeNodes&&o||n.includeEdges&&!o)&&(n.includeOverlays?ku(r,e.overlayBounds):ku(r,e.bodyBounds)),n.includeLabels&&(n.includeMainLabels&&(!i||n.includeSourceLabels&&n.includeTargetLabels)?ku(r,e.labelBounds.all):(n.includeMainLabels&&ku(r,e.labelBounds.mainRot),n.includeSourceLabels&&ku(r,e.labelBounds.sourceRot),n.includeTargetLabels&&ku(r,e.labelBounds.targetRot))),r.w=r.x2-r.x1,r.h=r.y2-r.y1}return r},Ou={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},Nu=Su(Ou),Ru=fn(Ou);mu.boundingBox=function(t){var n,r=void 0===t||void 0===t.useCache||!0===t.useCache,e=it(function(t){var n=t.t;return null==n.bbCache||n.styleDirty||n.bbCachePosKey!==zu(t)},function(t){return t.id()});if(r&&1===this.length&&!e(this[0]))t=void 0===t?Ou:Ru(t),n=Pu(this[0],t);else{n=Jn();var i=Ru(t=t||Ou),a=this,o=a.cy().styleEnabled();this.edges().forEach(e),this.nodes().forEach(e),o&&this.recalculateRenderedStyle(r),this.updateCompoundBounds(!r);for(var u=0;u<a.length;u++){var s=a[u];e(s)&&s.dirtyBoundingBoxCache(),ku(n,Pu(s,i))}}return n.x1=xu(n.x1),n.y1=xu(n.y1),n.x2=xu(n.x2),n.y2=xu(n.y2),n.w=xu(n.x2-n.x1),n.h=xu(n.y2-n.y1),n},mu.dirtyBoundingBoxCache=function(){for(var t=0;t<this.length;t++){var n=this[t].t;n.bbCache=null,n.bbCachePosKey=null,n.bodyBounds=null,n.overlayBounds=null,n.labelBounds.all=null,n.labelBounds.source=null,n.labelBounds.target=null,n.labelBounds.main=null,n.labelBounds.sourceRot=null,n.labelBounds.targetRot=null,n.labelBounds.mainRot=null,n.arrowBounds.source=null,n.arrowBounds.target=null,n.arrowBounds["mid-source"]=null,n.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},mu.boundingBoxAt=function(t){var n=this.nodes(),r=this.cy(),e=r.hasCompoundNodes(),i=r.collection();if(e&&(i=n.filter(function(t){return t.isParent()}),n=n.not(i)),G(t)){var a=t;t=function(){return a}}r.startBatch(),n.forEach(function(n,r){return n.t.bbAtOldPos=t(n,r)}).silentPositions(t),e&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0));var o=function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}}(this.boundingBox({useCache:!1}));return n.silentPositions(function(t){return t.t.bbAtOldPos}),e&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0)),r.endBatch(),o},yu.boundingbox=yu.bb=yu.boundingBox,yu.renderedBoundingbox=yu.renderedBoundingBox;var Fu,Iu,Du=mu;Fu=Iu={};var Lu=function(t){t.uppercaseName=st(t.name),t.autoName="auto"+t.uppercaseName,t.labelName="label"+t.uppercaseName,t.outerName="outer"+t.uppercaseName,t.uppercaseOuterName=st(t.outerName),Fu[t.name]=function(){var n=this[0],r=n.t,e=r.cy.t.styleEnabled;if(n){if(e){if(n.isParent())return n.updateCompoundBounds(),r[t.autoName]||0;var i=n.pstyle(t.name);return"label"===i.strValue?(n.recalculateRenderedStyle(),r.rstyle[t.labelName]||0):i.pfValue}return 1}},Fu["outer"+t.uppercaseName]=function(){var n=this[0],r=n.t.cy.t.styleEnabled;if(n){if(r){var e=n[t.name](),i=n.pstyle("border-position").value;return e+("center"===i?n.pstyle("border-width").pfValue:"outside"===i?2*n.pstyle("border-width").pfValue:0)+2*n.padding()}return 1}},Fu["rendered"+t.uppercaseName]=function(){var n=this[0];if(n)return n[t.name]()*this.cy().zoom()},Fu["rendered"+t.uppercaseOuterName]=function(){var n=this[0];if(n)return n[t.outerName]()*this.cy().zoom()}};Lu({name:"width"}),Lu({name:"height"}),Iu.padding=function(){var t=this[0],n=t.t;return t.isParent()?(t.updateCompoundBounds(),void 0!==n.autoPadding?n.autoPadding:t.pstyle("padding").pfValue):t.pstyle("padding").pfValue},Iu.paddedHeight=function(){var t=this[0];return t.height()+2*t.padding()},Iu.paddedWidth=function(){var t=this[0];return t.width()+2*t.padding()};var ju=Iu,qu={controlPoints:{get:function(t){return t.renderer().getControlPoints(t)},mult:!0},segmentPoints:{get:function(t){return t.renderer().getSegmentPoints(t)},mult:!0},sourceEndpoint:{get:function(t){return t.renderer().getSourceEndpoint(t)}},targetEndpoint:{get:function(t){return t.renderer().getTargetEndpoint(t)}},midpoint:{get:function(t){return t.renderer().getEdgeMidpoint(t)}}},_u=Object.keys(qu).reduce(function(t,n){var r=qu[n],e=function(t){return"rendered"+t[0].toUpperCase()+t.substr(1)}(n);return t[n]=function(){return function(t,n){if(t.isEdge()&&t.takesUpSpace())return n(t)}(this,r.get)},r.mult?t[e]=function(){return function(t,n){if(t.isEdge()&&t.takesUpSpace()){var r=t.cy(),e=r.pan(),i=r.zoom();return n(t).map(function(t){return _n(t,i,e)})}}(this,r.get)}:t[e]=function(){return function(t,n){if(t.isEdge()&&t.takesUpSpace()){var r=t.cy();return _n(n(t),r.zoom(),r.pan())}}(this,r.get)},t},{}),Vu=pt({},bu,Du,ju,_u),Wu=function(t,n){this.recycle(t,n)};function $u(){return!1}function Ku(){return!0}Wu.prototype={instanceString:function(){return"event"},recycle:function(t,n){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=$u,null!=t&&t.preventDefault?(this.type=t.type,this.isDefaultPrevented=t.defaultPrevented?Ku:$u):null!=t&&t.type?n=t:this.type=t,null!=n&&(this.originalEvent=n.originalEvent,this.type=null!=n.type?n.type:this.type,this.cy=n.cy,this.target=n.target,this.position=n.position,this.renderedPosition=n.renderedPosition,this.namespace=n.namespace,this.layout=n.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var r=this.position,e=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:r.x*e+i.x,y:r.y*e+i.y}}this.timeStamp=t&&t.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=Ku;var t=this.originalEvent;t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Ku;var t=this.originalEvent;t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Ku,this.stopPropagation()},isDefaultPrevented:$u,isPropagationStopped:$u,isImmediatePropagationStopped:$u};var Zu=/^([^.]+)(\.(?:[^.]+))?$/,Hu={qualifierCompare:function(t,n){return t===n},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(t){return t},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Gu=Object.keys(Hu),Uu={};function Yu(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Uu,n=arguments.length>1?arguments[1]:void 0,r=0;r<Gu.length;r++){var e=Gu[r];this[e]=t[e]||Hu[e]}this.context=n||this.context,this.listeners=[],this.emitting=0}var Xu=Yu.prototype,Qu=function(t,n,r,e,i,a,o){Z(e)&&(i=e,e=null),o&&(a=null==a?o:pt({},a,o));for(var u=H(r)?r:r.split(/\s+/),s=0;s<u.length;s++){var f=u[s];if(!rt(f)){var c=f.match(Zu);if(c)if(!1===n(t,f,c[1],c[2]?c[2]:null,e,i,a))break}}},Ju=function(t,n){return t.addEventFields(t.context,n),new Wu(n.type,n)},ts=function(t,n,r){if("event"!==$(r))if(G(r))n(t,Ju(t,r));else for(var e=H(r)?r:r.split(/\s+/),i=0;i<e.length;i++){var a=e[i];if(!rt(a)){var o=a.match(Zu);if(o){var u=o[1],s=o[2]?o[2]:null;n(t,Ju(t,{type:u,namespace:s,target:t.context}))}}}else n(t,r)};Xu.on=Xu.addListener=function(t,n,r,e,i){return Qu(this,function(t,n,r,e,i,a,o){Z(a)&&t.listeners.push({event:n,callback:a,type:r,namespace:e,qualifier:i,conf:o})},t,n,r,e,i),this},Xu.one=function(t,n,r,e){return this.on(t,n,r,e,{one:!0})},Xu.removeListener=Xu.off=function(t,n,r,e){var i=this;0!==this.emitting&&(this.listeners=this.listeners.slice());for(var a=this.listeners,o=function(o){var u=a[o];Qu(i,function(n,r,e,i,s,f){if((u.type===e||"*"===t)&&(!i&&".*"!==u.namespace||u.namespace===i)&&(!s||n.qualifierCompare(u.qualifier,s))&&(!f||u.callback===f))return a.splice(o,1),!1},t,n,r,e)},u=a.length-1;u>=0;u--)o(u);return this},Xu.removeAllListeners=function(){return this.removeListener("*")},Xu.emit=Xu.trigger=function(t,n,r){var e=this.listeners,i=e.length;return this.emitting++,H(n)||(n=[n]),ts(this,function(t,a){null!=r&&(e=[{event:a.event,type:a.type,namespace:a.namespace,callback:r}],i=e.length);for(var o=function(){var r=e[u];if(r.type===a.type&&(!r.namespace||r.namespace===a.namespace||".*"===r.namespace)&&t.eventMatches(t.context,r,a)){var i=[a];null!=n&&function(t,n){for(var r=0;r<n.length;r++){var e=n[r];t.push(e)}}(i,n),t.beforeEmit(t.context,r,a),r.conf&&r.conf.one&&(t.listeners=t.listeners.filter(function(t){return t!==r}));var o=t.callbackContext(t.context,r,a),s=r.callback.apply(o,i);t.afterEmit(t.context,r,a),!1===s&&(a.stopPropagation(),a.preventDefault())}},u=0;u<i;u++)o();t.bubble(t.context)&&!a.isPropagationStopped()&&t.parent(t.context).emit(a,n)},t),this.emitting--,this};var ns={qualifierCompare:function(t,n){return null==t||null==n?null==t&&null==n:t.sameText(n)},eventMatches:function(t,n,r){var e=n.qualifier;return null==e||t!==r.target&&Q(r.target)&&e.matches(r.target)},addEventFields:function(t,n){n.cy=t.cy(),n.target=t},callbackContext:function(t,n,r){return null!=n.qualifier?r.target:t},beforeEmit:function(t,n){n.conf&&n.conf.once&&n.conf.onceCollection.removeListener(n.event,n.qualifier,n.callback)},bubble:function(){return!0},parent:function(t){return t.isChild()?t.parent():t.cy()}},rs=function(t){return K(t)?new Qo(t):t},es={createEmitter:function(){for(var t=0;t<this.length;t++){var n=this[t],r=n.t;r.emitter||(r.emitter=new Yu(ns,n))}return this},emitter:function(){return this.t.emitter},on:function(t,n,r){for(var e=rs(n),i=0;i<this.length;i++){this[i].emitter().on(t,e,r)}return this},removeListener:function(t,n,r){for(var e=rs(n),i=0;i<this.length;i++){this[i].emitter().removeListener(t,e,r)}return this},removeAllListeners:function(){for(var t=0;t<this.length;t++){this[t].emitter().removeAllListeners()}return this},one:function(t,n,r){for(var e=rs(n),i=0;i<this.length;i++){this[i].emitter().one(t,e,r)}return this},once:function(t,n,r){for(var e=rs(n),i=0;i<this.length;i++){this[i].emitter().on(t,e,r,{once:!0,onceCollection:this})}},emit:function(t,n){for(var r=0;r<this.length;r++){this[r].emitter().emit(t,n)}return this},emitAndNotify:function(t,n){if(0!==this.length)return this.cy().notify(t,this),this.emit(t,n),this}};go.eventAliasesOn(es);var is={nodes:function(t){return this.filter(function(t){return t.isNode()}).filter(t)},edges:function(t){return this.filter(function(t){return t.isEdge()}).filter(t)},byGroup:function(){for(var t=this.spawn(),n=this.spawn(),r=0;r<this.length;r++){var e=this[r];e.isNode()?t.push(e):n.push(e)}return{nodes:t,edges:n}},filter:function(t,n){if(void 0===t)return this;if(K(t)||X(t))return new Qo(t).filter(this);if(Z(t)){for(var r=this.spawn(),e=this,i=0;i<e.length;i++){var a=e[i];(n?t.apply(n,[a,i,e]):t(a,i,e))&&r.push(a)}return r}return this.spawn()},not:function(t){if(t){K(t)&&(t=this.filter(t));for(var n=this.spawn(),r=0;r<this.length;r++){var e=this[r];t.has(e)||n.push(e)}return n}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(t){if(K(t)){var n=t;return this.filter(n)}for(var r=this.spawn(),e=t,i=this.length<t.length,a=i?this:e,o=i?e:this,u=0;u<a.length;u++){var s=a[u];o.has(s)&&r.push(s)}return r},xor:function(t){var n=this.t.cy;K(t)&&(t=n.$(t));var r=this.spawn(),e=t,i=function(t,n){for(var e=0;e<t.length;e++){var i=t[e],a=i.t.data.id;n.hasElementWithId(a)||r.push(i)}};return i(this,e),i(e,this),r},diff:function(t){var n=this.t.cy;K(t)&&(t=n.$(t));var r=this.spawn(),e=this.spawn(),i=this.spawn(),a=t,o=function(t,n,r){for(var e=0;e<t.length;e++){var a=t[e],o=a.t.data.id;n.hasElementWithId(o)?i.merge(a):r.push(a)}};return o(this,a,r),o(a,this,e),{left:r,right:e,both:i}},add:function(t){var n=this.t.cy;if(!t)return this;if(K(t)){var r=t;t=n.mutableElements().filter(r)}for(var e=this.spawnSelf(),i=0;i<t.length;i++){var a=t[i];!this.has(a)&&e.push(a)}return e},merge:function(t){var n=this.t,r=n.cy;if(!t)return this;if(t&&K(t)){var e=t;t=r.mutableElements().filter(e)}for(var i=n.map,a=0;a<t.length;a++){var o=t[a],u=o.t.data.id;if(!i.has(u)){var s=this.length++;this[s]=o,i.set(u,{ele:o,index:s})}}return this},unmergeAt:function(t){var n=this[t].id(),r=this.t.map;this[t]=void 0,r.delete(n);var e=t===this.length-1;if(this.length>1&&!e){var i=this.length-1,a=this[i],o=a.t.data.id;this[i]=void 0,this[t]=a,r.set(o,{ele:a,index:t})}return this.length--,this},unmergeOne:function(t){t=t[0];var n=this.t,r=t.t.data.id,e=n.map.get(r);if(!e)return this;var i=e.index;return this.unmergeAt(i),this},unmerge:function(t){var n=this.t.cy;if(!t)return this;if(t&&K(t)){var r=t;t=n.mutableElements().filter(r)}for(var e=0;e<t.length;e++)this.unmergeOne(t[e]);return this},unmergeBy:function(t){for(var n=this.length-1;n>=0;n--){t(this[n])&&this.unmergeAt(n)}return this},map:function(t,n){for(var r=[],e=this,i=0;i<e.length;i++){var a=e[i],o=n?t.apply(n,[a,i,e]):t(a,i,e);r.push(o)}return r},reduce:function(t,n){for(var r=n,e=this,i=0;i<e.length;i++)r=t(r,e[i],i,e);return r},max:function(t,n){for(var r,e=-1/0,i=this,a=0;a<i.length;a++){var o=i[a],u=n?t.apply(n,[o,a,i]):t(o,a,i);u>e&&(e=u,r=o)}return{value:e,ele:r}},min:function(t,n){for(var r,e=1/0,i=this,a=0;a<i.length;a++){var o=i[a],u=n?t.apply(n,[o,a,i]):t(o,a,i);u<e&&(e=u,r=o)}return{value:e,ele:r}}},as=is;as.u=as["|"]=as["+"]=as.union=as.or=as.add,as["\\"]=as["!"]=as["-"]=as.difference=as.relativeComplement=as.subtract=as.not,as.n=as["&"]=as["."]=as.and=as.intersection=as.intersect,as["^"]=as["(+)"]=as["(-)"]=as.symmetricDifference=as.symdiff=as.xor,as.fnFilter=as.filterFn=as.stdFilter=as.filter,as.complement=as.abscomp=as.absoluteComplement;var os=function(t,n){var r=t.cy().hasCompoundNodes();function e(t){var n=t.pstyle("z-compound-depth");return"auto"===n.value?r?t.zDepth():0:"bottom"===n.value?-1:"top"===n.value?Yt:0}var i=e(t)-e(n);if(0!==i)return i;function a(t){return"auto"===t.pstyle("z-index-compare").value&&t.isNode()?1:0}var o=a(t)-a(n);if(0!==o)return o;var u=t.pstyle("z-index").value-n.pstyle("z-index").value;return 0!==u?u:t.poolIndex()-n.poolIndex()},us={forEach:function(t,n){if(Z(t))for(var r=this.length,e=0;e<r;e++){var i=this[e];if(!1===(n?t.apply(n,[i,e,this]):t(i,e,this)))break}return this},toArray:function(){for(var t=[],n=0;n<this.length;n++)t.push(this[n]);return t},slice:function(t,n){var r=[],e=this.length;null==n&&(n=e),null==t&&(t=0),t<0&&(t=e+t),n<0&&(n=e+n);for(var i=t;i>=0&&i<n&&i<e;i++)r.push(this[i]);return this.spawn(r)},size:function(){return this.length},eq:function(t){return this[t]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(t){if(!Z(t))return this;var n=this.toArray().sort(t);return this.spawn(n)},sortByZIndex:function(){return this.sort(os)},zDepth:function(){var t=this[0];if(t){var n=t.t;if("nodes"===n.group){var r=n.data.parent?t.parents().size():0;return t.isParent()?r:Yt-1}var e=n.source,i=n.target,a=e.zDepth(),o=i.zDepth();return Math.max(a,o,0)}}};us.each=us.forEach;var ss;ss="undefined",("undefined"==typeof Symbol?"undefined":s(Symbol))!=ss&&s(Symbol.iterator)!=ss&&(us[Symbol.iterator]=function(){var t=this,n={value:void 0,done:!1},r=0,e=this.length;return i({next:function(){return r<e?n.value=t[r++]:(n.value=void 0,n.done=!0),n}},Symbol.iterator,function(){return this})});var fs=fn({nodeDimensionsIncludeLabels:!1}),cs={layoutDimensions:function(t){var n;if(t=fs(t),this.takesUpSpace())if(t.nodeDimensionsIncludeLabels){var r=this.boundingBox();n={w:r.w,h:r.h}}else n={w:this.outerWidth(),h:this.outerHeight()};else n={w:0,h:0};return 0!==n.w&&0!==n.h||(n.w=n.h=1),n},layoutPositions:function(t,n,r){var e=this.nodes().filter(function(t){return!t.isParent()}),i=this.cy(),a=n.eles,o=function(t){return t.id()},u=it(r,o);t.emit({type:"layoutstart",layout:t}),t.animations=[];var s=n.spacingFactor&&1!==n.spacingFactor,f=function(){if(!s)return null;for(var t=Jn(),n=0;n<e.length;n++){var r=e[n],i=u(r,n);nr(t,i.x,i.y)}return t}(),c=it(function(t,r){var e=u(t,r);s&&(e=function(t,n,r){var e=n.x1+n.w/2,i=n.y1+n.h/2;return{x:e+(r.x-e)*t,y:i+(r.y-i)*t}}(Math.abs(n.spacingFactor),f,e));return null!=n.transform&&(e=n.transform(t,e)),e},o);if(n.animate){for(var l=0;l<e.length;l++){var v=e[l],h=c(v,l);if(null==n.animateFilter||n.animateFilter(v,l)){var d=v.animation({position:h,duration:n.animationDuration,easing:n.animationEasing});t.animations.push(d)}else v.position(h)}if(n.fit){var g=i.animation({fit:{boundingBox:a.boundingBoxAt(c),padding:n.padding},duration:n.animationDuration,easing:n.animationEasing});t.animations.push(g)}else if(void 0!==n.zoom&&void 0!==n.pan){var p=i.animation({zoom:n.zoom,pan:n.pan,duration:n.animationDuration,easing:n.animationEasing});t.animations.push(p)}t.animations.forEach(function(t){return t.play()}),t.one("layoutready",n.ready),t.emit({type:"layoutready",layout:t}),Ze.all(t.animations.map(function(t){return t.promise()})).then(function(){t.one("layoutstop",n.stop),t.emit({type:"layoutstop",layout:t})})}else e.positions(c),n.fit&&i.fit(n.eles,n.padding),null!=n.zoom&&i.zoom(n.zoom),n.pan&&i.pan(n.pan),t.one("layoutready",n.ready),t.emit({type:"layoutready",layout:t}),t.one("layoutstop",n.stop),t.emit({type:"layoutstop",layout:t});return this},layout:function(t){return this.cy().makeLayout(pt({},t,{eles:this}))}};function ls(t,n,r){var e,i=r.t,a=i.styleCache=i.styleCache||[];return null!=(e=a[t])?e:e=a[t]=n(r)}function vs(t,n){return t=Wt(t),function(r){return ls(t,n,r)}}function hs(t,n){t=Wt(t);var r=function(t){return n.call(t)};return function(){var n=this[0];if(n)return ls(t,r,n)}}cs.createLayout=cs.makeLayout=cs.layout;var ds={recalculateRenderedStyle:function(t){var n=this.cy(),r=n.renderer(),e=n.styleEnabled();return r&&e&&r.recalculateRenderedStyle(this,t),this},dirtyStyleCache:function(){var t,n=this.cy(),r=function(t){return t.t.styleCache=null};n.hasCompoundNodes()?((t=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(t.connectedEdges()),t.forEach(r)):this.forEach(function(t){r(t),t.connectedEdges().forEach(r)});return this},updateStyle:function(t){var n=this.t.cy;if(!n.styleEnabled())return this;if(n.batching())return n.t.batchStyleEles.merge(this),this;var r=this;t=!(!t&&void 0!==t),n.hasCompoundNodes()&&(r=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var e=r;return t?e.emitAndNotify("style"):e.emit("style"),r.forEach(function(t){return t.t.styleDirty=!0}),this},cleanStyle:function(){var t=this.cy();if(t.styleEnabled())for(var n=0;n<this.length;n++){var r=this[n];r.t.styleDirty&&(r.t.styleDirty=!1,t.style().apply(r))}},parsedStyle:function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this[0],e=r.cy();if(e.styleEnabled()&&r){r.t.styleDirty&&(r.t.styleDirty=!1,e.style().apply(r));var i=r.t.style[t];return null!=i?i:n?e.style().getDefaultProperty(t):null}},numericStyle:function(t){var n=this[0];if(n.cy().styleEnabled()&&n){var r=n.pstyle(t);return void 0!==r.pfValue?r.pfValue:r.value}},numericStyleUnits:function(t){var n=this[0];if(n.cy().styleEnabled())return n?n.pstyle(t).units:void 0},renderedStyle:function(t){var n=this.cy();if(!n.styleEnabled())return this;var r=this[0];return r?n.style().getRenderedStyle(r,t):void 0},style:function(t,n){var r=this.cy();if(!r.styleEnabled())return this;var e=!1,i=r.style();if(G(t)){var a=t;i.applyBypass(this,a,e),this.emitAndNotify("style")}else if(K(t)){if(void 0===n){var o=this[0];return o?i.getStylePropertyValue(o,t):void 0}i.applyBypass(this,t,n,e),this.emitAndNotify("style")}else if(void 0===t){var u=this[0];return u?i.getRawStyle(u):void 0}return this},removeStyle:function(t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,e=n.style(),i=this;if(void 0===t)for(var a=0;a<i.length;a++){var o=i[a];e.removeAllBypasses(o,r)}else{t=t.split(/\s+/);for(var u=0;u<i.length;u++){var s=i[u];e.removeBypasses(s,t,r)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var t=this.cy();if(!t.styleEnabled())return 1;var n=t.hasCompoundNodes(),r=this[0];if(r){var e=r.t,i=r.pstyle("opacity").value;if(!n)return i;var a=e.data.parent?r.parents():null;if(a)for(var o=0;o<a.length;o++){i*=a[o].pstyle("opacity").value}return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var t=this[0],n=t.cy().hasCompoundNodes();return t?n?0===t.effectiveOpacity():0===t.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0].t.backgrounding}};function gs(t,n){var r=t.t.data.parent?t.parents():null;if(r)for(var e=0;e<r.length;e++){if(!n(r[e]))return!1}return!0}function ps(t){var n=t.ok,r=t.edgeOkViaNode||t.ok,e=t.parentOk||t.ok;return function(){var t=this.cy();if(!t.styleEnabled())return!0;var i=this[0],a=t.hasCompoundNodes();if(i){var o=i.t;if(!n(i))return!1;if(i.isNode())return!a||gs(i,e);var u=o.source,s=o.target;return r(u)&&(!a||gs(u,r))&&(u===s||r(s)&&(!a||gs(s,r)))}}}var ys=vs("eleTakesUpSpace",function(t){return"element"===t.pstyle("display").value&&0!==t.width()&&(!t.isNode()||0!==t.height())});ds.takesUpSpace=hs("takesUpSpace",ps({ok:ys}));var ms=vs("eleInteractive",function(t){return"yes"===t.pstyle("events").value&&"visible"===t.pstyle("visibility").value&&ys(t)}),bs=vs("parentInteractive",function(t){return"visible"===t.pstyle("visibility").value&&ys(t)});ds.interactive=hs("interactive",ps({ok:ms,parentOk:bs,edgeOkViaNode:ys})),ds.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};var xs=vs("eleVisible",function(t){return"visible"===t.pstyle("visibility").value&&0!==t.pstyle("opacity").pfValue&&ys(t)}),ws=ys;ds.visible=hs("visible",ps({ok:xs,edgeOkViaNode:ws})),ds.hidden=function(){var t=this[0];if(t)return!t.visible()},ds.isBundledBezier=hs("isBundledBezier",function(){return!!this.cy().styleEnabled()&&(!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace())}),ds.bypass=ds.css=ds.style,ds.renderedCss=ds.renderedStyle,ds.removeBypass=ds.removeCss=ds.removeStyle,ds.pstyle=ds.parsedStyle;var ks={};function Ms(t){return function(){var n=arguments,r=[];if(2===n.length){var e=n[0],i=n[1];this.on(t.event,e,i)}else if(1===n.length&&Z(n[0])){var a=n[0];this.on(t.event,a)}else if(0===n.length||1===n.length&&H(n[0])){for(var o=1===n.length?n[0]:null,u=0;u<this.length;u++){var s=this[u],f=!t.ableField||s.t[t.ableField],c=s.t[t.field]!=t.value;if(t.overrideAble){var l=t.overrideAble(s);if(void 0!==l&&(f=l,!l))return this}f&&(s.t[t.field]=t.value,c&&r.push(s))}var v=this.spawn(r);v.updateStyle(),v.emit(t.event),o&&v.emit(o)}return this}}function Bs(t){ks[t.field]=function(){var n=this[0];if(n){if(t.overrideField){var r=t.overrideField(n);if(void 0!==r)return r}return n.t[t.field]}},ks[t.on]=Ms({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),ks[t.off]=Ms({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}Bs({field:"locked",overrideField:function(t){return!!t.cy().autolock()||void 0},on:"lock",off:"unlock"}),Bs({field:"grabbable",overrideField:function(t){return!t.cy().autoungrabify()&&!t.pannable()&&void 0},on:"grabify",off:"ungrabify"}),Bs({field:"selected",ableField:"selectable",overrideAble:function(t){return!t.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),Bs({field:"selectable",overrideField:function(t){return!t.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),ks.deselect=ks.unselect,ks.grabbed=function(){var t=this[0];if(t)return t.t.grabbed},Bs({field:"active",on:"activate",off:"unactivate"}),Bs({field:"pannable",on:"panify",off:"unpanify"}),ks.inactive=function(){var t=this[0];if(t)return!t.t.active};var Cs={},As=function(t){return function(n){for(var r=[],e=0;e<this.length;e++){var i=this[e];if(i.isNode()){for(var a=!1,o=i.connectedEdges(),u=0;u<o.length;u++){var s=o[u],f=s.source(),c=s.target();if(t.noIncomingEdges&&c===i&&f!==i||t.noOutgoingEdges&&f===i&&c!==i){a=!0;break}}a||r.push(i)}}return this.spawn(r,!0).filter(n)}},Ts=function(t){return function(n){for(var r=[],e=0;e<this.length;e++){var i=this[e];if(i.isNode())for(var a=i.connectedEdges(),o=0;o<a.length;o++){var u=a[o],s=u.source(),f=u.target();t.outgoing&&s===i?(r.push(u),r.push(f)):t.incoming&&f===i&&(r.push(u),r.push(s))}}return this.spawn(r,!0).filter(n)}},Es=function(t){return function(n){for(var r=this,e=[],i={};;){var a=t.outgoing?r.outgoers():r.incomers();if(0===a.length)break;for(var o=!1,u=0;u<a.length;u++){var s=a[u],f=s.id();i[f]||(i[f]=!0,e.push(s),o=!0)}if(!o)break;r=a}return this.spawn(e,!0).filter(n)}};function Ss(t){return function(n){for(var r=[],e=0;e<this.length;e++){var i=this[e].t[t.attr];i&&r.push(i)}return this.spawn(r,!0).filter(n)}}function zs(t){return function(n){var r=[],e=this.t.cy,i=t||{};K(n)&&(n=e.$(n));for(var a=0;a<n.length;a++)for(var o=n[a].t.edges,u=0;u<o.length;u++){var s=o[u],f=s.t.data,c=this.hasElementWithId(f.source)&&n.hasElementWithId(f.target),l=n.hasElementWithId(f.source)&&this.hasElementWithId(f.target);if(c||l){if(i.thisIsSrc||i.thisIsTgt){if(i.thisIsSrc&&!c)continue;if(i.thisIsTgt&&!l)continue}r.push(s)}}return this.spawn(r,!0)}}function Ps(t){return t=pt({},{codirected:!1},t),function(n){for(var r=[],e=this.edges(),i=t,a=0;a<e.length;a++)for(var o=e[a].t,u=o.source,s=u.t.data.id,f=o.data.target,c=u.t.edges,l=0;l<c.length;l++){var v=c[l],h=v.t.data,d=h.target,g=h.source,p=d===f&&g===s,y=s===d&&f===g;(i.codirected&&p||!i.codirected&&(p||y))&&r.push(v)}return this.spawn(r,!0).filter(n)}}Cs.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t].t.traversalCache=null},pt(Cs,{roots:As({noIncomingEdges:!0}),leaves:As({noOutgoingEdges:!0}),outgoers:eu(Ts({outgoing:!0}),"outgoers"),successors:Es({outgoing:!0}),incomers:eu(Ts({incoming:!0}),"incomers"),predecessors:Es({})}),pt(Cs,{neighborhood:eu(function(t){for(var n=[],r=this.nodes(),e=0;e<r.length;e++)for(var i=r[e],a=i.connectedEdges(),o=0;o<a.length;o++){var u=a[o],s=u.source(),f=u.target(),c=i===s?f:s;c.length>0&&n.push(c[0]),n.push(u[0])}return this.spawn(n,!0).filter(t)},"neighborhood"),closedNeighborhood:function(t){return this.neighborhood().add(this).filter(t)},openNeighborhood:function(t){return this.neighborhood(t)}}),Cs.neighbourhood=Cs.neighborhood,Cs.closedNeighbourhood=Cs.closedNeighborhood,Cs.openNeighbourhood=Cs.openNeighborhood,pt(Cs,{source:eu(function(t){var n,r=this[0];return r&&(n=r.t.source||r.cy().collection()),n&&t?n.filter(t):n},"source"),target:eu(function(t){var n,r=this[0];return r&&(n=r.t.target||r.cy().collection()),n&&t?n.filter(t):n},"target"),sources:Ss({attr:"source"}),targets:Ss({attr:"target"})}),pt(Cs,{edgesWith:eu(zs(),"edgesWith"),edgesTo:eu(zs({thisIsSrc:!0}),"edgesTo")}),pt(Cs,{connectedEdges:eu(function(t){for(var n=[],r=0;r<this.length;r++){var e=this[r];if(e.isNode())for(var i=e.t.edges,a=0;a<i.length;a++){var o=i[a];n.push(o)}}return this.spawn(n,!0).filter(t)},"connectedEdges"),connectedNodes:eu(function(t){for(var n=[],r=0;r<this.length;r++){var e=this[r];e.isEdge()&&(n.push(e.source()[0]),n.push(e.target()[0]))}return this.spawn(n,!0).filter(t)},"connectedNodes"),parallelEdges:eu(Ps(),"parallelEdges"),codirectedEdges:eu(Ps({codirected:!0}),"codirectedEdges")}),pt(Cs,{components:function(t){var n=this,r=n.cy(),e=r.collection(),i=null==t?n.nodes():t.nodes(),a=[];null!=t&&i.empty()&&(i=t.sources());var o=function(t,n){e.merge(t),i.unmerge(t),n.merge(t)};if(i.empty())return n.spawn();var u=function(){var t=r.collection();a.push(t);var e=i[0];o(e,t),n.bfs({directed:!1,roots:e,visit:function(n){return o(n,t)}}),t.forEach(function(r){r.connectedEdges().forEach(function(r){n.has(r)&&t.has(r.source())&&t.has(r.target())&&t.merge(r)})})};do{u()}while(i.length>0);return a},component:function(){var t=this[0];return t.cy().mutableElements().components(t)[0]}}),Cs.componentsOf=Cs.components;var Os=function(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],e=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){var i=new dn,a=!1;if(n){if(n.length>0&&G(n[0])&&!Q(n[0])){a=!0;for(var o=[],u=new pn,s=0,f=n.length;s<f;s++){var c=n[s];null==c.data&&(c.data={});var l=c.data;if(null==l.id)l.id=on();else if(t.hasElementWithId(l.id)||u.has(l.id))continue;var v=new yn(t,c,!1);o.push(v),u.add(l.id)}n=o}}else n=[];this.length=0;for(var h=0,d=n.length;h<d;h++){var g=n[h][0];if(null!=g){var p=g.t.data.id;r&&i.has(p)||(r&&i.set(p,{index:this.length,ele:g}),this[this.length]=g,this.length++)}}this.t={eles:this,cy:t,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(t){this.lazyMap=t},rebuildMap:function(){for(var t=this.lazyMap=new dn,n=this.eles,r=0;r<n.length;r++){var e=n[r];t.set(e.id(),{index:r,ele:e})}}},r&&(this.t.map=i),a&&!e&&this.restore()}else nn("A collection must have a reference to the core")},Ns=yn.prototype=Os.prototype=Object.create(Array.prototype);Ns.instanceString=function(){return"collection"},Ns.spawn=function(t,n){return new Os(this.cy(),t,n)},Ns.spawnSelf=function(){return this.spawn(this)},Ns.cy=function(){return this.t.cy},Ns.renderer=function(){return this.t.cy.renderer()},Ns.element=function(){return this[0]},Ns.collection=function(){return J(this)?this:new Os(this.t.cy,[this])},Ns.unique=function(){return new Os(this.t.cy,this,!0)},Ns.hasElementWithId=function(t){return t=""+t,this.t.map.has(t)},Ns.getElementById=function(t){t=""+t;var n=this.t.cy,r=this.t.map.get(t);return r?r.ele:new Os(n)},Ns.$id=Ns.getElementById,Ns.poolIndex=function(){var t=this.t.cy.t.elements,n=this[0].t.data.id;return t.t.map.get(n).index},Ns.indexOf=function(t){var n=t[0].t.data.id;return this.t.map.get(n).index},Ns.indexOfId=function(t){return t=""+t,this.t.map.get(t).index},Ns.json=function(t){var n=this.element(),r=this.cy();if(null==n&&t)return this;if(null!=n){var e=n.t;if(G(t)){if(r.startBatch(),t.data){n.data(t.data);var i=e.data;if(n.isEdge()){var a=!1,o={},u=t.data.source,s=t.data.target;null!=u&&u!=i.source&&(o.source=""+u,a=!0),null!=s&&s!=i.target&&(o.target=""+s,a=!0),a&&(n=n.move(o))}else{var f="parent"in t.data,c=t.data.parent;!f||null==c&&null==i.parent||c==i.parent||(void 0===c&&(c=null),null!=c&&(c=""+c),n=n.move({parent:c}))}}t.position&&n.position(t.position);var l=function(r,i,a){var o=t[r];null!=o&&o!==e[r]&&(o?n[i]():n[a]())};return l("removed","remove","restore"),l("selected","select","unselect"),l("selectable","selectify","unselectify"),l("locked","lock","unlock"),l("grabbable","grabify","ungrabify"),l("pannable","panify","unpanify"),null!=t.classes&&n.classes(t.classes),r.endBatch(),this}if(void 0===t){var v={data:an(e.data),position:an(e.position),group:e.group,removed:e.removed,selected:e.selected,selectable:e.selectable,locked:e.locked,grabbable:e.grabbable,pannable:e.pannable,classes:null};v.classes="";var h=0;return e.classes.forEach(function(t){return v.classes+=0===h++?t:" "+t}),v}}},Ns.jsons=function(){for(var t=[],n=0;n<this.length;n++){var r=this[n].json();t.push(r)}return t},Ns.clone=function(){for(var t=this.cy(),n=[],r=0;r<this.length;r++){var e=this[r].json(),i=new yn(t,e,!1);n.push(i)}return new Os(t,n)},Ns.copy=Ns.clone,Ns.restore=function(){for(var t,n,r=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a.t,u=[],s=[],f=0,c=i.length;f<c;f++){var l=i[f];e&&!l.removed()||(l.isNode()?u.push(l):s.push(l))}t=u.concat(s);var v=function(){t.splice(n,1),n--};for(n=0;n<t.length;n++){var h=t[n],d=h.t,g=d.data;if(h.clearTraversalCache(),e||d.removed)if(void 0===g.id)g.id=on();else if(U(g.id))g.id=""+g.id;else{if(rt(g.id)||!K(g.id)){nn("Can not create element with invalid string ID `"+g.id+"`"),v();continue}if(a.hasElementWithId(g.id)){nn("Can not create second element with ID `"+g.id+"`"),v();continue}}else;var p=g.id;if(h.isNode()){var y=d.position;null==y.x&&(y.x=0),null==y.y&&(y.y=0)}if(h.isEdge()){for(var m=h,b=["source","target"],x=b.length,w=!1,k=0;k<x;k++){var M=b[k],B=g[M];U(B)&&(B=g[M]=""+g[M]),null==B||""===B?(nn("Can not create edge `"+p+"` with unspecified "+M),w=!0):a.hasElementWithId(B)||(nn("Can not create edge `"+p+"` with nonexistant "+M+" `"+B+"`"),w=!0)}if(w){v();continue}var C=a.getElementById(g.source),A=a.getElementById(g.target);C.same(A)?C.t.edges.push(m):(C.t.edges.push(m),A.t.edges.push(m)),m.t.source=C,m.t.target=A}d.map=new dn,d.map.set(p,{ele:h,index:0}),d.removed=!1,e&&a.addToPool(h)}for(var T=0;T<u.length;T++){var E=u[T],S=E.t.data;U(S.parent)&&(S.parent=""+S.parent);var z=S.parent;if(null!=z||E.t.parent){var P=E.t.parent?a.collection().merge(E.t.parent):a.getElementById(z);if(P.empty())S.parent=void 0;else if(P[0].removed())en("Node added with missing parent, reference to parent removed"),S.parent=void 0,E.t.parent=null;else{for(var O=!1,N=P;!N.empty();){if(E.same(N)){O=!0,S.parent=void 0;break}N=N.parent()}O||(P[0].t.children.push(E),E.t.parent=P[0],o.hasCompoundNodes=!0)}}}if(t.length>0){for(var R=t.length===i.length?i:new Os(a,t),F=0;F<R.length;F++){var I=R[F];I.isNode()||(I.parallelEdges().clearTraversalCache(),I.source().clearTraversalCache(),I.target().clearTraversalCache())}(o.hasCompoundNodes?a.collection().merge(R).merge(R.connectedNodes()).merge(R.parent()):R).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(r),r?R.emitAndNotify("add"):e&&R.emit("add")}return i},Ns.removed=function(){var t=this[0];return t&&t.t.removed},Ns.inside=function(){var t=this[0];return t&&!t.t.removed},Ns.remove=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this,e=[],i={},a=r.t.cy;function o(t){var r=i[t.id()];n&&t.removed()||r||(i[t.id()]=!0,t.isNode()?(e.push(t),function(t){for(var n=t.t.edges,r=0;r<n.length;r++)o(n[r])}(t),function(t){for(var n=t.t.children,r=0;r<n.length;r++)o(n[r])}(t)):e.unshift(t))}for(var u=0,s=r.length;u<s;u++){o(r[u])}function f(t,n){var r=t.t.edges;cn(r,n),t.clearTraversalCache()}function c(t){t.clearTraversalCache()}var l=[];function v(t,n){n=n[0];var r=(t=t[0]).t.children,e=t.id();cn(r,n),n.t.parent=null,l.ids[e]||(l.ids[e]=!0,l.push(t))}l.ids={},r.dirtyCompoundBoundsCache(),n&&a.removeFromPool(e);for(var h=0;h<e.length;h++){var d=e[h];if(d.isEdge()){var g=d.source()[0],p=d.target()[0];f(g,d),f(p,d);for(var y=d.parallelEdges(),m=0;m<y.length;m++){var b=y[m];c(b),b.isBundledBezier()&&b.dirtyBoundingBoxCache()}}else{var x=d.parent();0!==x.length&&v(x,d)}n&&(d.t.removed=!0)}var w=a.t.elements;a.t.hasCompoundNodes=!1;for(var k=0;k<w.length;k++){if(w[k].isParent()){a.t.hasCompoundNodes=!0;break}}var M=new Os(this.cy(),e);M.size()>0&&(t?M.emitAndNotify("remove"):n&&M.emit("remove"));for(var B=0;B<l.length;B++){var C=l[B];n&&C.removed()||C.updateStyle()}return M},Ns.move=function(t){var n=this.t.cy,r=this,e=!1,i=!1,a=function(t){return null==t?t:""+t};if(void 0!==t.source||void 0!==t.target){var o=a(t.source),u=a(t.target),s=null!=o&&n.hasElementWithId(o),f=null!=u&&n.hasElementWithId(u);(s||f)&&(n.batch(function(){r.remove(e,i),r.emitAndNotify("moveout");for(var t=0;t<r.length;t++){var n=r[t],a=n.t.data;n.isEdge()&&(s&&(a.source=o),f&&(a.target=u))}r.restore(e,i)}),r.emitAndNotify("move"))}else if(void 0!==t.parent){var c=a(t.parent);if(null===c||n.hasElementWithId(c)){var l=null===c?void 0:c;n.batch(function(){var t=r.remove(e,i);t.emitAndNotify("moveout");for(var n=0;n<r.length;n++){var a=r[n],o=a.t.data;a.isNode()&&(o.parent=l)}t.restore(e,i)}),r.emitAndNotify("move")}}return this},[je,po,yo,tu,iu,lu,vu,Vu,es,is,{isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var t=this[0];if(t)return t.t.group}},us,cs,ds,ks,Cs].forEach(function(t){pt(Ns,t)});var Rs={add:function(t){var n,r=this;if(X(t)){var e=t;if(e.t.cy===r)n=e.restore();else{for(var i=[],a=0;a<e.length;a++){var o=e[a];i.push(o.json())}n=new Os(r,i)}}else if(H(t)){n=new Os(r,t)}else if(G(t)&&(H(t.nodes)||H(t.edges))){for(var u=t,s=[],f=["nodes","edges"],c=0,l=f.length;c<l;c++){var v=f[c],h=u[v];if(H(h))for(var d=0,g=h.length;d<g;d++){var p=pt({group:v},h[d]);s.push(p)}}n=new Os(r,s)}else{n=new yn(r,t).collection()}return n},remove:function(t){if(X(t));else if(K(t)){var n=t;t=this.$(n)}return t.remove()}};
8
+ /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */function Fs(t,n,r,e){var i=.1,a="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var o=0;o<4;++o)if("number"!=typeof arguments[o]||isNaN(arguments[o])||!isFinite(arguments[o]))return!1;t=Math.min(t,1),r=Math.min(r,1),t=Math.max(t,0),r=Math.max(r,0);var u=a?new Float32Array(11):new Array(11);function s(t,n){return 1-3*n+3*t}function f(t,n){return 3*n-6*t}function c(t){return 3*t}function l(t,n,r){return((s(n,r)*t+f(n,r))*t+c(n))*t}function v(t,n,r){return 3*s(n,r)*t*t+2*f(n,r)*t+c(n)}function h(n){for(var e=0,a=1;10!==a&&u[a]<=n;++a)e+=i;--a;var o=e+(n-u[a])/(u[a+1]-u[a])*i,s=v(o,t,r);return s>=.001?function(n,e){for(var i=0;i<4;++i){var a=v(e,t,r);if(0===a)return e;e-=(l(e,t,r)-n)/a}return e}(n,o):0===s?o:function(n,e,i){var a,o,u=0;do{(a=l(o=e+(i-e)/2,t,r)-n)>0?i=o:e=o}while(Math.abs(a)>1e-7&&++u<10);return o}(n,e,e+i)}var d=!1;function g(){d=!0,t===n&&r===e||function(){for(var n=0;n<11;++n)u[n]=l(n*i,t,r)}()}var p=function(i){return d||g(),t===n&&r===e?i:0===i?0:1===i?1:l(h(i),n,e)};p.getControlPoints=function(){return[{x:t,y:n},{x:r,y:e}]};var y="generateBezier("+[t,n,r,e]+")";return p.toString=function(){return y},p}
9
+ /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var Is=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function n(n,r,e){var i={x:n.x+e.dx*r,v:n.v+e.dv*r,tension:n.tension,friction:n.friction};return{dx:i.v,dv:t(i)}}function r(r,e){var i={dx:r.v,dv:t(r)},a=n(r,.5*e,i),o=n(r,.5*e,a),u=n(r,e,o),s=1/6*(i.dx+2*(a.dx+o.dx)+u.dx),f=1/6*(i.dv+2*(a.dv+o.dv)+u.dv);return r.x=r.x+s*e,r.v=r.v+f*e,r}return function t(n,e,i){var a,o,u,s={x:-1,v:0,tension:null,friction:null},f=[0],c=0,l=1e-4;for(n=parseFloat(n)||500,e=parseFloat(e)||20,i=i||null,s.tension=n,s.friction=e,o=(a=null!==i)?(c=t(n,e))/i*.016:.016;u=r(u||s,o),f.push(1+u.x),c+=16,Math.abs(u.x)>l&&Math.abs(u.v)>l;);return a?function(t){return f[t*(f.length-1)|0]}:c}}(),Ds=function(t,n,r,e){var i=Fs(t,n,r,e);return function(t,n,r){return t+(n-t)*i(r)}},Ls={linear:function(t,n,r){return t+(n-t)*r},ease:Ds(.25,.1,.25,1),"ease-in":Ds(.42,0,1,1),"ease-out":Ds(0,0,.58,1),"ease-in-out":Ds(.42,0,.58,1),"ease-in-sine":Ds(.47,0,.745,.715),"ease-out-sine":Ds(.39,.575,.565,1),"ease-in-out-sine":Ds(.445,.05,.55,.95),"ease-in-quad":Ds(.55,.085,.68,.53),"ease-out-quad":Ds(.25,.46,.45,.94),"ease-in-out-quad":Ds(.455,.03,.515,.955),"ease-in-cubic":Ds(.55,.055,.675,.19),"ease-out-cubic":Ds(.215,.61,.355,1),"ease-in-out-cubic":Ds(.645,.045,.355,1),"ease-in-quart":Ds(.895,.03,.685,.22),"ease-out-quart":Ds(.165,.84,.44,1),"ease-in-out-quart":Ds(.77,0,.175,1),"ease-in-quint":Ds(.755,.05,.855,.06),"ease-out-quint":Ds(.23,1,.32,1),"ease-in-out-quint":Ds(.86,0,.07,1),"ease-in-expo":Ds(.95,.05,.795,.035),"ease-out-expo":Ds(.19,1,.22,1),"ease-in-out-expo":Ds(1,0,0,1),"ease-in-circ":Ds(.6,.04,.98,.335),"ease-out-circ":Ds(.075,.82,.165,1),"ease-in-out-circ":Ds(.785,.135,.15,.86),spring:function(t,n,r){if(0===r)return Ls.linear;var e=Is(t,n,r);return function(t,n,r){return t+(n-t)*e(r)}},"cubic-bezier":Ds};function js(t,n,r,e,i){if(1===e)return r;if(n===r)return r;var a=i(n,r,e);return null==t||((t.roundValue||t.color)&&(a=Math.round(a)),void 0!==t.min&&(a=Math.max(a,t.min)),void 0!==t.max&&(a=Math.min(a,t.max))),a}function qs(t,n){return null!=t.pfValue||null!=t.value?null==t.pfValue||null!=n&&"%"===n.type.units?t.value:t.pfValue:t}function _s(t,n,r,e,i){var a=null!=i?i.type:null;r<0?r=0:r>1&&(r=1);var o=qs(t,i),u=qs(n,i);if(U(o)&&U(u))return js(a,o,u,r,e);if(H(o)&&H(u)){for(var s=[],f=0;f<u.length;f++){var c=o[f],l=u[f];if(null!=c&&null!=l){var v=js(a,c,l,r,e);s.push(v)}else s.push(l)}return s}}function Vs(t,n,r,e){var i=!e,a=t.t,o=n.t,u=o.easing,s=o.startTime,f=(e?t:t.cy()).style();if(!o.easingImpl)if(null==u)o.easingImpl=Ls.linear;else{var c,l,v;if(K(u))c=f.parse("transition-timing-function",u).value;else c=u;K(c)?(l=c,v=[]):(l=c[1],v=c.slice(2).map(function(t){return+t})),v.length>0?("spring"===l&&v.push(o.duration),o.easingImpl=Ls[l].apply(null,v)):o.easingImpl=Ls[l]}var h,d=o.easingImpl;if(h=0===o.duration?1:(r-s)/o.duration,o.applying&&(h=o.progress),h<0?h=0:h>1&&(h=1),null==o.delay){var g=o.startPosition,p=o.position;if(p&&i&&!t.locked()){var y={};Ws(g.x,p.x)&&(y.x=_s(g.x,p.x,h,d)),Ws(g.y,p.y)&&(y.y=_s(g.y,p.y,h,d)),t.position(y)}var m=o.startPan,b=o.pan,x=a.pan,w=null!=b&&e;w&&(Ws(m.x,b.x)&&(x.x=_s(m.x,b.x,h,d)),Ws(m.y,b.y)&&(x.y=_s(m.y,b.y,h,d)),t.emit("pan"));var k=o.startZoom,M=o.zoom,B=null!=M&&e;B&&(Ws(k,M)&&(a.zoom=Qn(a.minZoom,_s(k,M,h,d),a.maxZoom)),t.emit("zoom")),(w||B)&&t.emit("viewport");var C=o.style;if(C&&C.length>0&&i){for(var A=0;A<C.length;A++){var T=C[A],E=T.name,S=T,z=o.startStyle[E],P=_s(z,S,h,d,f.properties[z.name]);f.overrideBypass(t,E,P)}t.emit("style")}}return o.progress=h,h}function Ws(t,n){return null!=t&&null!=n&&(!(!U(t)||!U(n))||!(!t||!n))}function $s(t,n,r,e){var i=n.t;i.started=!0,i.startTime=r-i.progress*i.duration}function Ks(t,n){var r=n.t.aniEles,e=[];function i(n,r){var i=n.t,a=i.animation.current,o=i.animation.queue,u=!1;if(0===a.length){var s=o.shift();s&&a.push(s)}for(var f=function(t){for(var n=t.length-1;n>=0;n--){(0,t[n])()}t.splice(0,t.length)},c=a.length-1;c>=0;c--){var l=a[c],v=l.t;v.stopped?(a.splice(c,1),v.hooked=!1,v.playing=!1,v.started=!1,f(v.frames)):(v.playing||v.applying)&&(v.playing&&v.applying&&(v.applying=!1),v.started||$s(0,l,t),Vs(n,l,t,r),v.applying&&(v.applying=!1),f(v.frames),null!=v.step&&v.step(t),l.completed()&&(a.splice(c,1),v.hooked=!1,v.playing=!1,v.started=!1,f(v.completes)),u=!0)}return r||0!==a.length||0!==o.length||e.push(n),u}for(var a=!1,o=0;o<r.length;o++){var u=i(r[o]);a=a||u}var s=i(n,!0);(a||s)&&(r.length>0?n.notify("draw",r):n.notify("draw")),r.unmerge(e),n.emit("step")}var Zs={animate:go.animate(),animation:go.animation(),animated:go.animated(),clearQueue:go.clearQueue(),delay:go.delay(),delayAnimation:go.delayAnimation(),stop:go.stop(),addToAnimationPool:function(t){this.styleEnabled()&&this.t.aniEles.merge(t)},stopAnimationLoop:function(){this.t.animationsRunning=!1},startAnimationLoop:function(){var t=this;if(t.t.animationsRunning=!0,t.styleEnabled()){var n=t.renderer();n&&n.beforeRender?n.beforeRender(function(n,r){Ks(r,t)},n.beforeRenderPriorities.animations):function n(){t.t.animationsRunning&&Nt(function(r){Ks(r,t),n()})}()}}},Hs={qualifierCompare:function(t,n){return null==t||null==n?null==t&&null==n:t.sameText(n)},eventMatches:function(t,n,r){var e=n.qualifier;return null==e||t!==r.target&&Q(r.target)&&e.matches(r.target)},addEventFields:function(t,n){n.cy=t,n.target=t},callbackContext:function(t,n,r){return null!=n.qualifier?r.target:t}},Gs=function(t){return K(t)?new Qo(t):t},Us={createEmitter:function(){var t=this.t;return t.emitter||(t.emitter=new Yu(Hs,this)),this},emitter:function(){return this.t.emitter},on:function(t,n,r){return this.emitter().on(t,Gs(n),r),this},removeListener:function(t,n,r){return this.emitter().removeListener(t,Gs(n),r),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(t,n,r){return this.emitter().one(t,Gs(n),r),this},once:function(t,n,r){return this.emitter().one(t,Gs(n),r),this},emit:function(t,n){return this.emitter().emit(t,n),this},emitAndNotify:function(t,n){return this.emit(t),this.notify(t,n),this}};go.eventAliasesOn(Us);var Ys={png:function(t){return t=t||{},this.t.renderer.png(t)},jpg:function(t){var n=this.t.renderer;return(t=t||{}).bg=t.bg||"#fff",n.jpg(t)}};Ys.jpeg=Ys.jpg;var Xs={layout:function(t){var n=this;if(null!=t)if(null!=t.name){var r,e=t.name,i=n.extension("layout",e);if(null!=i)return r=K(t.eles)?n.$(t.eles):null!=t.eles?t.eles:n.$(),new i(pt({},t,{cy:n,eles:r}));nn("No such layout `"+e+"` found. Did you forget to import it and `cytoscape.use()` it?")}else nn("A `name` must be specified to make a layout");else nn("Layout options must be specified to make a layout")}};Xs.createLayout=Xs.makeLayout=Xs.layout;var Qs={notify:function(t,n){var r=this.t;if(this.batching()){r.batchNotifications=r.batchNotifications||{};var e=r.batchNotifications[t]=r.batchNotifications[t]||this.collection();null!=n&&e.merge(n)}else if(r.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(t,n)}},notifications:function(t){var n=this.t;return void 0===t?n.notificationsEnabled:(n.notificationsEnabled=!!t,this)},noNotifications:function(t){this.notifications(!1),t(),this.notifications(!0)},batching:function(){return this.t.batchCount>0},startBatch:function(){var t=this.t;return null==t.batchCount&&(t.batchCount=0),0===t.batchCount&&(t.batchStyleEles=this.collection(),t.batchNotifications={}),t.batchCount++,this},endBatch:function(){var t=this.t;if(0===t.batchCount)return this;if(t.batchCount--,0===t.batchCount){t.batchStyleEles.updateStyle();var n=this.renderer();Object.keys(t.batchNotifications).forEach(function(r){var e=t.batchNotifications[r];e.empty()?n.notify(r):n.notify(r,e)})}return this},batch:function(t){return this.startBatch(),t(),this.endBatch(),this},batchData:function(t){var n=this;return this.batch(function(){for(var r=Object.keys(t),e=0;e<r.length;e++){var i=r[e],a=t[i];n.getElementById(i).data(a)}})}},Js=fn({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1,webgl:!1,webglDebug:!1,webglDebugShowAtlases:!1,webglTexSize:2048,webglTexRows:36,webglTexRowsNodes:18,webglBatchSize:2048,webglTexPerBatch:14,webglBgColor:[255,255,255]}),tf={renderTo:function(t,n,r,e){return this.t.renderer.renderTo(t,n,r,e),this},renderer:function(){return this.t.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(t){var n=this,r=n.extension("renderer",t.name);if(null!=r){void 0!==t.wheelSensitivity&&en("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var e=Js(t);e.cy=n,n.t.renderer=new r(e),this.notify("init")}else nn("Can not initialise: No such renderer `".concat(t.name,"` found. Did you forget to import it and `cytoscape.use()` it?"))},destroyRenderer:function(){var t=this;t.notify("destroy");var n=t.container();if(n)for(n._cyreg=null;n.childNodes.length>0;)n.removeChild(n.childNodes[0]);t.t.renderer=null,t.mutableElements().forEach(function(t){var n=t.t;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},onRender:function(t){return this.on("render",t)},offRender:function(t){return this.off("render",t)}};tf.invalidateDimensions=tf.resize;var nf={collection:function(t,n){return K(t)?this.$(t):X(t)?t.collection():H(t)?(n||(n={}),new Os(this,t,n.unique,n.removed)):new Os(this)},nodes:function(t){var n=this.$(function(t){return t.isNode()});return t?n.filter(t):n},edges:function(t){var n=this.$(function(t){return t.isEdge()});return t?n.filter(t):n},$:function(t){var n=this.t.elements;return t?n.filter(t):n.spawnSelf()},mutableElements:function(){return this.t.elements}};nf.elements=nf.filter=nf.$;var rf={},ef="t";rf.apply=function(t){for(var n=this,r=n.t.cy.collection(),e=0;e<t.length;e++){var i=t[e],a=n.getContextMeta(i);if(!a.empty){var o=n.getContextStyle(a),u=n.applyContextStyle(a,o,i);i.t.appliedInitStyle?n.updateTransitions(i,u.diffProps):i.t.appliedInitStyle=!0,n.updateStyleHints(i)&&r.push(i)}}return r},rf.getPropertiesDiff=function(t,n){var r=this,e=r.t.propDiffs=r.t.propDiffs||{},i=t+"-"+n,a=e[i];if(a)return a;for(var o=[],u={},s=0;s<r.length;s++){var f=r[s],c=t[s]===ef,l=n[s]===ef,v=c!==l,h=f.mappedProperties.length>0;if(v||l&&h){var d=void 0;v&&h||v?d=f.properties:h&&(d=f.mappedProperties);for(var g=0;g<d.length;g++){for(var p=d[g],y=p.name,m=!1,b=s+1;b<r.length;b++){var x=r[b];if(n[b]===ef&&(m=null!=x.properties[p.name]))break}u[y]||m||(u[y]=!0,o.push(y))}}}return e[i]=o,o},rf.getContextMeta=function(t){for(var n,r=this,e="",i=t.t.styleCxtKey||"",a=0;a<r.length;a++){var o=r[a];e+=o.selector&&o.selector.matches(t)?ef:"f"}return n=r.getPropertiesDiff(i,e),t.t.styleCxtKey=e,{key:e,diffPropNames:n,empty:0===n.length}},rf.getContextStyle=function(t){var n=t.key,r=this.t.contextStyles=this.t.contextStyles||{};if(r[n])return r[n];for(var e={t:{key:n}},i=0;i<this.length;i++){var a=this[i];if(n[i]===ef)for(var o=0;o<a.properties.length;o++){var u=a.properties[o];e[u.name]=u}}return r[n]=e,e},rf.applyContextStyle=function(t,n,r){for(var e=t.diffPropNames,i={},a=this.types,o=0;o<e.length;o++){var u=e[o],s=n[u],f=r.pstyle(u);if(!s){if(!f)continue;s=f.bypass?{name:u,deleteBypassed:!0}:{name:u,delete:!0}}if(f!==s){if(s.mapped===a.fn&&null!=f&&null!=f.mapping&&f.mapping.value===s.value){var c=f.mapping;if((c.fnValue=s.value(r))===c.prevFnValue)continue}var l=i[u]={prev:f};this.applyParsedProperty(r,s),l.next=r.pstyle(u),l.next&&l.next.bypass&&(l.next=l.next.bypassed)}}return{diffProps:i}},rf.updateStyleHints=function(t){var n=t.t,r=this,e=r.propertyGroupNames,i=r.propertyGroupKeys,a=function(t,n,e){return r.getPropertiesHash(t,n,e)},o=n.styleKey;if(t.removed())return!1;var u="nodes"===n.group,s=t.t.style;e=Object.keys(s);for(var f=0;f<i.length;f++){var c=i[f];n.styleKeys[c]=[Ft,It]}for(var l=function(t,r){return n.styleKeys[r][0]=Lt(t,n.styleKeys[r][0])},v=function(t,r){return n.styleKeys[r][1]=jt(t,n.styleKeys[r][1])},h=function(t,n){l(t,n),v(t,n)},d=function(t,n){for(var r=0;r<t.length;r++){var e=t.charCodeAt(r);l(e,n),v(e,n)}},g=function(t){return-128<t&&t<128&&Math.floor(t)!==t?2e9-(1024*t|0):t},p=0;p<e.length;p++){var y=e[p],m=s[y];if(null!=m){var b=this.properties[y],x=b.type,w=b.groupKey,k=void 0;null!=b.hashOverride?k=b.hashOverride(t,m):null!=m.pfValue&&(k=m.pfValue);var M=null==b.enums?m.value:null,B=null!=k,C=B||null!=M,A=m.units;if(x.number&&C&&!x.multiple)h(g(B?k:M),w),B||null==A||d(A,w);else d(m.strValue,w)}}for(var T,E,S=[Ft,It],z=0;z<i.length;z++){var P=i[z],O=n.styleKeys[P];S[0]=Lt(O[0],S[0]),S[1]=jt(O[1],S[1])}n.styleKey=(T=S[0],E=S[1],2097152*T+E);var N=n.styleKeys;n.labelDimsKey=qt(N.labelDimensions);var R=a(t,["label"],N.labelDimensions);if(n.labelKey=qt(R),n.labelStyleKey=qt(_t(N.commonLabel,R)),!u){var F=a(t,["source-label"],N.labelDimensions);n.sourceLabelKey=qt(F),n.sourceLabelStyleKey=qt(_t(N.commonLabel,F));var I=a(t,["target-label"],N.labelDimensions);n.targetLabelKey=qt(I),n.targetLabelStyleKey=qt(_t(N.commonLabel,I))}if(u){var D=n.styleKeys,L=D.nodeBody,j=D.nodeBorder,q=D.nodeOutline,_=D.backgroundImage,V=D.compound,W=D.pie,$=D.stripe,K=[L,j,q,_,V,W,$].filter(function(t){return null!=t}).reduce(_t,[Ft,It]);n.nodeKey=qt(K),n.hasPie=null!=W&&W[0]!==Ft&&W[1]!==It,n.hasStripe=null!=$&&$[0]!==Ft&&$[1]!==It}return o!==n.styleKey},rf.clearStyleHints=function(t){var n=t.t;n.styleCxtKey="",n.styleKeys={},n.styleKey=null,n.labelKey=null,n.labelStyleKey=null,n.sourceLabelKey=null,n.sourceLabelStyleKey=null,n.targetLabelKey=null,n.targetLabelStyleKey=null,n.nodeKey=null,n.hasPie=null,n.hasStripe=null},rf.applyParsedProperty=function(t,n){var r,e=this,i=n,a=t.t.style,o=e.types,u=e.properties[i.name].type,s=i.bypass,f=a[i.name],c=f&&f.bypass,l=t.t,v="mapping",h=function(t){return null==t?null:null!=t.pfValue?t.pfValue:t.value},d=function(){var n=h(f),r=h(i);e.checkTriggers(t,i.name,n,r)};if("curve-style"===n.name&&t.isEdge()&&("bezier"!==n.value&&t.isLoop()||"haystack"===n.value&&(t.source().isParent()||t.target().isParent()))&&(i=n=this.parse(n.name,"bezier",s)),i.delete)return a[i.name]=void 0,d(),!0;if(i.deleteBypassed)return f?!!f.bypass&&(f.bypassed=void 0,d(),!0):(d(),!0);if(i.deleteBypass)return f?!!f.bypass&&(a[i.name]=f.bypassed,d(),!0):(d(),!0);var g=function(){en("Do not assign mappings to elements without corresponding data (i.e. ele `"+t.id()+"` has no mapping for property `"+i.name+"` with data field `"+i.field+"`); try a `["+i.field+"]` selector to limit scope to elements with `"+i.field+"` defined")};switch(i.mapped){case o.mapData:for(var p,y=i.field.split("."),m=l.data,b=0;b<y.length&&m;b++){m=m[y[b]]}if(null==m)return g(),!1;if(!U(m))return en("Do not use continuous mappers without specifying numeric data (i.e. `"+i.field+": "+m+"` for `"+t.id()+"` is non-numeric)"),!1;var x=i.fieldMax-i.fieldMin;if((p=0===x?0:(m-i.fieldMin)/x)<0?p=0:p>1&&(p=1),u.color){var w=i.valueMin[0],k=i.valueMax[0],M=i.valueMin[1],B=i.valueMax[1],C=i.valueMin[2],A=i.valueMax[2],T=null==i.valueMin[3]?1:i.valueMin[3],E=null==i.valueMax[3]?1:i.valueMax[3],S=[Math.round(w+(k-w)*p),Math.round(M+(B-M)*p),Math.round(C+(A-C)*p),Math.round(T+(E-T)*p)];r={bypass:i.bypass,name:i.name,value:S,strValue:"rgb("+S[0]+", "+S[1]+", "+S[2]+")"}}else{if(!u.number)return!1;var z=i.valueMin+(i.valueMax-i.valueMin)*p;r=this.parse(i.name,z,i.bypass,v)}if(!r)return g(),!1;r.mapping=i,i=r;break;case o.data:for(var P=i.field.split("."),O=l.data,N=0;N<P.length&&O;N++){O=O[P[N]]}if(null!=O&&(r=this.parse(i.name,O,i.bypass,v)),!r)return g(),!1;r.mapping=i,i=r;break;case o.fn:var R=i.value,F=null!=i.fnValue?i.fnValue:R(t);if(i.prevFnValue=F,null==F)return en("Custom function mappers may not return null (i.e. `"+i.name+"` for ele `"+t.id()+"` is null)"),!1;if(!(r=this.parse(i.name,F,i.bypass,v)))return en("Custom function mappers may not return invalid values for the property type (i.e. `"+i.name+"` for ele `"+t.id()+"` is invalid)"),!1;r.mapping=an(i),i=r;break;case void 0:break;default:return!1}return s?(i.bypassed=c?f.bypassed:f,a[i.name]=i):c?f.bypassed=i:a[i.name]=i,d(),!0},rf.cleanElements=function(t,n){for(var r=0;r<t.length;r++){var e=t[r];if(this.clearStyleHints(e),e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),n)for(var i=e.t.style,a=Object.keys(i),o=0;o<a.length;o++){var u=a[o],s=i[u];null!=s&&(s.bypass?s.bypassed=null:i[u]=null)}else e.t.style={}}},rf.update=function(){this.t.cy.mutableElements().updateStyle()},rf.updateTransitions=function(t,n){var r=this,e=t.t,i=t.pstyle("transition-property").value,a=t.pstyle("transition-duration").pfValue,o=t.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var u={},s=!1,f=0;f<i.length;f++){var c=i[f],l=t.pstyle(c),v=n[c];if(v){var h=v.prev,d=null!=v.next?v.next:l,g=!1,p=void 0,y=1e-6;h&&(U(h.pfValue)&&U(d.pfValue)?(g=d.pfValue-h.pfValue,p=h.pfValue+y*g):U(h.value)&&U(d.value)?(g=d.value-h.value,p=h.value+y*g):H(h.value)&&H(d.value)&&(g=h.value[0]!==d.value[0]||h.value[1]!==d.value[1]||h.value[2]!==d.value[2],p=h.strValue),g&&(u[c]=d.strValue,this.applyBypass(t,c,p),s=!0))}}if(!s)return;e.transitioning=!0,new Ze(function(n){o>0?t.delayAnimation(o).play().promise().then(n):n()}).then(function(){return t.animation({style:u,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),e.transitioning=!1})}else e.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),e.transitioning=!1)},rf.checkTrigger=function(t,n,r,e,i,a){var o=this.properties[n],u=i(o);t.removed()||null!=u&&u(r,e,t)&&a(o)},rf.checkZOrderTrigger=function(t,n,r,e){var i=this;this.checkTrigger(t,n,r,e,function(t){return t.triggersZOrder},function(){i.t.cy.notify("zorder",t)})},rf.checkBoundsTrigger=function(t,n,r,e){this.checkTrigger(t,n,r,e,function(t){return t.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache()})},rf.checkConnectedEdgesBoundsTrigger=function(t,n,r,e){this.checkTrigger(t,n,r,e,function(t){return t.triggersBoundsOfConnectedEdges},function(n){t.connectedEdges().forEach(function(t){t.dirtyBoundingBoxCache()})})},rf.checkParallelEdgesBoundsTrigger=function(t,n,r,e){this.checkTrigger(t,n,r,e,function(t){return t.triggersBoundsOfParallelEdges},function(n){t.parallelEdges().forEach(function(t){t.dirtyBoundingBoxCache()})})},rf.checkTriggers=function(t,n,r,e){t.dirtyStyleCache(),this.checkZOrderTrigger(t,n,r,e),this.checkBoundsTrigger(t,n,r,e),this.checkConnectedEdgesBoundsTrigger(t,n,r,e),this.checkParallelEdgesBoundsTrigger(t,n,r,e)};var af={applyBypass:function(t,n,r,e){var i=[];if("*"===n||"**"===n){if(void 0!==r)for(var a=0;a<this.properties.length;a++){var o=this.properties[a].name,u=this.parse(o,r,!0);u&&i.push(u)}}else if(K(n)){var s=this.parse(n,r,!0);s&&i.push(s)}else{if(!G(n))return!1;var f=n;e=r;for(var c=Object.keys(f),l=0;l<c.length;l++){var v=c[l],h=f[v];if(void 0===h&&(h=f[ot(v)]),void 0!==h){var d=this.parse(v,h,!0);d&&i.push(d)}}}if(0===i.length)return!1;for(var g=!1,p=0;p<t.length;p++){for(var y=t[p],m={},b=void 0,x=0;x<i.length;x++){var w=i[x];if(e){var k=y.pstyle(w.name);b=m[w.name]={prev:k}}g=this.applyParsedProperty(y,an(w))||g,e&&(b.next=y.pstyle(w.name))}g&&this.updateStyleHints(y),e&&this.updateTransitions(y,m,true)}return g},overrideBypass:function(t,n,r){n=at(n);for(var e=0;e<t.length;e++){var i=t[e],a=i.t.style[n],o=this.properties[n].type,u=o.color,s=o.mutiple,f=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=r,null!=a.pfValue&&(a.pfValue=r),a.strValue=u?"rgb("+r.join(",")+")":s?r.join(" "):""+r,this.updateStyleHints(i)):this.applyBypass(i,n,r),this.checkTriggers(i,n,f,r)}},removeAllBypasses:function(t,n){return this.removeBypasses(t,this.propertyNames,n)},removeBypasses:function(t,n,r){for(var e=0;e<t.length;e++){for(var i=t[e],a={},o=0;o<n.length;o++){var u=n[o],s=this.properties[u],f=i.pstyle(s.name);if(f&&f.bypass){var c=this.parse(u,"",!0),l=a[s.name]={prev:f};this.applyParsedProperty(i,c),l.next=i.pstyle(s.name)}}this.updateStyleHints(i),r&&this.updateTransitions(i,a,true)}}},of={getEmSizeInPixels:function(){var t=this.containerCss("font-size");return null!=t?parseFloat(t):1},containerCss:function(t){var n=this.t.cy,r=n.container(),e=n.window();if(e&&r&&e.getComputedStyle)return e.getComputedStyle(r).getPropertyValue(t)}},uf={getRenderedStyle:function(t,n){return n?this.getStylePropertyValue(t,n,!0):this.getRawStyle(t,!0)},getRawStyle:function(t,n){var r=this;if(t=t[0]){for(var e={},i=0;i<r.properties.length;i++){var a=r.properties[i],o=r.getStylePropertyValue(t,a.name,n);null!=o&&(e[a.name]=o,e[ot(a.name)]=o)}return e}},getIndexedStyle:function(t,n,r,e){var i=t.pstyle(n)[r][e];return null!=i?i:t.cy().style().getDefaultProperty(n)[r][0]},getStylePropertyValue:function(t,n,r){if(t=t[0]){var e=this.properties[n];e.alias&&(e=e.pointsTo);var i=e.type,a=t.pstyle(e.name);if(a){var o=a.value,u=a.units,s=a.strValue;if(r&&i.number&&null!=o&&U(o)){var f=t.cy().zoom(),c=function(t){return t*f},l=function(t,n){return c(t)+n},v=H(o);return(v?u.every(function(t){return null!=t}):null!=u)?v?o.map(function(t,n){return l(t,u[n])}).join(" "):l(o,u):v?o.map(function(t){return K(t)?t:""+c(t)}).join(" "):""+c(o)}if(null!=s)return s}return null}},getAnimationStartStyle:function(t,n){for(var r={},e=0;e<n.length;e++){var i=n[e].name,a=t.pstyle(i);void 0!==a&&(a=G(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(r[i]=a)}return r},getPropsList:function(t){var n=[],r=t,e=this.properties;if(r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a],u=r[o],s=e[o]||e[at(o)],f=this.parse(s.name,u);f&&n.push(f)}return n},getNonDefaultPropertiesHash:function(t,n,r){var e,i,a,o,u,s,f=r.slice();for(u=0;u<n.length;u++)if(e=n[u],null!=(i=t.pstyle(e,!1)))if(null!=i.pfValue)f[0]=Lt(o,f[0]),f[1]=jt(o,f[1]);else for(a=i.strValue,s=0;s<a.length;s++)o=a.charCodeAt(s),f[0]=Lt(o,f[0]),f[1]=jt(o,f[1]);return f}};uf.getPropertiesHash=uf.getNonDefaultPropertiesHash;var sf={appendFromJson:function(t){for(var n=this,r=0;r<t.length;r++){var e=t[r],i=e.selector,a=e.style||e.css,o=Object.keys(a);n.selector(i);for(var u=0;u<o.length;u++){var s=o[u],f=a[s];n.css(s,f)}}return n},fromJson:function(t){var n=this;return n.resetToDefault(),n.appendFromJson(t),n},json:function(){for(var t=[],n=this.defaultLength;n<this.length;n++){for(var r=this[n],e=r.selector,i=r.properties,a={},o=0;o<i.length;o++){var u=i[o];a[u.name]=u.strValue}t.push({selector:e?e.toString():"core",style:a})}return t}},ff={appendFromString:function(t){var n,r,e,i=this,a=""+t;function o(){a=a.length>n.length?a.substr(n.length):""}function u(){r=r.length>e.length?r.substr(e.length):""}for(a=a.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(a.match(/^\s*$/))break;var s=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){en("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=s[0];var f=s[1];if("core"!==f)if(new Qo(f).invalid){en("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}var c=s[2],l=!1;r=c;for(var v=[];;){if(r.match(/^\s*$/))break;var h=r.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!h){en("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+c),l=!0;break}e=h[0];var d=h[1],g=h[2];if(this.properties[d])i.parse(d,g)?(v.push({name:d,val:g}),u()):(en("Skipping property: Invalid property definition in: "+e),u());else en("Skipping property: Invalid property name in: "+e),u()}if(l){o();break}i.selector(f);for(var p=0;p<v.length;p++){var y=v[p];i.css(y.name,y.val)}o()}return i},fromString:function(t){var n=this;return n.resetToDefault(),n.appendFromString(t),n}},cf={};!function(){var t=ct,n=vt,r=dt,e=function(t){return"^"+t+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},i=function(e){var i=t+"|\\w+|"+n+"|"+r+"|\\#[0-9a-fA-F]{3}|\\#[0-9a-fA-F]{6}";return"^"+e+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+i+")\\s*\\,\\s*("+i+")\\)$"},a=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];cf.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},axisDirectionExplicit:{enums:["leftward","rightward","upward","downward"]},axisDirectionPrimary:{enums:["horizontal","vertical"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},boxSelection:{enums:["contain","overlap","none"]},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle","circle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:e("data")},layoutData:{mapping:!0,regex:e("layoutData")},scratch:{mapping:!0,regex:e("scratch")},mapData:{mapping:!0,regex:i("mapData")},mapLayoutData:{mapping:!0,regex:i("mapLayoutData")},mapScratch:{mapping:!0,regex:i("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:a,singleRegexMatchValue:!0},urls:{regexes:a,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(t,n){switch(t.length){case 2:return"deg"!==n[0]&&"rad"!==n[0]&&"deg"!==n[1]&&"rad"!==n[1];case 1:return K(t[0])||"deg"===n[0]||"rad"===n[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(t){var n=t.length;return 1===n||2===n||4===n}}};var o={zeroNonZero:function(t,n){return(null==t||null==n)&&t!==n||(0==t&&0!=n||0!=t&&0==n)},any:function(t,n){return t!=n},emptyNonEmpty:function(t,n){var r=rt(t),e=rt(n);return r&&!e||!r&&e}},u=cf.types,s=[{name:"label",type:u.text,triggersBounds:o.any,triggersZOrder:o.emptyNonEmpty},{name:"text-rotation",type:u.textRotation,triggersBounds:o.any},{name:"text-margin-x",type:u.bidirectionalSize,triggersBounds:o.any},{name:"text-margin-y",type:u.bidirectionalSize,triggersBounds:o.any}],f=[{name:"source-label",type:u.text,triggersBounds:o.any},{name:"source-text-rotation",type:u.textRotation,triggersBounds:o.any},{name:"source-text-margin-x",type:u.bidirectionalSize,triggersBounds:o.any},{name:"source-text-margin-y",type:u.bidirectionalSize,triggersBounds:o.any},{name:"source-text-offset",type:u.size,triggersBounds:o.any}],c=[{name:"target-label",type:u.text,triggersBounds:o.any},{name:"target-text-rotation",type:u.textRotation,triggersBounds:o.any},{name:"target-text-margin-x",type:u.bidirectionalSize,triggersBounds:o.any},{name:"target-text-margin-y",type:u.bidirectionalSize,triggersBounds:o.any},{name:"target-text-offset",type:u.size,triggersBounds:o.any}],l=[{name:"font-family",type:u.fontFamily,triggersBounds:o.any},{name:"font-style",type:u.fontStyle,triggersBounds:o.any},{name:"font-weight",type:u.fontWeight,triggersBounds:o.any},{name:"font-size",type:u.size,triggersBounds:o.any},{name:"text-transform",type:u.textTransform,triggersBounds:o.any},{name:"text-wrap",type:u.textWrap,triggersBounds:o.any},{name:"text-overflow-wrap",type:u.textOverflowWrap,triggersBounds:o.any},{name:"text-max-width",type:u.size,triggersBounds:o.any},{name:"text-outline-width",type:u.size,triggersBounds:o.any},{name:"line-height",type:u.positiveNumber,triggersBounds:o.any}],v=[{name:"text-valign",type:u.valign,triggersBounds:o.any},{name:"text-halign",type:u.halign,triggersBounds:o.any},{name:"color",type:u.color},{name:"text-outline-color",type:u.color},{name:"text-outline-opacity",type:u.zeroOneNumber},{name:"text-background-color",type:u.color},{name:"text-background-opacity",type:u.zeroOneNumber},{name:"text-background-padding",type:u.size,triggersBounds:o.any},{name:"text-border-opacity",type:u.zeroOneNumber},{name:"text-border-color",type:u.color},{name:"text-border-width",type:u.size,triggersBounds:o.any},{name:"text-border-style",type:u.borderStyle,triggersBounds:o.any},{name:"text-background-shape",type:u.textBackgroundShape,triggersBounds:o.any},{name:"text-justification",type:u.justification},{name:"box-select-labels",type:u.bool,triggersBounds:o.any}],h=[{name:"events",type:u.bool,triggersZOrder:o.any},{name:"text-events",type:u.bool,triggersZOrder:o.any},{name:"box-selection",type:u.boxSelection,triggersZOrder:o.any}],d=[{name:"display",type:u.display,triggersZOrder:o.any,triggersBounds:o.any,triggersBoundsOfConnectedEdges:o.any,triggersBoundsOfParallelEdges:function(t,n,r){return t!==n&&"bezier"===r.pstyle("curve-style").value}},{name:"visibility",type:u.visibility,triggersZOrder:o.any},{name:"opacity",type:u.zeroOneNumber,triggersZOrder:o.zeroNonZero},{name:"text-opacity",type:u.zeroOneNumber},{name:"min-zoomed-font-size",type:u.size},{name:"z-compound-depth",type:u.zCompoundDepth,triggersZOrder:o.any},{name:"z-index-compare",type:u.zIndexCompare,triggersZOrder:o.any},{name:"z-index",type:u.number,triggersZOrder:o.any}],g=[{name:"overlay-padding",type:u.size,triggersBounds:o.any},{name:"overlay-color",type:u.color},{name:"overlay-opacity",type:u.zeroOneNumber,triggersBounds:o.zeroNonZero},{name:"overlay-shape",type:u.overlayShape,triggersBounds:o.any},{name:"overlay-corner-radius",type:u.cornerRadius}],p=[{name:"underlay-padding",type:u.size,triggersBounds:o.any},{name:"underlay-color",type:u.color},{name:"underlay-opacity",type:u.zeroOneNumber,triggersBounds:o.zeroNonZero},{name:"underlay-shape",type:u.overlayShape,triggersBounds:o.any},{name:"underlay-corner-radius",type:u.cornerRadius}],y=[{name:"transition-property",type:u.propList},{name:"transition-duration",type:u.time},{name:"transition-delay",type:u.time},{name:"transition-timing-function",type:u.easing}],m=function(t,n){return"label"===n.value?-t.poolIndex():n.pfValue},b=[{name:"height",type:u.nodeSize,triggersBounds:o.any,hashOverride:m},{name:"width",type:u.nodeSize,triggersBounds:o.any,hashOverride:m},{name:"shape",type:u.nodeShape,triggersBounds:o.any},{name:"shape-polygon-points",type:u.polygonPointList,triggersBounds:o.any},{name:"corner-radius",type:u.cornerRadius},{name:"background-color",type:u.color},{name:"background-fill",type:u.fill},{name:"background-opacity",type:u.zeroOneNumber},{name:"background-blacken",type:u.nOneOneNumber},{name:"background-gradient-stop-colors",type:u.colors},{name:"background-gradient-stop-positions",type:u.percentages},{name:"background-gradient-direction",type:u.gradientDirection},{name:"padding",type:u.sizeMaybePercent,triggersBounds:o.any},{name:"padding-relative-to",type:u.paddingRelativeTo,triggersBounds:o.any},{name:"bounds-expansion",type:u.boundsExpansion,triggersBounds:o.any}],x=[{name:"border-color",type:u.color},{name:"border-opacity",type:u.zeroOneNumber},{name:"border-width",type:u.size,triggersBounds:o.any},{name:"border-style",type:u.borderStyle},{name:"border-cap",type:u.lineCap},{name:"border-join",type:u.lineJoin},{name:"border-dash-pattern",type:u.numbers},{name:"border-dash-offset",type:u.number},{name:"border-position",type:u.linePosition}],w=[{name:"outline-color",type:u.color},{name:"outline-opacity",type:u.zeroOneNumber},{name:"outline-width",type:u.size,triggersBounds:o.any},{name:"outline-style",type:u.borderStyle},{name:"outline-offset",type:u.size,triggersBounds:o.any}],k=[{name:"background-image",type:u.urls},{name:"background-image-crossorigin",type:u.bgCrossOrigin},{name:"background-image-opacity",type:u.zeroOneNumbers},{name:"background-image-containment",type:u.bgContainment},{name:"background-image-smoothing",type:u.bools},{name:"background-position-x",type:u.bgPos},{name:"background-position-y",type:u.bgPos},{name:"background-width-relative-to",type:u.bgRelativeTo},{name:"background-height-relative-to",type:u.bgRelativeTo},{name:"background-repeat",type:u.bgRepeat},{name:"background-fit",type:u.bgFit},{name:"background-clip",type:u.bgClip},{name:"background-width",type:u.bgWH},{name:"background-height",type:u.bgWH},{name:"background-offset-x",type:u.bgPos},{name:"background-offset-y",type:u.bgPos}],M=[{name:"position",type:u.position,triggersBounds:o.any},{name:"compound-sizing-wrt-labels",type:u.compoundIncludeLabels,triggersBounds:o.any},{name:"min-width",type:u.size,triggersBounds:o.any},{name:"min-width-bias-left",type:u.sizeMaybePercent,triggersBounds:o.any},{name:"min-width-bias-right",type:u.sizeMaybePercent,triggersBounds:o.any},{name:"min-height",type:u.size,triggersBounds:o.any},{name:"min-height-bias-top",type:u.sizeMaybePercent,triggersBounds:o.any},{name:"min-height-bias-bottom",type:u.sizeMaybePercent,triggersBounds:o.any}],B=[{name:"line-style",type:u.lineStyle},{name:"line-color",type:u.color},{name:"line-fill",type:u.fill},{name:"line-cap",type:u.lineCap},{name:"line-opacity",type:u.zeroOneNumber},{name:"line-dash-pattern",type:u.numbers},{name:"line-dash-offset",type:u.number},{name:"line-outline-width",type:u.size},{name:"line-outline-color",type:u.color},{name:"line-gradient-stop-colors",type:u.colors},{name:"line-gradient-stop-positions",type:u.percentages},{name:"curve-style",type:u.curveStyle,triggersBounds:o.any,triggersBoundsOfParallelEdges:function(t,n){return t!==n&&("bezier"===t||"bezier"===n)}},{name:"haystack-radius",type:u.zeroOneNumber,triggersBounds:o.any},{name:"source-endpoint",type:u.edgeEndpoint,triggersBounds:o.any},{name:"target-endpoint",type:u.edgeEndpoint,triggersBounds:o.any},{name:"control-point-step-size",type:u.size,triggersBounds:o.any},{name:"control-point-distances",type:u.bidirectionalSizes,triggersBounds:o.any},{name:"control-point-weights",type:u.numbers,triggersBounds:o.any},{name:"segment-distances",type:u.bidirectionalSizes,triggersBounds:o.any},{name:"segment-weights",type:u.numbers,triggersBounds:o.any},{name:"segment-radii",type:u.numbers,triggersBounds:o.any},{name:"radius-type",type:u.radiusType,triggersBounds:o.any},{name:"taxi-turn",type:u.bidirectionalSizeMaybePercent,triggersBounds:o.any},{name:"taxi-turn-min-distance",type:u.size,triggersBounds:o.any},{name:"taxi-direction",type:u.axisDirection,triggersBounds:o.any},{name:"taxi-radius",type:u.number,triggersBounds:o.any},{name:"edge-distances",type:u.edgeDistances,triggersBounds:o.any},{name:"arrow-scale",type:u.positiveNumber,triggersBounds:o.any},{name:"loop-direction",type:u.angle,triggersBounds:o.any},{name:"loop-sweep",type:u.angle,triggersBounds:o.any},{name:"source-distance-from-node",type:u.size,triggersBounds:o.any},{name:"target-distance-from-node",type:u.size,triggersBounds:o.any}],C=[{name:"ghost",type:u.bool,triggersBounds:o.any},{name:"ghost-offset-x",type:u.bidirectionalSize,triggersBounds:o.any},{name:"ghost-offset-y",type:u.bidirectionalSize,triggersBounds:o.any},{name:"ghost-opacity",type:u.zeroOneNumber}],A=[{name:"selection-box-color",type:u.color},{name:"selection-box-opacity",type:u.zeroOneNumber},{name:"selection-box-border-color",type:u.color},{name:"selection-box-border-width",type:u.size},{name:"active-bg-color",type:u.color},{name:"active-bg-opacity",type:u.zeroOneNumber},{name:"active-bg-size",type:u.size},{name:"outside-texture-bg-color",type:u.color},{name:"outside-texture-bg-opacity",type:u.zeroOneNumber}],T=[];cf.pieBackgroundN=16,T.push({name:"pie-size",type:u.sizeMaybePercent}),T.push({name:"pie-hole",type:u.sizeMaybePercent}),T.push({name:"pie-start-angle",type:u.angle});for(var E=1;E<=cf.pieBackgroundN;E++)T.push({name:"pie-"+E+"-background-color",type:u.color}),T.push({name:"pie-"+E+"-background-size",type:u.percent}),T.push({name:"pie-"+E+"-background-opacity",type:u.zeroOneNumber});var S=[];cf.stripeBackgroundN=16,S.push({name:"stripe-size",type:u.sizeMaybePercent}),S.push({name:"stripe-direction",type:u.axisDirectionPrimary});for(var z=1;z<=cf.stripeBackgroundN;z++)S.push({name:"stripe-"+z+"-background-color",type:u.color}),S.push({name:"stripe-"+z+"-background-size",type:u.percent}),S.push({name:"stripe-"+z+"-background-opacity",type:u.zeroOneNumber});var P=[],O=cf.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:u.arrowShape,triggersBounds:o.any},{name:"arrow-color",type:u.color},{name:"arrow-fill",type:u.arrowFill},{name:"arrow-width",type:u.arrowWidth}].forEach(function(t){O.forEach(function(n){var r=n+"-"+t.name,e=t.type,i=t.triggersBounds;P.push({name:r,type:e,triggersBounds:i})})},{});var N=cf.properties=[].concat(h,y,d,g,p,C,v,l,s,f,c,b,x,w,k,T,S,M,B,P,A),R=cf.propertyGroups={behavior:h,transition:y,visibility:d,overlay:g,underlay:p,ghost:C,commonLabel:v,labelDimensions:l,mainLabel:s,sourceLabel:f,targetLabel:c,nodeBody:b,nodeBorder:x,nodeOutline:w,backgroundImage:k,pie:T,stripe:S,compound:M,edgeLine:B,edgeArrow:P,core:A},F=cf.propertyGroupNames={};(cf.propertyGroupKeys=Object.keys(R)).forEach(function(t){F[t]=R[t].map(function(t){return t.name}),R[t].forEach(function(n){return n.groupKey=t})});var I=cf.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];cf.propertyNames=N.map(function(t){return t.name});for(var D=0;D<N.length;D++){var L=N[D];N[L.name]=L}for(var j=0;j<I.length;j++){var q=I[j],_=N[q.pointsTo],V={name:q.name,alias:!0,pointsTo:_};N.push(V),N[q.name]=V}}(),cf.getDefaultProperty=function(t){return this.getDefaultProperties()[t]},cf.getDefaultProperties=function(){var t=this.t;if(null!=t.defaultProperties)return t.defaultProperties;for(var n=pt({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","box-selection":"contain","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","box-select-labels":"no","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%","pie-hole":0,"pie-start-angle":"0deg"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(t,n){for(var r=1;r<=cf.pieBackgroundN;r++){var e=n.name.replace("{{i}}",r),i=n.value;t[e]=i}return t},{}),{"stripe-size":"100%","stripe-direction":"horizontal"},[{name:"stripe-{{i}}-background-color",value:"black"},{name:"stripe-{{i}}-background-size",value:"0%"},{name:"stripe-{{i}}-background-opacity",value:1}].reduce(function(t,n){for(var r=1;r<=cf.stripeBackgroundN;r++){var e=n.name.replace("{{i}}",r),i=n.value;t[e]=i}return t},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(t,n){return cf.arrowPrefixes.forEach(function(r){var e=r+"-"+n.name,i=n.value;t[e]=i}),t},{})),r={},e=0;e<this.properties.length;e++){var i=this.properties[e];if(!i.pointsTo){var a=i.name,o=n[a],u=this.parse(a,o);r[a]=u}}return t.defaultProperties=r,t.defaultProperties},cf.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var lf={parse:function(t,n,r,e){var i=this;if(Z(n))return i.parseImplWarn(t,n,r,e);var a,o=$t(t,""+n,r?"t":"f","mapping"===e||!0===e||!1===e||null==e?"dontcare":e),u=i.propCache=i.propCache||[];return(a=u[o])||(a=u[o]=i.parseImplWarn(t,n,r,e)),(r||"mapping"===e)&&(a=an(a))&&(a.value=an(a.value)),a},parseImplWarn:function(t,n,r,e){var i=this.parseImpl(t,n,r,e);return i||null==n||en("The style property `".concat(t,": ").concat(n,"` is invalid")),!i||"width"!==i.name&&"height"!==i.name||"label"!==n||en("The style value of `label` is deprecated for `"+i.name+"`"),i}};lf.parseImpl=function(t,n,r,e){var i=this;t=at(t);var a=i.properties[t],o=n,u=i.types;if(!a)return null;if(void 0===n)return null;a.alias&&(a=a.pointsTo,t=a.name);var s=K(n);s&&(n=n.trim());var f,c,l=a.type;if(!l)return null;if(r&&(""===n||null===n))return{name:t,value:n,bypass:!0,deleteBypass:!0};if(Z(n))return{name:t,value:n,strValue:"fn",mapped:u.fn,bypass:r};if(!s||e||n.length<7||"a"!==n[1]);else{if(n.length>=7&&"d"===n[0]&&(f=new RegExp(u.data.regex).exec(n))){if(r)return!1;var v=u.data;return{name:t,value:f,strValue:""+n,mapped:v,field:f[1],bypass:r}}if(n.length>=10&&"m"===n[0]&&(c=new RegExp(u.mapData.regex).exec(n))){if(r)return!1;if(l.multiple)return!1;var h=u.mapData;if(!l.color&&!l.number)return!1;var d=this.parse(t,c[4]);if(!d||d.mapped)return!1;var g=this.parse(t,c[5]);if(!g||g.mapped)return!1;if(d.pfValue===g.pfValue||d.strValue===g.strValue)return en("`"+t+": "+n+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+d.strValue+"`"),this.parse(t,d.strValue);if(l.color){var p=d.value,y=g.value;if(!(p[0]!==y[0]||p[1]!==y[1]||p[2]!==y[2]||p[3]!==y[3]&&(null!=p[3]&&1!==p[3]||null!=y[3]&&1!==y[3])))return!1}return{name:t,value:c,strValue:""+n,mapped:h,field:c[1],fieldMin:parseFloat(c[2]),fieldMax:parseFloat(c[3]),valueMin:d.value,valueMax:g.value,bypass:r}}}if(l.multiple&&"multiple"!==e){var m;if(m=s?n.split(/\s+/):H(n)?n:[n],l.evenMultiple&&m.length%2!=0)return null;for(var b=[],x=[],w=[],k="",M=!1,B=0;B<m.length;B++){var C=i.parse(t,m[B],r,"multiple");M=M||K(C.value),b.push(C.value),w.push(null!=C.pfValue?C.pfValue:C.value),x.push(C.units),k+=(B>0?" ":"")+C.strValue}return l.validate&&!l.validate(b,x)?null:l.singleEnum&&M?1===b.length&&K(b[0])?{name:t,value:b[0],strValue:b[0],bypass:r}:null:{name:t,value:b,pfValue:w,strValue:k,bypass:r,units:x}}var A,T,E=function(){for(var e=0;e<l.enums.length;e++){if(l.enums[e]===n)return{name:t,value:n,strValue:""+n,bypass:r}}return null};if(l.number){var S,z="px";if(l.units&&(S=l.units),l.implicitUnits&&(z=l.implicitUnits),!l.unitless)if(s){var P="px|em"+(l.allowPercent?"|\\%":"");S&&(P=S);var O=n.match("^("+ct+")("+P+")?$");O&&(n=O[1],S=O[2]||z)}else S&&!l.implicitUnits||(S=z);if(n=parseFloat(n),isNaN(n)&&void 0===l.enums)return null;if(isNaN(n)&&void 0!==l.enums)return n=o,E();if(l.integer&&(!U(T=n)||Math.floor(T)!==T))return null;if(void 0!==l.min&&(n<l.min||l.strictMin&&n===l.min)||void 0!==l.max&&(n>l.max||l.strictMax&&n===l.max))return null;var N={name:t,value:n,strValue:""+n+(S||""),units:S,bypass:r};return l.unitless||"px"!==S&&"em"!==S?N.pfValue=n:N.pfValue="px"!==S&&S?this.getEmSizeInPixels()*n:n,"ms"!==S&&"s"!==S||(N.pfValue="ms"===S?n:1e3*n),"deg"!==S&&"rad"!==S||(N.pfValue="rad"===S?n:(A=n,Math.PI*A/180)),"%"===S&&(N.pfValue=n/100),N}if(l.propList){var R=[],F=""+n;if("none"===F);else{for(var I=F.split(/\s*,\s*|\s+/),D=0;D<I.length;D++){var L=I[D].trim();i.properties[L]?R.push(L):en("`"+L+"` is not a valid property name")}if(0===R.length)return null}return{name:t,value:R,strValue:0===R.length?"none":R.join(" "),bypass:r}}if(l.color){var j=yt(n);return j?{name:t,value:j,pfValue:j,strValue:"rgb("+j[0]+","+j[1]+","+j[2]+")",bypass:r}:null}if(l.regex||l.regexes){if(l.enums){var q=E();if(q)return q}for(var _=l.regexes?l.regexes:[l.regex],V=0;V<_.length;V++){var W=new RegExp(_[V]).exec(n);if(W)return{name:t,value:l.singleRegexMatchValue?W[1]:W,strValue:""+n,bypass:r}}return null}return l.string?{name:t,value:""+n,strValue:""+n,bypass:r}:l.enums?E():null};var vf=function(t){if(!(this instanceof vf))return new vf(t);tt(t)?(this.t={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()):nn("A style must have a core reference")},hf=vf.prototype;hf.instanceString=function(){return"style"},hf.clear=function(){for(var t=this.t,n=t.cy.elements(),r=0;r<this.length;r++)this[r]=void 0;return this.length=0,t.contextStyles={},t.propDiffs={},this.cleanElements(n,!0),n.forEach(function(t){var n=t[0].t;n.styleDirty=!0,n.appliedInitStyle=!1}),this},hf.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},hf.core=function(t){return this.t.coreStyle[t]||this.getDefaultProperty(t)},hf.selector=function(t){var n="core"===t?null:new Qo(t),r=this.length++;return this[r]={selector:n,properties:[],mappedProperties:[],index:r},this},hf.css=function(){var t=arguments;if(1===t.length)for(var n=t[0],r=0;r<this.properties.length;r++){var e=this.properties[r],i=n[e.name];void 0===i&&(i=n[ot(e.name)]),void 0!==i&&this.cssRule(e.name,i)}else 2===t.length&&this.cssRule(t[0],t[1]);return this},hf.style=hf.css,hf.cssRule=function(t,n){var r=this.parse(t,n);if(r){var e=this.length-1;this[e].properties.push(r),this[e].properties[r.name]=r,r.name.match(/pie-(\d+)-background-size/)&&r.value&&(this.t.hasPie=!0),r.name.match(/stripe-(\d+)-background-size/)&&r.value&&(this.t.hasStripe=!0),r.mapped&&this[e].mappedProperties.push(r),!this[e].selector&&(this.t.coreStyle[r.name]=r)}return this},hf.append=function(t){return nt(t)?t.appendToStyle(this):H(t)?this.appendFromJson(t):K(t)&&this.appendFromString(t),this},vf.fromJson=function(t,n){var r=new vf(t);return r.fromJson(n),r},vf.fromString=function(t,n){return new vf(t).fromString(n)},[rf,af,of,uf,sf,ff,cf,lf].forEach(function(t){pt(hf,t)}),vf.types=hf.types,vf.properties=hf.properties,vf.propertyGroups=hf.propertyGroups,vf.propertyGroupNames=hf.propertyGroupNames,vf.propertyGroupKeys=hf.propertyGroupKeys;var df={style:function(t){t&&this.setStyle(t).update();return this.t.style},setStyle:function(t){var n=this.t;return nt(t)?n.style=t.generateStyle(this):H(t)?n.style=vf.fromJson(this,t):K(t)?n.style=vf.fromString(this,t):n.style=vf(this),n.style},updateStyle:function(){this.mutableElements().updateStyle()}},gf={autolock:function(t){return void 0===t?this.t.autolock:(this.t.autolock=!!t,this)},autoungrabify:function(t){return void 0===t?this.t.autoungrabify:(this.t.autoungrabify=!!t,this)},autounselectify:function(t){return void 0===t?this.t.autounselectify:(this.t.autounselectify=!!t,this)},selectionType:function(t){var n=this.t;return null==n.selectionType&&(n.selectionType="single"),void 0===t?n.selectionType:("additive"!==t&&"single"!==t||(n.selectionType=t),this)},panningEnabled:function(t){return void 0===t?this.t.panningEnabled:(this.t.panningEnabled=!!t,this)},userPanningEnabled:function(t){return void 0===t?this.t.userPanningEnabled:(this.t.userPanningEnabled=!!t,this)},zoomingEnabled:function(t){return void 0===t?this.t.zoomingEnabled:(this.t.zoomingEnabled=!!t,this)},userZoomingEnabled:function(t){return void 0===t?this.t.userZoomingEnabled:(this.t.userZoomingEnabled=!!t,this)},boxSelectionEnabled:function(t){return void 0===t?this.t.boxSelectionEnabled:(this.t.boxSelectionEnabled=!!t,this)},pan:function(){var t,n,r,e,i,a=arguments,o=this.t.pan;switch(a.length){case 0:return o;case 1:if(K(a[0]))return o[t=a[0]];if(G(a[0])){if(!this.t.panningEnabled)return this;e=(r=a[0]).x,i=r.y,U(e)&&(o.x=e),U(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this.t.panningEnabled)return this;n=a[1],"x"!==(t=a[0])&&"y"!==t||!U(n)||(o[t]=n),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(t,n){var r,e,i,a,o,u=arguments,s=this.t.pan;if(!this.t.panningEnabled)return this;switch(u.length){case 1:G(t)&&(a=(i=u[0]).x,o=i.y,U(a)&&(s.x+=a),U(o)&&(s.y+=o),this.emit("pan viewport"));break;case 2:e=n,"x"!==(r=t)&&"y"!==r||!U(e)||(s[r]+=e),this.emit("pan viewport")}return this.notify("viewport"),this},gc:function(){this.notify("gc")},fit:function(t,n){var r=this.getFitViewport(t,n);if(r){var e=this.t;e.zoom=r.zoom,e.pan=r.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(t,n){if(U(t)&&void 0===n&&(n=t,t=void 0),this.t.panningEnabled&&this.t.zoomingEnabled){var r,e;if(K(t)){var i=t;t=this.$(i)}else if(G(e=t)&&U(e.x1)&&U(e.x2)&&U(e.y1)&&U(e.y2)){var a=t;(r={x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2}).w=r.x2-r.x1,r.h=r.y2-r.y1}else X(t)||(t=this.mutableElements());if(!X(t)||!t.empty()){r=r||t.boundingBox();var o,u=this.width(),s=this.height();if(n=U(n)?n:0,!isNaN(u)&&!isNaN(s)&&u>0&&s>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0)return{zoom:o=(o=(o=Math.min((u-2*n)/r.w,(s-2*n)/r.h))>this.t.maxZoom?this.t.maxZoom:o)<this.t.minZoom?this.t.minZoom:o,pan:{x:(u-o*(r.x1+r.x2))/2,y:(s-o*(r.y1+r.y2))/2}}}}},zoomRange:function(t,n){var r=this.t;if(null==n){var e=t;t=e.min,n=e.max}return U(t)&&U(n)&&t<=n?(r.minZoom=t,r.maxZoom=n):U(t)&&void 0===n&&t<=r.maxZoom?r.minZoom=t:U(n)&&void 0===t&&n>=r.minZoom&&(r.maxZoom=n),this},minZoom:function(t){return void 0===t?this.t.minZoom:this.zoomRange({min:t})},maxZoom:function(t){return void 0===t?this.t.maxZoom:this.zoomRange({max:t})},getZoomedViewport:function(t){var n,r,e=this.t,i=e.pan,a=e.zoom,o=!1;if(e.zoomingEnabled||(o=!0),U(t)?r=t:G(t)&&(r=t.level,null!=t.position?n=_n(t.position,a,i):null!=t.renderedPosition&&(n=t.renderedPosition),null==n||e.panningEnabled||(o=!0)),r=(r=r>e.maxZoom?e.maxZoom:r)<e.minZoom?e.minZoom:r,o||!U(r)||r===a||null!=n&&(!U(n.x)||!U(n.y)))return null;if(null!=n){var u=i,s=a,f=r;return{zoomed:!0,panned:!0,zoom:f,pan:{x:-f/s*(n.x-u.x)+n.x,y:-f/s*(n.y-u.y)+n.y}}}return{zoomed:!0,panned:!1,zoom:r,pan:i}},zoom:function(t){if(void 0===t)return this.t.zoom;var n=this.getZoomedViewport(t),r=this.t;return null!=n&&n.zoomed?(r.zoom=n.zoom,n.panned&&(r.pan.x=n.pan.x,r.pan.y=n.pan.y),this.emit("zoom"+(n.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(t){var n=this.t,r=!0,e=!0,i=[],a=!1,o=!1;if(!t)return this;if(U(t.zoom)||(r=!1),G(t.pan)||(e=!1),!r&&!e)return this;if(r){var u=t.zoom;u<n.minZoom||u>n.maxZoom||!n.zoomingEnabled?a=!0:(n.zoom=u,i.push("zoom"))}if(e&&(!a||!t.cancelOnFailedZoom)&&n.panningEnabled){var s=t.pan;U(s.x)&&(n.pan.x=s.x,o=!1),U(s.y)&&(n.pan.y=s.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(t){var n=this.getCenterPan(t);return n&&(this.t.pan=n,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(t,n){if(this.t.panningEnabled){if(K(t)){var r=t;t=this.mutableElements().filter(r)}else X(t)||(t=this.mutableElements());if(0!==t.length){var e=t.boundingBox(),i=this.width(),a=this.height();return{x:(i-(n=void 0===n?this.t.zoom:n)*(e.x1+e.x2))/2,y:(a-n*(e.y1+e.y2))/2}}}},reset:function(){return this.t.panningEnabled&&this.t.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this.t.sizeCache=null},size:function(){var t,n,r=this.t,e=r.container,i=this;return r.sizeCache=r.sizeCache||(e?(t=i.window().getComputedStyle(e),n=function(n){return parseFloat(t.getPropertyValue(n))},{width:e.clientWidth-n("padding-left")-n("padding-right"),height:e.clientHeight-n("padding-top")-n("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var t=this.t.pan,n=this.t.zoom,r=this.renderedExtent(),e={x1:(r.x1-t.x)/n,x2:(r.x2-t.x)/n,y1:(r.y1-t.y)/n,y2:(r.y2-t.y)/n};return e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},renderedExtent:function(){var t=this.width(),n=this.height();return{x1:0,y1:0,x2:t,y2:n,w:t,h:n}},multiClickDebounceTime:function(t){return t?(this.t.multiClickDebounceTime=t,this):this.t.multiClickDebounceTime}};gf.centre=gf.center,gf.autolockNodes=gf.autolock,gf.autoungrabifyNodes=gf.autoungrabify;var pf={data:go.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:go.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:go.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:go.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};pf.attr=pf.data,pf.removeAttr=pf.removeData;var yf=function(t){var n=this,r=(t=pt({},t)).container;r&&!Y(r)&&Y(r[0])&&(r=r[0]);var e=r?r._cyreg:null;(e=e||{})&&e.cy&&(e.cy.destroy(),e={});var i=e.readies=e.readies||[];r&&(r._cyreg=e),e.cy=n;var a=void 0!==c&&void 0!==r&&!t.headless,o=t;o.layout=pt({name:a?"grid":"null"},o.layout),o.renderer=pt({name:a?"canvas":"null"},o.renderer);var u=function(t,n,r){return void 0!==n?n:void 0!==r?r:t},s=this.t={container:r,ready:!1,options:o,elements:new Os(this),listeners:[],aniEles:new Os(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,o.zoomingEnabled),userZoomingEnabled:u(!0,o.userZoomingEnabled),panningEnabled:u(!0,o.panningEnabled),userPanningEnabled:u(!0,o.userPanningEnabled),boxSelectionEnabled:u(!0,o.boxSelectionEnabled),autolock:u(!1,o.autolock,o.autolockNodes),autoungrabify:u(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:u(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:U(o.zoom)?o.zoom:1,pan:{x:G(o.pan)&&U(o.pan.x)?o.pan.x:0,y:G(o.pan)&&U(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});s.styleEnabled&&n.setStyle([]);var f=pt({},o,o.renderer);n.initRenderer(f);!function(t,n){if(t.some(et))return Ze.all(t).then(n);n(t)}([o.style,o.elements],function(t){var r=t[0],a=t[1];s.styleEnabled&&n.style().append(r),function(t,r,e){n.notifications(!1);var i=n.mutableElements();i.length>0&&i.remove(),null!=t&&(G(t)||H(t))&&n.add(t),n.one("layoutready",function(t){n.notifications(!0),n.emit(t),n.one("load",r),n.emitAndNotify("load")}).one("layoutstop",function(){n.one("done",e),n.emit("done")});var a=pt({},n.t.options.layout);a.eles=n.elements(),n.layout(a).run()}(a,function(){n.startAnimationLoop(),s.ready=!0,Z(o.ready)&&n.on("ready",o.ready);for(var t=0;t<i.length;t++){var r=i[t];n.on("ready",r)}e&&(e.readies=[]),n.emit("ready")},o.done)})},mf=yf.prototype;pt(mf,{instanceString:function(){return"core"},isReady:function(){return this.t.ready},destroyed:function(){return this.t.destroyed},ready:function(t){return this.isReady()?this.emitter().emit("ready",[],t):this.on("ready",t),this},destroy:function(){var t=this;if(!t.destroyed())return t.stopAnimationLoop(),t.destroyRenderer(),this.emit("destroy"),t.t.destroyed=!0,t},hasElementWithId:function(t){return this.t.elements.hasElementWithId(t)},getElementById:function(t){return this.t.elements.getElementById(t)},hasCompoundNodes:function(){return this.t.hasCompoundNodes},headless:function(){return this.t.renderer.isHeadless()},styleEnabled:function(){return this.t.styleEnabled},addToPool:function(t){return this.t.elements.merge(t),this},removeFromPool:function(t){return this.t.elements.unmerge(t),this},container:function(){return this.t.container||null},window:function(){if(null==this.t.container)return c;var t=this.t.container.ownerDocument;return void 0===t||null==t?c:t.defaultView||c},mount:function(t){if(null!=t){var n=this,r=n.t,e=r.options;return!Y(t)&&Y(t[0])&&(t=t[0]),n.stopAnimationLoop(),n.destroyRenderer(),r.container=t,r.styleEnabled=!0,n.invalidateSize(),n.initRenderer(pt({},e,e.renderer,{name:"null"===e.renderer.name?"canvas":e.renderer.name})),n.startAnimationLoop(),n.style(e.style),n.emit("mount"),n}},unmount:function(){var t=this;return t.stopAnimationLoop(),t.destroyRenderer(),t.initRenderer({name:"null"}),t.emit("unmount"),t},options:function(){return an(this.t.options)},json:function(t){var n=this,r=n.t,e=n.mutableElements();if(G(t)){if(n.startBatch(),t.elements){var i={},a=function(t,r){for(var e=[],a=[],o=0;o<t.length;o++){var u=t[o];if(u.data.id){var s=""+u.data.id,f=n.getElementById(s);i[s]=!0,0!==f.length?a.push({ele:f,json:u}):r?(u.group=r,e.push(u)):e.push(u)}else en("cy.json() cannot handle elements without an ID attribute")}n.add(e);for(var c=0;c<a.length;c++){var l=a[c],v=l.ele,h=l.json;v.json(h)}};if(H(t.elements))a(t.elements);else for(var o=["nodes","edges"],u=0;u<o.length;u++){var s=o[u],f=t.elements[s];H(f)&&a(f,s)}var c=n.collection();e.filter(function(t){return!i[t.id()]}).forEach(function(t){t.isParent()?c.merge(t):t.remove()}),c.forEach(function(t){return t.children().move({parent:null})}),c.forEach(function(t){return function(t){return n.getElementById(t.id())}(t).remove()})}t.style&&n.style(t.style),null!=t.zoom&&t.zoom!==r.zoom&&n.zoom(t.zoom),t.pan&&(t.pan.x===r.pan.x&&t.pan.y===r.pan.y||n.pan(t.pan)),t.data&&n.data(t.data);for(var l=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],v=0;v<l.length;v++){var h=l[v];null!=t[h]&&n[h](t[h])}return n.endBatch(),this}var d={};!!t?d.elements=this.elements().map(function(t){return t.json()}):(d.elements={},e.forEach(function(t){var n=t.group();d.elements[n]||(d.elements[n]=[]),d.elements[n].push(t.json())})),this.t.styleEnabled&&(d.style=n.style().json()),d.data=an(n.data());var g=r.options;return d.zoomingEnabled=r.zoomingEnabled,d.userZoomingEnabled=r.userZoomingEnabled,d.zoom=r.zoom,d.minZoom=r.minZoom,d.maxZoom=r.maxZoom,d.panningEnabled=r.panningEnabled,d.userPanningEnabled=r.userPanningEnabled,d.pan=an(r.pan),d.boxSelectionEnabled=r.boxSelectionEnabled,d.renderer=an(g.renderer),d.hideEdgesOnViewport=g.hideEdgesOnViewport,d.textureOnViewport=g.textureOnViewport,d.wheelSensitivity=g.wheelSensitivity,d.motionBlur=g.motionBlur,d.multiClickDebounceTime=g.multiClickDebounceTime,d}}),mf.$id=mf.getElementById,[Rs,Zs,Us,Ys,Xs,Qs,tf,nf,df,gf,pf].forEach(function(t){pt(mf,t)});var bf={fit:!0,directed:!1,direction:"downward",padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}},xf={maximal:!1,acyclic:!1},wf=function(t){return t.scratch("breadthfirst")},kf=function(t,n){return t.scratch("breadthfirst",n)};function Mf(t){this.options=pt({},bf,xf,t)}Mf.prototype.run=function(){var t,n=this.options,r=n.cy,e=n.eles,i=e.nodes().filter(function(t){return t.isChildless()}),a=e,o=n.directed,u=n.acyclic||n.maximal||n.maximalAdjustments>0,s=!!n.boundingBox,f=Jn(s?n.boundingBox:structuredClone(r.extent()));if(X(n.roots))t=n.roots;else if(H(n.roots)){for(var c=[],l=0;l<n.roots.length;l++){var v=n.roots[l],h=r.getElementById(v);c.push(h)}t=r.collection(c)}else if(K(n.roots))t=r.$(n.roots);else if(o)t=i.roots();else{var d=e.components();t=r.collection();for(var g=function(){var n=d[p],r=n.maxDegree(!1),e=n.filter(function(t){return t.degree(!1)===r});t=t.add(e)},p=0;p<d.length;p++)g()}var y=[],m={},b=function(t,n){null==y[n]&&(y[n]=[]);var r=y[n].length;y[n].push(t),kf(t,{index:r,depth:n})};a.bfs({roots:t,directed:n.directed,visit:function(t,n,r,e,i){var a=t[0],o=a.id();a.isChildless()&&b(a,i),m[o]=!0}});for(var x=[],w=0;w<i.length;w++){var k=i[w];m[k.id()]||x.push(k)}var M=function(t){for(var n=y[t],r=0;r<n.length;r++){var e=n[r];null!=e?kf(e,{depth:t,index:r}):(n.splice(r,1),r--)}},B=function(t,r){for(var i=wf(t),a=t.incomers().filter(function(t){return t.isNode()&&e.has(t)}),o=-1,u=t.id(),s=0;s<a.length;s++){var f=a[s],c=wf(f);o=Math.max(o,c.depth)}if(i.depth<=o){if(!n.acyclic&&r[u])return null;var l=o+1;return function(t,n){var r=wf(t),e=r.depth,i=r.index;y[e][i]=null,t.isChildless()&&b(t,n)}(t,l),r[u]=l,!0}return!1};if(o&&u){var C=[],A={},T=function(t){return C.push(t)},E=function(){return C.shift()};for(i.forEach(function(t){return C.push(t)});C.length>0;){var S=E(),z=B(S,A);if(z)S.outgoers().filter(function(t){return t.isNode()&&e.has(t)}).forEach(T);else if(null===z){en("Detected double maximal shift for node `"+S.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var P=0;if(n.avoidOverlap)for(var O=0;O<i.length;O++){var N=i[O].layoutDimensions(n),R=N.w,F=N.h;P=Math.max(P,R,F)}var I={},D=function(t){if(I[t.id()])return I[t.id()];for(var n=wf(t).depth,r=t.neighborhood(),e=0,a=0,o=0;o<r.length;o++){var u=r[o];if(!u.isEdge()&&!u.isParent()&&i.has(u)){var s=wf(u);if(null!=s){var f=s.index,c=s.depth;if(null!=f&&null!=c){var l=y[c].length;c<n&&(e+=f/l,a++)}}}}return e/=a=Math.max(1,a),0===a&&(e=0),I[t.id()]=e,e},L=function(t,n){var r=D(t)-D(n);return 0===r?gt(t.id(),n.id()):r};void 0!==n.depthSort&&(L=n.depthSort);for(var j=y.length,q=0;q<j;q++)y[q].sort(L),M(q);for(var _=[],V=0;V<x.length;V++)_.push(x[V]);_.length&&(y.unshift(_),j=y.length,function(){for(var t=0;t<j;t++)M(t)}());for(var W=0,$=0;$<j;$++)W=Math.max(y[$].length,W);var Z=f.x1+f.w/2,G=f.y1+f.h/2,U=i.reduce(function(t,r){return e=r.boundingBox({includeLabels:n.nodeDimensionsIncludeLabels}),{w:-1===t.w?e.w:(t.w+e.w)/2,h:-1===t.h?e.h:(t.h+e.h)/2};var e},{w:-1,h:-1}),Y=Math.max(1===j?0:s?(f.h-2*n.padding-U.h)/(j-1):(f.h-2*n.padding-U.h)/(j+1),P),Q=y.reduce(function(t,n){return Math.max(t,n.length)},0),J={downward:0,leftward:90,upward:180,rightward:-90};-1===Object.keys(J).indexOf(n.direction)&&nn("Invalid direction '".concat(n.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(J).join(", ")));return e.nodes().layoutPositions(this,n,function(t){return Zt(function(t){var r=wf(t),e=r.depth,i=r.index;if(n.circle){var a=Math.min(f.w/2/j,f.h/2/j),o=(a=Math.max(a,P))*e+a-(j>0&&y[0].length<=3?a/2:0),u=2*Math.PI/y[e].length*i;return 0===e&&1===y[0].length&&(o=1),{x:Z+o*Math.cos(u),y:G+o*Math.sin(u)}}var c=y[e].length,l=Math.max(1===c?0:s?(f.w-2*n.padding-U.w)/((n.grid?Q:c)-1):(f.w-2*n.padding-U.w)/((n.grid?Q:c)+1),P);return{x:Z+(i+1-(c+1)/2)*l,y:G+(e+1-(j+1)/2)*Y}}(t),f,J[n.direction])}),this};var Bf={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}};function Cf(t){this.options=pt({},Bf,t)}Cf.prototype.run=function(){var t=this.options,n=t,r=t.cy,e=n.eles,i=void 0!==n.counterclockwise?!n.counterclockwise:n.clockwise,a=e.nodes().not(":parent");n.sort&&(a=a.sort(n.sort));for(var o,u=Jn(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s=u.x1+u.w/2,f=u.y1+u.h/2,c=(void 0===n.sweep?2*Math.PI-2*Math.PI/a.length:n.sweep)/Math.max(1,a.length-1),l=0,v=0;v<a.length;v++){var h=a[v].layoutDimensions(n),d=h.w,g=h.h;l=Math.max(l,d,g)}if(o=U(n.radius)?n.radius:a.length<=1?0:Math.min(u.h,u.w)/2-l,a.length>1&&n.avoidOverlap){l*=1.75;var p=Math.cos(c)-Math.cos(0),y=Math.sin(c)-Math.sin(0),m=Math.sqrt(l*l/(p*p+y*y));o=Math.max(m,o)}return e.nodes().layoutPositions(this,n,function(t,r){var e=n.startAngle+r*c*(i?1:-1),a=o*Math.cos(e),u=o*Math.sin(e);return{x:s+a,y:f+u}}),this};var Af,Tf={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(t){return t.degree()},levelWidth:function(t){return t.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}};function Ef(t){this.options=pt({},Tf,t)}Ef.prototype.run=function(){for(var t=this.options,n=t,r=void 0!==n.counterclockwise?!n.counterclockwise:n.clockwise,e=t.cy,i=n.eles,a=i.nodes().not(":parent"),o=Jn(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),u=o.x1+o.w/2,s=o.y1+o.h/2,f=[],c=0,l=0;l<a.length;l++){var v,h=a[l];v=n.concentric(h),f.push({value:v,node:h}),h.t.scratch.concentric=v}a.updateStyle();for(var d=0;d<a.length;d++){var g=a[d].layoutDimensions(n);c=Math.max(c,g.w,g.h)}f.sort(function(t,n){return n.value-t.value});for(var p=n.levelWidth(a),y=[[]],m=y[0],b=0;b<f.length;b++){var x=f[b];if(m.length>0)Math.abs(m[0].value-x.value)>=p&&(m=[],y.push(m));m.push(x)}var w=c+n.minNodeSpacing;if(!n.avoidOverlap){var k=y.length>0&&y[0].length>1,M=(Math.min(o.w,o.h)/2-w)/(y.length+k?1:0);w=Math.min(w,M)}for(var B=0,C=0;C<y.length;C++){var A=y[C],T=void 0===n.sweep?2*Math.PI-2*Math.PI/A.length:n.sweep,E=A.dTheta=T/Math.max(1,A.length-1);if(A.length>1&&n.avoidOverlap){var S=Math.cos(E)-Math.cos(0),z=Math.sin(E)-Math.sin(0),P=Math.sqrt(w*w/(S*S+z*z));B=Math.max(P,B)}A.r=B,B+=w}if(n.equidistant){for(var O=0,N=0,R=0;R<y.length;R++){var F=y[R].r-N;O=Math.max(O,F)}N=0;for(var I=0;I<y.length;I++){var D=y[I];0===I&&(N=D.r),D.r=N,N+=O}}for(var L={},j=0;j<y.length;j++)for(var q=y[j],_=q.dTheta,V=q.r,W=0;W<q.length;W++){var $=q[W],K=n.startAngle+(r?1:-1)*_*W,Z={x:u+V*Math.cos(K),y:s+V*Math.sin(K)};L[$.node.id()]=Z}return i.nodes().layoutPositions(this,n,function(t){var n=t.id();return L[n]}),this};var Sf={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(t,n){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(t){return 2048},nodeOverlap:4,idealEdgeLength:function(t){return 32},edgeElasticity:function(t){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function zf(t){this.options=pt({},Sf,t),this.options.layout=this;var n=this.options.eles.nodes(),r=this.options.eles.edges().filter(function(t){var r=t.source().data("id"),e=t.target().data("id"),i=n.some(function(t){return t.data("id")===r}),a=n.some(function(t){return t.data("id")===e});return!i||!a});this.options.eles=this.options.eles.not(r)}zf.prototype.run=function(){var t=this.options,n=t.cy,r=this;r.stopped=!1,!0!==t.animate&&!1!==t.animate||r.emit({type:"layoutstart",layout:r}),Af=!0===t.debug;var e=Pf(n,r,t);Af&&(void 0)(e),t.randomize&&Rf(e);var i=Rt(),a=function(){If(e,n,t),!0===t.fit&&n.fit(t.padding)},o=function(n){return!(r.stopped||n>=t.numIter)&&(Df(e,t),e.temperature=e.temperature*t.coolingFactor,!(e.temperature<t.minTemp))},u=function(){if(!0===t.animate||!1===t.animate)a(),r.one("layoutstop",t.stop),r.emit({type:"layoutstop",layout:r});else{var n=t.eles.nodes(),i=Ff(e,t,n);n.layoutPositions(r,t,i)}},s=0,f=!0;if(!0===t.animate){var c=function(){for(var n=0;f&&n<t.refresh;)f=o(s),s++,n++;f?(Rt()-i>=t.animationThreshold&&a(),Nt(c)):(Uf(e,t),u())};c()}else{for(;f;)f=o(s),s++;Uf(e,t),u()}return this},zf.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},zf.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Pf=function(t,n,r){for(var e=r.eles.edges(),i=r.eles.nodes(),a=Jn(r.boundingBox?r.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),o={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:e.size(),temperature:r.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},u=r.eles.components(),s={},f=0;f<u.length;f++)for(var c=u[f],l=0;l<c.length;l++){s[c[l].id()]=f}for(f=0;f<o.nodeSize;f++){var v=(y=i[f]).layoutDimensions(r);(N={}).isLocked=y.locked(),N.id=y.data("id"),N.parentId=y.data("parent"),N.cmptId=s[y.id()],N.children=[],N.positionX=y.position("x"),N.positionY=y.position("y"),N.offsetX=0,N.offsetY=0,N.height=v.w,N.width=v.h,N.maxX=N.positionX+N.width/2,N.minX=N.positionX-N.width/2,N.maxY=N.positionY+N.height/2,N.minY=N.positionY-N.height/2,N.padLeft=parseFloat(y.style("padding")),N.padRight=parseFloat(y.style("padding")),N.padTop=parseFloat(y.style("padding")),N.padBottom=parseFloat(y.style("padding")),N.nodeRepulsion=Z(r.nodeRepulsion)?r.nodeRepulsion(y):r.nodeRepulsion,o.layoutNodes.push(N),o.idToIndex[N.id]=f}var h=[],d=0,g=-1,p=[];for(f=0;f<o.nodeSize;f++){var y,m=(y=o.layoutNodes[f]).parentId;null!=m?o.layoutNodes[o.idToIndex[m]].children.push(y.id):(h[++g]=y.id,p.push(y.id))}for(o.graphSet.push(p);d<=g;){var b=h[d++],x=o.idToIndex[b],w=o.layoutNodes[x].children;if(w.length>0){o.graphSet.push(w);for(f=0;f<w.length;f++)h[++g]=w[f]}}for(f=0;f<o.graphSet.length;f++){var k=o.graphSet[f];for(l=0;l<k.length;l++){var M=o.idToIndex[k[l]];o.indexToGraph[M]=f}}for(f=0;f<o.edgeSize;f++){var B=e[f],C={};C.id=B.data("id"),C.sourceId=B.data("source"),C.targetId=B.data("target");var A=Z(r.idealEdgeLength)?r.idealEdgeLength(B):r.idealEdgeLength,T=Z(r.edgeElasticity)?r.edgeElasticity(B):r.edgeElasticity,E=o.idToIndex[C.sourceId],S=o.idToIndex[C.targetId];if(o.indexToGraph[E]!=o.indexToGraph[S]){for(var z=Of(C.sourceId,C.targetId,o),P=o.graphSet[z],O=0,N=o.layoutNodes[E];-1===P.indexOf(N.id);)N=o.layoutNodes[o.idToIndex[N.parentId]],O++;for(N=o.layoutNodes[S];-1===P.indexOf(N.id);)N=o.layoutNodes[o.idToIndex[N.parentId]],O++;A*=O*r.nestingFactor}C.idealLength=A,C.elasticity=T,o.layoutEdges.push(C)}return o},Of=function(t,n,r){var e=Nf(t,n,0,r);return 2>e.count?0:e.graph},Nf=function(t,n,r,e){var i=e.graphSet[r];if(-1<i.indexOf(t)&&-1<i.indexOf(n))return{count:2,graph:r};for(var a=0,o=0;o<i.length;o++){var u=i[o],s=e.idToIndex[u],f=e.layoutNodes[s].children;if(0!==f.length){var c=e.indexToGraph[e.idToIndex[f[0]]],l=Nf(t,n,c,e);if(0!==l.count){if(1!==l.count)return l;if(2===++a)break}}}return{count:a,graph:r}},Rf=function(t,n){for(var r=t.clientWidth,e=t.clientHeight,i=0;i<t.nodeSize;i++){var a=t.layoutNodes[i];0!==a.children.length||a.isLocked||(a.positionX=Math.random()*r,a.positionY=Math.random()*e)}},Ff=function(t,n,r){var e=t.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return n.boundingBox&&(r.forEach(function(n){var r=t.layoutNodes[t.idToIndex[n.data("id")]];i.x1=Math.min(i.x1,r.positionX),i.x2=Math.max(i.x2,r.positionX),i.y1=Math.min(i.y1,r.positionY),i.y2=Math.max(i.y2,r.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(r,a){var o=t.layoutNodes[t.idToIndex[r.data("id")]];if(n.boundingBox){var u=0===i.w?.5:(o.positionX-i.x1)/i.w,s=0===i.h?.5:(o.positionY-i.y1)/i.h;return{x:e.x1+u*e.w,y:e.y1+s*e.h}}return{x:o.positionX,y:o.positionY}}},If=function(t,n,r){var e=r.layout,i=r.eles.nodes(),a=Ff(t,r,i);i.positions(a),!0!==t.ready&&(t.ready=!0,e.one("layoutready",r.ready),e.emit({type:"layoutready",layout:this}))},Df=function(t,n,r){Lf(t,n),Wf(t),$f(t,n),Kf(t),Zf(t)},Lf=function(t,n){for(var r=0;r<t.graphSet.length;r++)for(var e=t.graphSet[r],i=e.length,a=0;a<i;a++)for(var o=t.layoutNodes[t.idToIndex[e[a]]],u=a+1;u<i;u++){var s=t.layoutNodes[t.idToIndex[e[u]]];qf(o,s,t,n)}},jf=function(t){return 2*t*Math.random()-1},qf=function(t,n,r,e){if(t.cmptId===n.cmptId||r.isCompound){var i=n.positionX-t.positionX,a=n.positionY-t.positionY;0===i&&0===a&&(i=jf(1),a=jf(1));var o=_f(t,n,i,a);if(o>0)var u=(f=e.nodeOverlap*o)*i/(g=Math.sqrt(i*i+a*a)),s=f*a/g;else{var f,c=Vf(t,i,a),l=Vf(n,-1*i,-1*a),v=l.x-c.x,h=l.y-c.y,d=v*v+h*h,g=Math.sqrt(d);u=(f=(t.nodeRepulsion+n.nodeRepulsion)/d)*v/g,s=f*h/g}t.isLocked||(t.offsetX-=u,t.offsetY-=s),n.isLocked||(n.offsetX+=u,n.offsetY+=s)}},_f=function(t,n,r,e){if(r>0)var i=t.maxX-n.minX;else i=n.maxX-t.minX;if(e>0)var a=t.maxY-n.minY;else a=n.maxY-t.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},Vf=function(t,n,r){var e=t.positionX,i=t.positionY,a=t.height||1,o=t.width||1,u=r/n,s=a/o,f={};return 0===n&&0<r||0===n&&0>r?(f.x=e,f.y=i+a/2,f):0<n&&-1*s<=u&&u<=s?(f.x=e+o/2,f.y=i+o*r/2/n,f):0>n&&-1*s<=u&&u<=s?(f.x=e-o/2,f.y=i-o*r/2/n,f):0<r&&(u<=-1*s||u>=s)?(f.x=e+a*n/2/r,f.y=i+a/2,f):0>r&&(u<=-1*s||u>=s)?(f.x=e-a*n/2/r,f.y=i-a/2,f):f},Wf=function(t,n){for(var r=0;r<t.edgeSize;r++){var e=t.layoutEdges[r],i=t.idToIndex[e.sourceId],a=t.layoutNodes[i],o=t.idToIndex[e.targetId],u=t.layoutNodes[o],s=u.positionX-a.positionX,f=u.positionY-a.positionY;if(0!==s||0!==f){var c=Vf(a,s,f),l=Vf(u,-1*s,-1*f),v=l.x-c.x,h=l.y-c.y,d=Math.sqrt(v*v+h*h),g=Math.pow(e.idealLength-d,2)/e.elasticity;if(0!==d)var p=g*v/d,y=g*h/d;else p=0,y=0;a.isLocked||(a.offsetX+=p,a.offsetY+=y),u.isLocked||(u.offsetX-=p,u.offsetY-=y)}}},$f=function(t,n){if(0!==n.gravity)for(var r=0;r<t.graphSet.length;r++){var e=t.graphSet[r],i=e.length;if(0===r)var a=t.clientHeight/2,o=t.clientWidth/2;else{var u=t.layoutNodes[t.idToIndex[e[0]]],s=t.layoutNodes[t.idToIndex[u.parentId]];a=s.positionX,o=s.positionY}for(var f=0;f<i;f++){var c=t.layoutNodes[t.idToIndex[e[f]]];if(!c.isLocked){var l=a-c.positionX,v=o-c.positionY,h=Math.sqrt(l*l+v*v);if(h>1){var d=n.gravity*l/h,g=n.gravity*v/h;c.offsetX+=d,c.offsetY+=g}}}}},Kf=function(t,n){var r=[],e=0,i=-1;for(r.push.apply(r,t.graphSet[0]),i+=t.graphSet[0].length;e<=i;){var a=r[e++],o=t.idToIndex[a],u=t.layoutNodes[o],s=u.children;if(0<s.length&&!u.isLocked){for(var f=u.offsetX,c=u.offsetY,l=0;l<s.length;l++){var v=t.layoutNodes[t.idToIndex[s[l]]];v.offsetX+=f,v.offsetY+=c,r[++i]=s[l]}u.offsetX=0,u.offsetY=0}}},Zf=function(t,n){for(var r=0;r<t.nodeSize;r++){0<(i=t.layoutNodes[r]).children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0)}for(r=0;r<t.nodeSize;r++){if(!(0<(i=t.layoutNodes[r]).children.length||i.isLocked)){var e=Hf(i.offsetX,i.offsetY,t.temperature);i.positionX+=e.x,i.positionY+=e.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,Gf(i,t)}}for(r=0;r<t.nodeSize;r++){var i;0<(i=t.layoutNodes[r]).children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},Hf=function(t,n,r){var e=Math.sqrt(t*t+n*n);if(e>r)var i={x:r*t/e,y:r*n/e};else i={x:t,y:n};return i},Gf=function(t,n){var r=t.parentId;if(null!=r){var e=n.layoutNodes[n.idToIndex[r]],i=!1;return(null==e.maxX||t.maxX+e.padRight>e.maxX)&&(e.maxX=t.maxX+e.padRight,i=!0),(null==e.minX||t.minX-e.padLeft<e.minX)&&(e.minX=t.minX-e.padLeft,i=!0),(null==e.maxY||t.maxY+e.padBottom>e.maxY)&&(e.maxY=t.maxY+e.padBottom,i=!0),(null==e.minY||t.minY-e.padTop<e.minY)&&(e.minY=t.minY-e.padTop,i=!0),i?Gf(e,n):void 0}},Uf=function(t,n){for(var r=t.layoutNodes,e=[],i=0;i<r.length;i++){var a=r[i],o=a.cmptId;(e[o]=e[o]||[]).push(a)}var u=0;for(i=0;i<e.length;i++){if(g=e[i]){g.x1=1/0,g.x2=-1/0,g.y1=1/0,g.y2=-1/0;for(var s=0;s<g.length;s++){var f=g[s];g.x1=Math.min(g.x1,f.positionX-f.width/2),g.x2=Math.max(g.x2,f.positionX+f.width/2),g.y1=Math.min(g.y1,f.positionY-f.height/2),g.y2=Math.max(g.y2,f.positionY+f.height/2)}g.w=g.x2-g.x1,g.h=g.y2-g.y1,u+=g.w*g.h}}e.sort(function(t,n){return n.w*n.h-t.w*t.h});var c=0,l=0,v=0,h=0,d=Math.sqrt(u)*t.clientWidth/t.clientHeight;for(i=0;i<e.length;i++){var g;if(g=e[i]){for(s=0;s<g.length;s++){(f=g[s]).isLocked||(f.positionX+=c-g.x1,f.positionY+=l-g.y1)}c+=g.w+n.componentSpacing,v+=g.w+n.componentSpacing,h=Math.max(h,g.h),v>d&&(l+=h+n.componentSpacing,c=0,v=0,h=0)}}},Yf={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(t){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}};function Xf(t){this.options=pt({},Yf,t)}Xf.prototype.run=function(){var t=this.options,n=t,r=t.cy,e=n.eles,i=e.nodes().not(":parent");n.sort&&(i=i.sort(n.sort));var a=Jn(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(0===a.h||0===a.w)e.nodes().layoutPositions(this,n,function(t){return{x:a.x1,y:a.y1}});else{var o=i.size(),u=Math.sqrt(o*a.h/a.w),s=Math.round(u),f=Math.round(a.w/a.h*u),c=function(t){if(null==t)return Math.min(s,f);Math.min(s,f)==s?s=t:f=t},l=function(t){if(null==t)return Math.max(s,f);Math.max(s,f)==s?s=t:f=t},v=n.rows,h=null!=n.cols?n.cols:n.columns;if(null!=v&&null!=h)s=v,f=h;else if(null!=v&&null==h)s=v,f=Math.ceil(o/s);else if(null==v&&null!=h)f=h,s=Math.ceil(o/f);else if(f*s>o){var d=c(),g=l();(d-1)*g>=o?c(d-1):(g-1)*d>=o&&l(g-1)}else for(;f*s<o;){var p=c(),y=l();(y+1)*p>=o?l(y+1):c(p+1)}var m=a.w/f,b=a.h/s;if(n.condense&&(m=0,b=0),n.avoidOverlap)for(var x=0;x<i.length;x++){var w=i[x],k=w.t.position;null!=k.x&&null!=k.y||(k.x=0,k.y=0);var M=w.layoutDimensions(n),B=n.avoidOverlapPadding,C=M.w+B,A=M.h+B;m=Math.max(m,C),b=Math.max(b,A)}for(var T={},E=function(t,n){return!!T["c-"+t+"-"+n]},S=function(t,n){T["c-"+t+"-"+n]=!0},z=0,P=0,O=function(){++P>=f&&(P=0,z++)},N={},R=0;R<i.length;R++){var F=i[R],I=n.position(F);if(I&&(void 0!==I.row||void 0!==I.col)){var D={row:I.row,col:I.col};if(void 0===D.col)for(D.col=0;E(D.row,D.col);)D.col++;else if(void 0===D.row)for(D.row=0;E(D.row,D.col);)D.row++;N[F.id()]=D,S(D.row,D.col)}}i.layoutPositions(this,n,function(t,n){var r,e;if(t.locked()||t.isParent())return!1;var i=N[t.id()];if(i)r=i.col*m+m/2+a.x1,e=i.row*b+b/2+a.y1;else{for(;E(z,P);)O();r=P*m+m/2+a.x1,e=z*b+b/2+a.y1,S(z,P),O()}return{x:r,y:e}})}return this};var Qf={ready:function(){},stop:function(){}};function Jf(t){this.options=pt({},Qf,t)}Jf.prototype.run=function(){var t=this.options,n=t.eles,r=this;return t.cy,r.emit("layoutstart"),n.nodes().positions(function(){return{x:0,y:0}}),r.one("layoutready",t.ready),r.emit("layoutready"),r.one("layoutstop",t.stop),r.emit("layoutstop"),this},Jf.prototype.stop=function(){return this};var tc={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}};function nc(t){this.options=pt({},tc,t)}nc.prototype.run=function(){var t=this.options,n=t.eles.nodes(),r=Z(t.positions);return n.layoutPositions(this,t,function(n,e){var i=function(n){if(null==t.positions)return{x:(e=n.position()).x,y:e.y};var e;if(r)return t.positions(n);var i=t.positions[n.t.data.id];return null==i?null:i}(n);return!n.locked()&&null!=i&&i}),this};var rc={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,n){return!0},ready:void 0,stop:void 0,transform:function(t,n){return n}};function ec(t){this.options=pt({},rc,t)}ec.prototype.run=function(){var t=this.options,n=t.cy,r=t.eles,e=Jn(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});return r.nodes().layoutPositions(this,t,function(t,n){return{x:e.x1+Math.round(Math.random()*e.w),y:e.y1+Math.round(Math.random()*e.h)}}),this};var ic=[{name:"breadthfirst",impl:Mf},{name:"circle",impl:Cf},{name:"concentric",impl:Ef},{name:"cose",impl:zf},{name:"grid",impl:Xf},{name:"null",impl:Jf},{name:"preset",impl:nc},{name:"random",impl:ec}];function ac(t){this.options=t,this.notifications=0}var oc=function(){},uc=function(){throw new Error("A headless instance can not render images")};ac.prototype={recalculateRenderedStyle:oc,notify:function(){this.notifications++},init:oc,isHeadless:function(){return!0},png:uc,jpg:uc};var sc={arrowShapeWidth:.3,registerArrowShapes:function(){var t=this.arrowShapes={},n=this,r=function(t,n,r,e,i,a,o){var u=i.x-r/2-o,s=i.x+r/2+o,f=i.y-r/2-o,c=i.y+r/2+o;return u<=t&&t<=s&&f<=n&&n<=c},e=function(t,n,r,e,i){var a=t*Math.cos(e)-n*Math.sin(e),o=(t*Math.sin(e)+n*Math.cos(e))*r;return{x:a*r+i.x,y:o+i.y}},i=function(t,n,r,i){for(var a=[],o=0;o<t.length;o+=2){var u=t[o],s=t[o+1];a.push(e(u,s,n,r,i))}return a},a=function(t){for(var n=[],r=0;r<t.length;r++){var e=t[r];n.push(e.x,e.y)}return n},o=function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").pfValue*2},u=function(e,u){K(u)&&(u=t[u]),t[e]=pt({name:e,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(t,n,r,e,o,u){var s=a(i(this.points,r+2*u,e,o));return pr(t,n,s)},roughCollide:r,draw:function(t,r,e,a){var o=i(this.points,r,e,a);n.arrowShapeImpl("polygon")(t,o)},spacing:function(t){return 0},gap:o},u)};u("none",{collide:Qt,roughCollide:Qt,draw:tn,spacing:Jt,gap:Jt}),u("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),u("arrow","triangle"),u("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:r,draw:function(t,r,a,o,u){var s=i(this.points,r,a,o),f=this.controlPoint,c=e(f[0],f[1],r,a,o);n.arrowShapeImpl(this.name)(t,s,c)},gap:function(t){return.8*o(t)}}),u("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(t,n,r,e,o,u,s){var f=a(i(this.points,r+2*s,e,o)),c=a(i(this.pointsTee,r+2*s,e,o));return pr(t,n,f)||pr(t,n,c)},draw:function(t,r,e,a,o){var u=i(this.points,r,e,a),s=i(this.pointsTee,r,e,a);n.arrowShapeImpl(this.name)(t,u,s)}}),u("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(t,n,r,e,o,u,s){var f=o,c=Math.pow(f.x-t,2)+Math.pow(f.y-n,2)<=Math.pow((r+2*s)*this.radius,2),l=a(i(this.points,r+2*s,e,o));return pr(t,n,l)||c},draw:function(t,r,e,a,o){var u=i(this.pointsTr,r,e,a);n.arrowShapeImpl(this.name)(t,u,a.x,a.y,this.radius*r)},spacing:function(t){return n.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),u("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(t,n){var r=this.baseCrossLinePts.slice(),e=n/t;return r[3]=r[3]-e,r[5]=r[5]-e,r},collide:function(t,n,r,e,o,u,s){var f=a(i(this.points,r+2*s,e,o)),c=a(i(this.crossLinePts(r,u),r+2*s,e,o));return pr(t,n,f)||pr(t,n,c)},draw:function(t,r,e,a,o){var u=i(this.points,r,e,a),s=i(this.crossLinePts(r,o),r,e,a);n.arrowShapeImpl(this.name)(t,u,s)}}),u("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(t){return.525*o(t)}}),u("circle",{radius:.15,collide:function(t,n,r,e,i,a,o){var u=i;return Math.pow(u.x-t,2)+Math.pow(u.y-n,2)<=Math.pow((r+2*o)*this.radius,2)},draw:function(t,r,e,i,a){n.arrowShapeImpl(this.name)(t,i.x,i.y,this.radius*r)},spacing:function(t){return n.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),u("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(t){return 1},gap:function(t){return 1}}),u("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),u("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}}),u("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(t){return.95*t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}})}},fc={projectIntoViewport:function(t,n){var r=this.cy,e=this.findContainerClientCoords(),i=e[0],a=e[1],o=e[4],u=r.pan(),s=r.zoom();return[((t-i)/o-u.x)/s,((n-a)/o-u.y)/s]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var t=this.container,n=t.getBoundingClientRect(),r=this.cy.window().getComputedStyle(t),e=function(t){return parseFloat(r.getPropertyValue(t))},i=e("padding-left"),a=e("padding-right"),o=e("padding-top"),u=e("padding-bottom"),s=e("border-left-width"),f=e("border-right-width"),c=e("border-top-width"),l=(e("border-bottom-width"),t.clientWidth),v=t.clientHeight,h=i+a,d=o+u,g=s+f,p=n.width/(l+g),y=l-h,m=v-d,b=n.left+i+s,x=n.top+o+c;return this.containerBB=[b,x,y,m,p]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(t,n,r,e){return this.findNearestElements(t,n,r,e)[0]},findNearestElements:function(t,n,r,e){var i,a,o=this,u=this,s=u.getCachedZSortedEles(),f=[],c=u.cy.zoom(),l=u.cy.hasCompoundNodes(),v=(e?24:8)/c,h=(e?8:2)/c,d=(e?8:2)/c,g=1/0;function p(t,n){if(t.isNode()){if(a)return;a=t,f.push(t)}if(t.isEdge()&&(null==n||n<g))if(i){if(i.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value)for(var r=0;r<f.length;r++)if(f[r].isEdge()){f[r]=t,i=t,g=null!=n?n:g;break}}else f.push(t),i=t,g=null!=n?n:g}function y(r){var e=r.outerWidth()+2*h,i=r.outerHeight()+2*h,a=e/2,s=i/2,f=r.position(),c="auto"===r.pstyle("corner-radius").value?"auto":r.pstyle("corner-radius").pfValue,l=r.t.rscratch;if(f.x-a<=t&&t<=f.x+a&&f.y-s<=n&&n<=f.y+s&&u.nodeShapes[o.getNodeShape(r)].checkPoint(t,n,0,e,i,f.x,f.y,c,l))return p(r,0),!0}function m(r){var e,i=r.t,a=i.rscratch,s=r.pstyle("width").pfValue,c=r.pstyle("arrow-scale").value,h=s/2+v,d=h*h,g=2*h,m=i.source,b=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var x=a.allpts,w=0;w+3<x.length;w+=2)if(vr(t,n,x[w],x[w+1],x[w+2],x[w+3],g)&&d>(e=gr(t,n,x[w],x[w+1],x[w+2],x[w+3])))return p(r,e),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5<a.allpts.length;w+=4)if(hr(t,n,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5],g)&&d>(e=dr(t,n,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return p(r,e),!0;m=m||i.source,b=b||i.target;var k=o.getArrowWidth(s,c),M=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w<M.length;w++){var B=M[w],C=u.arrowShapes[r.pstyle(B.name+"-arrow-shape").value],A=r.pstyle("width").pfValue;if(C.roughCollide(t,n,k,B.angle,{x:B.x,y:B.y},A,v)&&C.collide(t,n,k,B.angle,{x:B.x,y:B.y},A,v))return p(r),!0}l&&f.length>0&&(y(m),y(b))}function b(t,n,r){return vn(t,n,r)}function x(r,e){var i,a=r.t,o=d;i=e?e+"-":"",r.boundingBox();var u=a.labelBounds[e||"main"],s=r.pstyle(i+"label").value;if("yes"===r.pstyle("text-events").strValue&&s){var f=b(a.rscratch,"labelX",e),c=b(a.rscratch,"labelY",e),l=b(a.rscratch,"labelAngle",e),v=r.pstyle(i+"text-margin-x").pfValue,h=r.pstyle(i+"text-margin-y").pfValue,g=u.x1-o-v,y=u.x2+o-v,m=u.y1-o-h,x=u.y2+o-h;if(l){var w=Math.cos(l),k=Math.sin(l),M=function(t,n){return{x:(t-=f)*w-(n-=c)*k+f,y:t*k+n*w+c}},B=M(g,m),C=M(g,x),A=M(y,m),T=M(y,x),E=[B.x+v,B.y+h,A.x+v,A.y+h,T.x+v,T.y+h,C.x+v,C.y+h];if(pr(t,n,E))return p(r),!0}else if(or(u,t,n))return p(r),!0}}r&&(s=s.interactive);for(var w=s.length-1;w>=0;w--){var k=s[w];k.isNode()?y(k)||x(k):m(k)||x(k)||x(k,"source")||x(k,"target")}return f},getAllInBox:function(t,n,r,e){var i=this.getCachedZSortedEles().interactive,o=2/this.cy.zoom(),u=[],s=Math.min(t,r),f=Math.max(t,r),c=Math.min(n,e),l=Math.max(n,e),v=Jn({x1:t=s,y1:n=c,x2:r=f,y2:e=l}),h=[{x:v.x1,y:v.y1},{x:v.x2,y:v.y1},{x:v.x2,y:v.y2},{x:v.x1,y:v.y2}],d=[[h[0],h[1]],[h[1],h[2]],[h[2],h[3]],[h[3],h[0]]];function g(t,n,r){return vn(t,n,r)}function p(t,n){var r=t.t,e=o;t.boundingBox();var i=r.labelBounds.main;if(!i)return null;var a=g(r.rscratch,"labelX",n),u=g(r.rscratch,"labelY",n),s=g(r.rscratch,"labelAngle",n),f=t.pstyle("text-margin-x").pfValue,c=t.pstyle("text-margin-y").pfValue,l=i.x1-e-f,v=i.x2+e-f,h=i.y1-e-c,d=i.y2+e-c;if(s){var p=Math.cos(s),y=Math.sin(s),m=function(t,n){return{x:(t-=a)*p-(n-=u)*y+a,y:t*y+n*p+u}};return[m(l,h),m(v,h),m(v,d),m(l,d)]}return[{x:l,y:h},{x:v,y:h},{x:v,y:d},{x:l,y:d}]}function y(t,n,r,e){function i(t,n,r){return(r.y-t.y)*(n.x-t.x)>(n.y-t.y)*(r.x-t.x)}return i(t,r,e)!==i(n,r,e)&&i(t,n,r)!==i(t,n,e)}for(var m=0;m<i.length;m++){var b=i[m];if(b.isNode()){var x=b,w="yes"===x.pstyle("text-events").strValue,k=x.pstyle("box-selection").strValue,M="yes"===x.pstyle("box-select-labels").strValue;if("none"===k)continue;var B=("overlap"===k||M)&&w,C=x.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:B});if("contain"===k){var A=!1;if(M&&w){var T=p(x);T&&Nr(T,h)&&(u.push(x),A=!0)}!A&&sr(v,C)&&u.push(x)}else if("overlap"===k&&ar(v,C)){var E=x.boundingBox({includeNodes:!0,includeEdges:!0,includeLabels:!1,includeMainLabels:!1,includeSourceLabels:!1,includeTargetLabels:!1});if(Nr([{x:E.x1,y:E.y1},{x:E.x2,y:E.y1},{x:E.x2,y:E.y2},{x:E.x1,y:E.y2}],h))u.push(x);else{var S=p(x);S&&Nr(S,h)&&u.push(x)}}}else{var z=b,P=z.t,O=P.rscratch,N=z.pstyle("box-selection").strValue;if("none"===N)continue;if("contain"===N){if(null!=O.startX&&null!=O.startY&&!or(v,O.startX,O.startY))continue;if(null!=O.endX&&null!=O.endY&&!or(v,O.endX,O.endY))continue;if("bezier"===O.edgeType||"multibezier"===O.edgeType||"self"===O.edgeType||"compound"===O.edgeType||"segments"===O.edgeType||"haystack"===O.edgeType){for(var R=P.rstyle.bezierPts||P.rstyle.linePts||P.rstyle.haystackPts,F=!0,I=0;I<R.length;I++)if(!ur(v,R[I])){F=!1;break}F&&u.push(z)}else"straight"===O.edgeType&&u.push(z)}else if("overlap"===N){var D=!1;if(null!=O.startX&&null!=O.startY&&null!=O.endX&&null!=O.endY&&(or(v,O.startX,O.startY)||or(v,O.endX,O.endY)))u.push(z),D=!0;else if(!D&&"haystack"===O.edgeType)for(var L=P.rstyle.haystackPts,j=0;j<L.length;j++)if(ur(v,L[j])){u.push(z),D=!0;break}if(!D){var q=P.rstyle.bezierPts||P.rstyle.linePts||P.rstyle.haystackPts;if((!q||q.length<2)&&"straight"===O.edgeType&&null!=O.startX&&null!=O.startY&&null!=O.endX&&null!=O.endY&&(q=[{x:O.startX,y:O.startY},{x:O.endX,y:O.endY}]),!q||q.length<2)continue;for(var _=0;_<q.length-1;_++){for(var V=q[_],W=q[_+1],$=0;$<d.length;$++){var K=a(d[$],2);if(y(V,W,K[0],K[1])){u.push(z),D=!0;break}}if(D)break}}}}}return u}},cc={calculateArrowAngles:function(t){var n,r,e,i,a,o,u=t.t.rscratch,s="haystack"===u.edgeType,f="bezier"===u.edgeType,c="multibezier"===u.edgeType,l="segments"===u.edgeType,v="compound"===u.edgeType,h="self"===u.edgeType;if(s?(e=u.haystackPts[0],i=u.haystackPts[1],a=u.haystackPts[2],o=u.haystackPts[3]):(e=u.arrowStartX,i=u.arrowStartY,a=u.arrowEndX,o=u.arrowEndY),g=u.midX,p=u.midY,l)n=e-u.segpts[0],r=i-u.segpts[1];else if(c||v||h||f){var d=u.allpts;n=e-Yn(d[0],d[2],d[4],.1),r=i-Yn(d[1],d[3],d[5],.1)}else n=e-g,r=i-p;u.srcArrowAngle=$n(n,r);var g=u.midX,p=u.midY;if(s&&(g=(e+a)/2,p=(i+o)/2),n=a-e,r=o-i,l)if((d=u.allpts).length/2%2==0){var y=(C=d.length/2)-2;n=d[C]-d[y],r=d[C+1]-d[y+1]}else if(u.isRound)n=u.midVector[1],r=-u.midVector[0];else{y=(C=d.length/2-1)-2;n=d[C]-d[y],r=d[C+1]-d[y+1]}else if(c||v||h){var m,b,x,w,d=u.allpts;if(u.ctrlpts.length/2%2==0){var k=(M=(B=d.length/2-1)+2)+2;m=Yn(d[B],d[M],d[k],0),b=Yn(d[B+1],d[M+1],d[k+1],0),x=Yn(d[B],d[M],d[k],1e-4),w=Yn(d[B+1],d[M+1],d[k+1],1e-4)}else{var M,B;k=(M=d.length/2-1)+2;m=Yn(d[B=M-2],d[M],d[k],.4999),b=Yn(d[B+1],d[M+1],d[k+1],.4999),x=Yn(d[B],d[M],d[k],.5),w=Yn(d[B+1],d[M+1],d[k+1],.5)}n=x-m,r=w-b}if(u.midtgtArrowAngle=$n(n,r),u.midDispX=n,u.midDispY=r,n*=-1,r*=-1,l)if((d=u.allpts).length/2%2==0);else if(!u.isRound){var C,A=(C=d.length/2-1)+2;n=-(d[A]-d[C]),r=-(d[A+1]-d[C+1])}if(u.midsrcArrowAngle=$n(n,r),l)n=a-u.segpts[u.segpts.length-2],r=o-u.segpts[u.segpts.length-1];else if(c||v||h||f){var T=(d=u.allpts).length;n=a-Yn(d[T-6],d[T-4],d[T-2],.9),r=o-Yn(d[T-5],d[T-3],d[T-1],.9)}else n=a-g,r=o-p;u.tgtArrowAngle=$n(n,r)}};cc.getArrowWidth=cc.getArrowHeight=function(t,n){var r=this.arrowWidthCache=this.arrowWidthCache||{},e=r[t+", "+n];return e||(e=Math.max(Math.pow(13.37*t,.9),29)*n,r[t+", "+n]=e,e)};var lc,vc,hc,dc,gc,pc,yc,mc,bc,xc,wc,kc,Mc,Bc,Cc,Ac,Tc,Ec={},Sc={},zc=function(t,n,r){r.x=n.x-t.x,r.y=n.y-t.y,r.len=Math.sqrt(r.x*r.x+r.y*r.y),r.nx=r.x/r.len,r.ny=r.y/r.len,r.ang=Math.atan2(r.ny,r.nx)},Pc=function(t,n,r,e,i){var a,o;if(t!==Tc?zc(n,t,Ec):((o=Ec).x=-1*(a=Sc).x,o.y=-1*a.y,o.nx=-1*a.nx,o.ny=-1*a.ny,o.ang=a.ang>0?-(Math.PI-a.ang):Math.PI+a.ang),zc(n,r,Sc),hc=Ec.nx*Sc.ny-Ec.ny*Sc.nx,dc=Ec.nx*Sc.nx-Ec.ny*-Sc.ny,yc=Math.asin(Math.max(-1,Math.min(1,hc))),Math.abs(yc)<1e-6)return lc=n.x,vc=n.y,void(bc=wc=0);gc=1,pc=!1,dc<0?yc<0?yc=Math.PI+yc:(yc=Math.PI-yc,gc=-1,pc=!0):yc>0&&(gc=-1,pc=!0),wc=void 0!==n.radius?n.radius:e,mc=yc/2,kc=Math.min(Ec.len/2,Sc.len/2),i?(xc=Math.abs(Math.cos(mc)*wc/Math.sin(mc)))>kc?(xc=kc,bc=Math.abs(xc*Math.sin(mc)/Math.cos(mc))):bc=wc:(xc=Math.min(kc,wc),bc=Math.abs(xc*Math.sin(mc)/Math.cos(mc))),Cc=n.x+Sc.nx*xc,Ac=n.y+Sc.ny*xc,lc=Cc-Sc.ny*bc*gc,vc=Ac+Sc.nx*bc*gc,Mc=n.x+Ec.nx*xc,Bc=n.y+Ec.ny*xc,Tc=n};function Oc(t,n){0===n.radius?t.lineTo(n.cx,n.cy):t.arc(n.cx,n.cy,n.radius,n.startAngle,n.endAngle,n.counterClockwise)}function Nc(t,n,r,e){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===e||0===n.radius?{cx:n.x,cy:n.y,radius:0,startX:n.x,startY:n.y,stopX:n.x,stopY:n.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Pc(t,n,r,e,i),{cx:lc,cy:vc,radius:bc,startX:Mc,startY:Bc,stopX:Cc,stopY:Ac,startAngle:Ec.ang+Math.PI/2*gc,endAngle:Sc.ang-Math.PI/2*gc,counterClockwise:pc})}var Rc=.01,Fc=Math.sqrt(.02),Ic={};function Dc(t){var n=[];if(null!=t){for(var r=0;r<t.length;r+=2){var e=t[r],i=t[r+1];n.push({x:e,y:i})}return n}}Ic.findMidptPtsEtc=function(t,n){var r,e,i,o,u=n.posPts,s=n.intersectionPts,f=n.vectorNormInverse,c=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),v=null!=c.units&&null!=l.units;switch(t.pstyle("edge-distances").value){case"node-position":r=u;break;case"intersection":r=s;break;case"endpoints":if(v){var h=a(this.manualEndptToPx(t.source()[0],c),2),d=h[0],g=h[1],p=a(this.manualEndptToPx(t.target()[0],l),2),y=p[0],m=p[1],b={x1:d,y1:g,x2:y,y2:m};e=m-g,i=y-d,o=Math.sqrt(i*i+e*e),f={x:-e/o,y:i/o},r=b}else en("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),r=s}return{midptPts:r,vectorNormInverse:f}},Ic.findHaystackPoints=function(t){for(var n=0;n<t.length;n++){var r=t[n],e=r.t,i=e.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=e.source,u=e.target,s=o.position(),f=u.position(),c=o.width(),l=u.width(),v=o.height(),h=u.height(),d=r.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*c*d+s.x,i.source.y*v*d+s.y,i.target.x*l*d+f.x,i.target.y*h*d+f.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(r),this.calculateArrowAngles(r),this.recalculateEdgeLabelProjections(r),this.calculateLabelAngles(r)}},Ic.findSegmentsPoints=function(t,n){var r=t.t.rscratch,e=t.pstyle("segment-weights"),i=t.pstyle("segment-distances"),a=t.pstyle("segment-radii"),o=t.pstyle("radius-type"),u=Math.min(e.pfValue.length,i.pfValue.length),s=a.pfValue[a.pfValue.length-1],f=o.pfValue[o.pfValue.length-1];r.edgeType="segments",r.segpts=[],r.radii=[],r.isArcRadius=[];for(var c=0;c<u;c++){var l=e.pfValue[c],v=i.pfValue[c],h=1-l,d=l,g=this.findMidptPtsEtc(t,n),p=g.midptPts,y=g.vectorNormInverse,m={x:p.x1*h+p.x2*d,y:p.y1*h+p.y2*d};r.segpts.push(m.x+y.x*v,m.y+y.y*v),r.radii.push(void 0!==a.pfValue[c]?a.pfValue[c]:s),r.isArcRadius.push("arc-radius"===(void 0!==o.pfValue[c]?o.pfValue[c]:f))}},Ic.findLoopPoints=function(t,n,r,e){var i=t.t.rscratch,a=n.dirCounts,o=n.srcPos,u=t.pstyle("control-point-distances"),s=u?u.pfValue[0]:void 0,f=t.pstyle("loop-direction").pfValue,c=t.pstyle("loop-sweep").pfValue,l=t.pstyle("control-point-step-size").pfValue;i.edgeType="self";var v=r,h=l;e&&(v=0,h=s);var d=f-Math.PI/2,g=d-c/2,p=d+c/2,y=String(f+"_"+c);v=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(g)*h*(v/3+1),o.y+1.4*Math.sin(g)*h*(v/3+1),o.x+1.4*Math.cos(p)*h*(v/3+1),o.y+1.4*Math.sin(p)*h*(v/3+1)]},Ic.findCompoundLoopPoints=function(t,n,r,e){var i=t.t.rscratch;i.edgeType="compound";var a=n.srcPos,o=n.tgtPos,u=n.srcW,s=n.srcH,f=n.tgtW,c=n.tgtH,l=t.pstyle("control-point-step-size").pfValue,v=t.pstyle("control-point-distances"),h=v?v.pfValue[0]:void 0,d=r,g=l;e&&(d=0,g=h);var p={x:a.x-u/2,y:a.y-s/2},y={x:o.x-f/2,y:o.y-c/2},m={x:Math.min(p.x,y.x),y:Math.min(p.y,y.y)},b=Math.max(.5,Math.log(u*Rc)),x=Math.max(.5,Math.log(f*Rc));i.ctrlpts=[m.x,m.y-(1+Math.pow(50,1.12)/100)*g*(d/3+1)*b,m.x-(1+Math.pow(50,1.12)/100)*g*(d/3+1)*x,m.y]},Ic.findStraightEdgePoints=function(t){t.t.rscratch.edgeType="straight"},Ic.findBezierPoints=function(t,n,r,e,i){var a=t.t.rscratch,o=t.pstyle("control-point-step-size").pfValue,u=t.pstyle("control-point-distances"),s=t.pstyle("control-point-weights"),f=u&&s?Math.min(u.value.length,s.value.length):1,c=u?u.pfValue[0]:void 0,l=s.value[0],v=e;a.edgeType=v?"multibezier":"bezier",a.ctrlpts=[];for(var h=0;h<f;h++){var d=(.5-n.eles.length/2+r)*o*(i?-1:1),g=void 0,p=Zn(d);v&&(c=u?u.pfValue[h]:o,l=s.value[h]);var y=void 0!==(g=e?c:void 0!==c?p*c:void 0)?g:d,m=1-l,b=l,x=this.findMidptPtsEtc(t,n),w=x.midptPts,k=x.vectorNormInverse,M={x:w.x1*m+w.x2*b,y:w.y1*m+w.y2*b};a.ctrlpts.push(M.x+k.x*y,M.y+k.y*y)}},Ic.findTaxiPoints=function(t,n){var r=t.t.rscratch;r.edgeType="segments";var e="vertical",i="horizontal",a="leftward",o="rightward",u="downward",s="upward",f=n.posPts,c=n.srcW,l=n.srcH,v=n.tgtW,h=n.tgtH,d="node-position"!==t.pstyle("edge-distances").value,g=t.pstyle("taxi-direction").value,p=g,y=t.pstyle("taxi-turn"),m="%"===y.units,b=y.pfValue,x=b<0,w=t.pstyle("taxi-turn-min-distance").pfValue,k=d?(c+v)/2:0,M=d?(l+h)/2:0,B=f.x2-f.x1,C=f.y2-f.y1,A=function(t,n){return t>0?Math.max(t-n,0):Math.min(t+n,0)},T=A(B,k),E=A(C,M),S=!1;"auto"===p?g=Math.abs(T)>Math.abs(E)?i:e:p===s||p===u?(g=e,S=!0):p!==a&&p!==o||(g=i,S=!0);var z,P=g===e,O=P?E:T,N=P?C:B,R=Zn(N),F=!1;(S&&(m||x)||!(p===u&&N<0||p===s&&N>0||p===a&&N>0||p===o&&N<0)||(O=(R*=-1)*Math.abs(O),F=!0),m)?z=(b<0?1+b:b)*O:z=(b<0?O:0)+b*R;var I=function(t){return Math.abs(t)<w||Math.abs(t)>=Math.abs(O)},D=I(z),L=I(Math.abs(O)-Math.abs(z));if((D||L)&&!F)if(P){var j=Math.abs(N)<=l/2,q=Math.abs(B)<=v/2;if(j){var _=(f.x1+f.x2)/2,V=f.y1,W=f.y2;r.segpts=[_,V,_,W]}else if(q){var $=(f.y1+f.y2)/2,K=f.x1,Z=f.x2;r.segpts=[K,$,Z,$]}else r.segpts=[f.x1,f.y2]}else{var H=Math.abs(N)<=c/2,G=Math.abs(C)<=h/2;if(H){var U=(f.y1+f.y2)/2,Y=f.x1,X=f.x2;r.segpts=[Y,U,X,U]}else if(G){var Q=(f.x1+f.x2)/2,J=f.y1,tt=f.y2;r.segpts=[Q,J,Q,tt]}else r.segpts=[f.x2,f.y1]}else if(P){var nt=f.y1+z+(d?l/2*R:0),rt=f.x1,et=f.x2;r.segpts=[rt,nt,et,nt]}else{var it=f.x1+z+(d?c/2*R:0),at=f.y1,ot=f.y2;r.segpts=[it,at,it,ot]}if(r.isRound){var ut=t.pstyle("taxi-radius").value,st="arc-radius"===t.pstyle("radius-type").value[0];r.radii=new Array(r.segpts.length/2).fill(ut),r.isArcRadius=new Array(r.segpts.length/2).fill(st)}},Ic.tryToCorrectInvalidPoints=function(t,n){var r=t.t.rscratch;if("bezier"===r.edgeType){var e=n.srcPos,i=n.tgtPos,a=n.srcW,o=n.srcH,u=n.tgtW,s=n.tgtH,f=n.srcShape,c=n.tgtShape,l=n.srcCornerRadius,v=n.tgtCornerRadius,h=n.srcRs,d=n.tgtRs,g=!U(r.startX)||!U(r.startY),p=!U(r.arrowStartX)||!U(r.arrowStartY),y=!U(r.endX)||!U(r.endY),m=!U(r.arrowEndX)||!U(r.arrowEndY),b=3*(this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth),x=Hn({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),w=x<b,k=Hn({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.endX,y:r.endY}),M=k<b,B=!1;if(g||p||w){B=!0;var C={x:r.ctrlpts[0]-e.x,y:r.ctrlpts[1]-e.y},A=Math.sqrt(C.x*C.x+C.y*C.y),T={x:C.x/A,y:C.y/A},E=Math.max(a,o),S={x:r.ctrlpts[0]+2*T.x*E,y:r.ctrlpts[1]+2*T.y*E},z=f.intersectLine(e.x,e.y,a,o,S.x,S.y,0,l,h);w?(r.ctrlpts[0]=r.ctrlpts[0]+T.x*(b-x),r.ctrlpts[1]=r.ctrlpts[1]+T.y*(b-x)):(r.ctrlpts[0]=z[0]+T.x*b,r.ctrlpts[1]=z[1]+T.y*b)}if(y||m||M){B=!0;var P={x:r.ctrlpts[0]-i.x,y:r.ctrlpts[1]-i.y},O=Math.sqrt(P.x*P.x+P.y*P.y),N={x:P.x/O,y:P.y/O},R=Math.max(a,o),F={x:r.ctrlpts[0]+2*N.x*R,y:r.ctrlpts[1]+2*N.y*R},I=c.intersectLine(i.x,i.y,u,s,F.x,F.y,0,v,d);M?(r.ctrlpts[0]=r.ctrlpts[0]+N.x*(b-k),r.ctrlpts[1]=r.ctrlpts[1]+N.y*(b-k)):(r.ctrlpts[0]=I[0]+N.x*b,r.ctrlpts[1]=I[1]+N.y*b)}B&&this.findEndpoints(t)}},Ic.storeAllpts=function(t){var n=t.t.rscratch;if("multibezier"===n.edgeType||"bezier"===n.edgeType||"self"===n.edgeType||"compound"===n.edgeType){n.allpts=[],n.allpts.push(n.startX,n.startY);for(var r=0;r+1<n.ctrlpts.length;r+=2)n.allpts.push(n.ctrlpts[r],n.ctrlpts[r+1]),r+3<n.ctrlpts.length&&n.allpts.push((n.ctrlpts[r]+n.ctrlpts[r+2])/2,(n.ctrlpts[r+1]+n.ctrlpts[r+3])/2);var e;n.allpts.push(n.endX,n.endY),n.ctrlpts.length/2%2==0?(e=n.allpts.length/2-1,n.midX=n.allpts[e],n.midY=n.allpts[e+1]):(e=n.allpts.length/2-3,n.midX=Yn(n.allpts[e],n.allpts[e+2],n.allpts[e+4],.5),n.midY=Yn(n.allpts[e+1],n.allpts[e+3],n.allpts[e+5],.5))}else if("straight"===n.edgeType)n.allpts=[n.startX,n.startY,n.endX,n.endY],n.midX=(n.startX+n.endX+n.arrowStartX+n.arrowEndX)/4,n.midY=(n.startY+n.endY+n.arrowStartY+n.arrowEndY)/4;else if("segments"===n.edgeType){if(n.allpts=[],n.allpts.push(n.startX,n.startY),n.allpts.push.apply(n.allpts,n.segpts),n.allpts.push(n.endX,n.endY),n.isRound){n.roundCorners=[];for(var i=2;i+3<n.allpts.length;i+=2){var a=n.radii[i/2-1],o=n.isArcRadius[i/2-1];n.roundCorners.push(Nc({x:n.allpts[i-2],y:n.allpts[i-1]},{x:n.allpts[i],y:n.allpts[i+1],radius:a},{x:n.allpts[i+2],y:n.allpts[i+3]},a,o))}}if(n.segpts.length%4==0){var u=n.segpts.length/2,s=u-2;n.midX=(n.segpts[s]+n.segpts[u])/2,n.midY=(n.segpts[s+1]+n.segpts[u+1])/2}else{var f=n.segpts.length/2-1;if(n.isRound){var c={x:n.segpts[f],y:n.segpts[f+1]},l=n.roundCorners[f/2];if(0===l.radius){var v={x:n.segpts[f+2],y:n.segpts[f+3]};n.midX=c.x,n.midY=c.y,n.midVector=[c.y-v.y,v.x-c.x]}else{var h=[c.x-l.cx,c.y-l.cy],d=l.radius/Math.sqrt(Math.pow(h[0],2)+Math.pow(h[1],2));h=h.map(function(t){return t*d}),n.midX=l.cx+h[0],n.midY=l.cy+h[1],n.midVector=h}}else n.midX=n.segpts[f],n.midY=n.segpts[f+1]}}},Ic.checkForInvalidEdgeWarning=function(t){var n=t[0].t.rscratch;n.nodesOverlap||U(n.startX)&&U(n.startY)&&U(n.endX)&&U(n.endY)?n.loggedErr=!1:n.loggedErr||(n.loggedErr=!0,en("Edge `"+t.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},Ic.findEdgeControlPoints=function(t){var n=this;if(t&&0!==t.length){for(var r=this,e=r.cy.hasCompoundNodes(),i=new dn,a=function(t,n){return[].concat(o(t),[n?1:0]).join("-")},u=[],s=[],f=0;f<t.length;f++){var c=t[f],l=c.t,v=c.pstyle("curve-style").value;if(!c.removed()&&c.takesUpSpace())if("haystack"!==v){var h="unbundled-bezier"===v||ft(v,"segments")||"straight"===v||"straight-triangle"===v||ft(v,"taxi"),d="unbundled-bezier"===v||"bezier"===v,g=l.source,p=l.target,y=[g.poolIndex(),p.poolIndex()].sort(),m=a(y,h),b=i.get(m);null==b&&(b={eles:[]},u.push({pairId:y,edgeIsUnbundled:h}),i.set(m,b)),b.eles.push(c),h&&(b.hasUnbundled=!0),d&&(b.hasBezier=!0)}else s.push(c)}for(var x=function(){var t,o=u[w],s=o.pairId,f=o.edgeIsUnbundled,c=a(s,f),l=i.get(c);if(!l.hasUnbundled){var v=l.eles[0].parallelEdges().filter(function(t){return t.isBundledBezier()});ln(l.eles),v.forEach(function(t){return l.eles.push(t)}),l.eles.sort(function(t,n){return t.poolIndex()-n.poolIndex()})}var h=l.eles[0],d=h.source(),g=h.target();if(d.poolIndex()>g.poolIndex()){var p=d;d=g,g=p}var y=l.srcPos=d.position(),m=l.tgtPos=g.position(),b=l.srcW=d.outerWidth(),x=l.srcH=d.outerHeight(),k=l.tgtW=g.outerWidth(),M=l.tgtH=g.outerHeight(),B=l.srcShape=r.nodeShapes[n.getNodeShape(d)],C=l.tgtShape=r.nodeShapes[n.getNodeShape(g)],A=l.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,T=l.tgtCornerRadius="auto"===g.pstyle("corner-radius").value?"auto":g.pstyle("corner-radius").pfValue,E=l.tgtRs=g.t.rscratch,S=l.srcRs=d.t.rscratch;l.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var z=0;z<l.eles.length;z++){var P=l.eles[z],O=P[0].t.rscratch,N=P.pstyle("curve-style").value,R="unbundled-bezier"===N||ft(N,"segments")||ft(N,"taxi"),F=!d.same(P.source());if(!l.calculatedIntersection&&d!==g&&(l.hasBezier||l.hasUnbundled)){l.calculatedIntersection=!0;var I=B.intersectLine(y.x,y.y,b,x,m.x,m.y,0,A,S),D=l.srcIntn=I,L=C.intersectLine(m.x,m.y,k,M,y.x,y.y,0,T,E),j=l.tgtIntn=L,q=l.intersectionPts={x1:I[0],x2:L[0],y1:I[1],y2:L[1]},_=l.posPts={x1:y.x,x2:m.x,y1:y.y,y2:m.y},V=L[1]-I[1],W=L[0]-I[0],$=Math.sqrt(W*W+V*V);U($)&&$>=Fc||($=Math.sqrt(Math.max(W*W,Rc)+Math.max(V*V,Rc)));var K=l.vector={x:W,y:V},Z=l.vectorNorm={x:K.x/$,y:K.y/$},H={x:-Z.y,y:Z.x};l.nodesOverlap=!U($)||C.checkPoint(I[0],I[1],0,k,M,m.x,m.y,T,E)||B.checkPoint(L[0],L[1],0,b,x,y.x,y.y,A,S),l.vectorNormInverse=H,t={nodesOverlap:l.nodesOverlap,dirCounts:l.dirCounts,calculatedIntersection:!0,hasBezier:l.hasBezier,hasUnbundled:l.hasUnbundled,eles:l.eles,srcPos:m,srcRs:E,tgtPos:y,tgtRs:S,srcW:k,srcH:M,tgtW:b,tgtH:x,srcIntn:j,tgtIntn:D,srcShape:C,tgtShape:B,posPts:{x1:_.x2,y1:_.y2,x2:_.x1,y2:_.y1},intersectionPts:{x1:q.x2,y1:q.y2,x2:q.x1,y2:q.y1},vector:{x:-K.x,y:-K.y},vectorNorm:{x:-Z.x,y:-Z.y},vectorNormInverse:{x:-H.x,y:-H.y}}}var G=F?t:l;O.nodesOverlap=G.nodesOverlap,O.srcIntn=G.srcIntn,O.tgtIntn=G.tgtIntn,O.isRound=N.startsWith("round"),e&&(d.isParent()||d.isChild()||g.isParent()||g.isChild())&&(d.parents().anySame(g)||g.parents().anySame(d)||d.same(g)&&d.isParent())?n.findCompoundLoopPoints(P,G,z,R):d===g?n.findLoopPoints(P,G,z,R):N.endsWith("segments")?n.findSegmentsPoints(P,G):N.endsWith("taxi")?n.findTaxiPoints(P,G):"straight"===N||!R&&l.eles.length%2==1&&z===Math.floor(l.eles.length/2)?n.findStraightEdgePoints(P):n.findBezierPoints(P,G,z,R,F),n.findEndpoints(P),n.tryToCorrectInvalidPoints(P,G),n.checkForInvalidEdgeWarning(P),n.storeAllpts(P),n.storeEdgeProjections(P),n.calculateArrowAngles(P),n.recalculateEdgeLabelProjections(P),n.calculateLabelAngles(P)}},w=0;w<u.length;w++)x();this.findHaystackPoints(s)}},Ic.getSegmentPoints=function(t){var n=t[0].t.rscratch;if(this.recalculateRenderedStyle(t),"segments"===n.edgeType)return Dc(n.segpts)},Ic.getControlPoints=function(t){var n=t[0].t.rscratch;this.recalculateRenderedStyle(t);var r=n.edgeType;if("bezier"===r||"multibezier"===r||"self"===r||"compound"===r)return Dc(n.ctrlpts)},Ic.getEdgeMidpoint=function(t){var n=t[0].t.rscratch;return this.recalculateRenderedStyle(t),{x:n.midX,y:n.midY}};var Lc={manualEndptToPx:function(t,n){var r=t.position(),e=t.outerWidth(),i=t.outerHeight(),a=t.t.rscratch;if(2===n.value.length){var o=[n.pfValue[0],n.pfValue[1]];return"%"===n.units[0]&&(o[0]=o[0]*e),"%"===n.units[1]&&(o[1]=o[1]*i),o[0]+=r.x,o[1]+=r.y,o}var u=n.pfValue[0];u=-Math.PI/2+u;var s=2*Math.max(e,i),f=[r.x+Math.cos(u)*s,r.y+Math.sin(u)*s];return this.nodeShapes[this.getNodeShape(t)].intersectLine(r.x,r.y,e,i,f[0],f[1],0,"auto"===t.pstyle("corner-radius").value?"auto":t.pstyle("corner-radius").pfValue,a)},findEndpoints:function(t){var n,r,e,i,a,o,u,s,f,c=this,l=t.source()[0],v=t.target()[0],h=l.position(),d=v.position(),g=t.pstyle("target-arrow-shape").value,p=t.pstyle("source-arrow-shape").value,y=t.pstyle("target-distance-from-node").pfValue,m=t.pstyle("source-distance-from-node").pfValue,b=l.t.rscratch,x=v.t.rscratch,w=t.pstyle("curve-style").value,k=t.t.rscratch,M=k.edgeType,B=ft(w,"taxi"),C="self"===M||"compound"===M,A="bezier"===M||"multibezier"===M||C,T="bezier"!==M,E="straight"===M||"segments"===M,S="segments"===M,z=A||T||E,P=C||B,O=t.pstyle("source-endpoint"),N=P?"outside-to-node":O.value,R="auto"===l.pstyle("corner-radius").value?"auto":l.pstyle("corner-radius").pfValue,F=t.pstyle("target-endpoint"),I=P?"outside-to-node":F.value,D="auto"===v.pstyle("corner-radius").value?"auto":v.pstyle("corner-radius").pfValue;k.srcManEndpt=O,k.tgtManEndpt=F;var L=null!==(n=2===(null==F||null===(r=F.pfValue)||void 0===r?void 0:r.length)?F.pfValue:null)&&void 0!==n?n:[0,0],j=null!==(e=2===(null==O||null===(i=O.pfValue)||void 0===i?void 0:i.length)?O.pfValue:null)&&void 0!==e?e:[0,0];if(A){var q=[k.ctrlpts[0],k.ctrlpts[1]];o=T?[k.ctrlpts[k.ctrlpts.length-2],k.ctrlpts[k.ctrlpts.length-1]]:q,u=q}else if(E){var _=S?k.segpts.slice(0,2):[d.x+L[0],d.y+L[1]];o=S?k.segpts.slice(k.segpts.length-2):[h.x+j[0],h.y+j[1]],u=_}if("inside-to-node"===I)a=[d.x,d.y];else if(F.units)a=this.manualEndptToPx(v,F);else if("outside-to-line"===I)a=k.tgtIntn;else if("outside-to-node"===I||"outside-to-node-or-label"===I?s=o:"outside-to-line"!==I&&"outside-to-line-or-label"!==I||(s=[h.x,h.y]),a=c.nodeShapes[this.getNodeShape(v)].intersectLine(d.x,d.y,v.outerWidth(),v.outerHeight(),s[0],s[1],0,D,x),"outside-to-node-or-label"===I||"outside-to-line-or-label"===I){var V=v.t.rscratch,W=V.labelWidth,$=V.labelHeight,K=V.labelX,Z=V.labelY,H=W/2,G=$/2,Y=v.pstyle("text-valign").value;"top"===Y?Z-=G:"bottom"===Y&&(Z+=G);var X=v.pstyle("text-halign").value;"left"===X?K-=H:"right"===X&&(K+=H);var Q=Cr(s[0],s[1],[K-H,Z-G,K+H,Z-G,K+H,Z+G,K-H,Z+G],d.x,d.y);if(Q.length>0){var J=h,tt=Gn(J,Wn(a)),nt=Gn(J,Wn(Q)),rt=tt;if(nt<tt&&(a=Q,rt=nt),Q.length>2)Gn(J,{x:Q[2],y:Q[3]})<rt&&(a=[Q[2],Q[3]])}}var et=Ar(a,o,c.arrowShapes[g].spacing(t)+y),it=Ar(a,o,c.arrowShapes[g].gap(t)+y);if(k.endX=it[0],k.endY=it[1],k.arrowEndX=et[0],k.arrowEndY=et[1],"inside-to-node"===N)a=[h.x,h.y];else if(O.units)a=this.manualEndptToPx(l,O);else if("outside-to-line"===N)a=k.srcIntn;else if("outside-to-node"===N||"outside-to-node-or-label"===N?f=u:"outside-to-line"!==N&&"outside-to-line-or-label"!==N||(f=[d.x,d.y]),a=c.nodeShapes[this.getNodeShape(l)].intersectLine(h.x,h.y,l.outerWidth(),l.outerHeight(),f[0],f[1],0,R,b),"outside-to-node-or-label"===N||"outside-to-line-or-label"===N){var at=l.t.rscratch,ot=at.labelWidth,ut=at.labelHeight,st=at.labelX,ct=at.labelY,lt=ot/2,vt=ut/2,ht=l.pstyle("text-valign").value;"top"===ht?ct-=vt:"bottom"===ht&&(ct+=vt);var dt=l.pstyle("text-halign").value;"left"===dt?st-=lt:"right"===dt&&(st+=lt);var gt=Cr(f[0],f[1],[st-lt,ct-vt,st+lt,ct-vt,st+lt,ct+vt,st-lt,ct+vt],h.x,h.y);if(gt.length>0){var pt=d,yt=Gn(pt,Wn(a)),mt=Gn(pt,Wn(gt)),bt=yt;if(mt<yt&&(a=[gt[0],gt[1]],bt=mt),gt.length>2)Gn(pt,{x:gt[2],y:gt[3]})<bt&&(a=[gt[2],gt[3]])}}var xt=Ar(a,u,c.arrowShapes[p].spacing(t)+m),wt=Ar(a,u,c.arrowShapes[p].gap(t)+m);k.startX=wt[0],k.startY=wt[1],k.arrowStartX=xt[0],k.arrowStartY=xt[1],z&&(U(k.startX)&&U(k.startY)&&U(k.endX)&&U(k.endY)?k.badLine=!1:k.badLine=!0)},getSourceEndpoint:function(t){var n=t[0].t.rscratch;return this.recalculateRenderedStyle(t),"haystack"===n.edgeType?{x:n.haystackPts[0],y:n.haystackPts[1]}:{x:n.arrowStartX,y:n.arrowStartY}},getTargetEndpoint:function(t){var n=t[0].t.rscratch;return this.recalculateRenderedStyle(t),"haystack"===n.edgeType?{x:n.haystackPts[2],y:n.haystackPts[3]}:{x:n.arrowEndX,y:n.arrowEndY}}},jc={};function qc(t,n,r){for(var e=function(t,n,r,e){return Yn(t,n,r,e)},i=n.t.rstyle.bezierPts,a=0;a<t.bezierProjPcts.length;a++){var o=t.bezierProjPcts[a];i.push({x:e(r[0],r[2],r[4],o),y:e(r[1],r[3],r[5],o)})}}jc.storeEdgeProjections=function(t){var n=t.t,r=n.rscratch,e=r.edgeType;if(n.rstyle.bezierPts=null,n.rstyle.linePts=null,n.rstyle.haystackPts=null,"multibezier"===e||"bezier"===e||"self"===e||"compound"===e){n.rstyle.bezierPts=[];for(var i=0;i+5<r.allpts.length;i+=4)qc(this,t,r.allpts.slice(i,i+6))}else if("segments"===e){var a=n.rstyle.linePts=[];for(i=0;i+1<r.allpts.length;i+=2)a.push({x:r.allpts[i],y:r.allpts[i+1]})}else if("haystack"===e){var o=r.haystackPts;n.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}n.rstyle.arrowWidth=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth},jc.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};var _c={recalculateNodeLabelProjection:function(t){var n=t.pstyle("label").strValue;if(!rt(n)){var r,e,i=t.t,a=t.width(),o=t.height(),u=t.padding(),s=t.position(),f=t.pstyle("text-halign").strValue,c=t.pstyle("text-valign").strValue,l=i.rscratch,v=i.rstyle;switch(f){case"left":r=s.x-a/2-u;break;case"right":r=s.x+a/2+u;break;default:r=s.x}switch(c){case"top":e=s.y-o/2-u;break;case"bottom":e=s.y+o/2+u;break;default:e=s.y}l.labelX=r,l.labelY=e,v.labelX=r,v.labelY=e,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}}},Vc=function(t,n){var r=Math.atan(n/t);return 0===t&&r<0&&(r*=-1),r},Wc=function(t,n){var r=n.x-t.x,e=n.y-t.y;return Vc(r,e)};_c.recalculateEdgeLabelProjections=function(t){var n,r=t.t,e=r.rscratch,i=this,a={mid:t.pstyle("label").strValue,source:t.pstyle("source-label").strValue,target:t.pstyle("target-label").strValue};if(a.mid||a.source||a.target){n={x:e.midX,y:e.midY};var o=function(t,n,e){hn(r.rscratch,t,n,e),hn(r.rstyle,t,n,e)};o("labelX",null,n.x),o("labelY",null,n.y);var u=Vc(e.midDispX,e.midDispY);o("labelAutoAngle",null,u);var s=function(){if(s.cache)return s.cache;for(var t=[],n=0;n+5<e.allpts.length;n+=4){var a={x:e.allpts[n],y:e.allpts[n+1]},o={x:e.allpts[n+2],y:e.allpts[n+3]},u={x:e.allpts[n+4],y:e.allpts[n+5]};t.push({p0:a,p1:o,p2:u,startDist:0,length:0,segments:[]})}var f=r.rstyle.bezierPts,c=i.bezierProjPcts.length;function l(t,n,r,e,i){var a=Hn(n,r),o=t.segments[t.segments.length-1],u={p0:n,p1:r,t0:e,t1:i,startDist:o?o.startDist+o.length:0,length:a};t.segments.push(u),t.length+=a}for(var v=0;v<t.length;v++){var h=t[v],d=t[v-1];d&&(h.startDist=d.startDist+d.length),l(h,h.p0,f[v*c],0,i.bezierProjPcts[0]);for(var g=0;g<c-1;g++)l(h,f[v*c+g],f[v*c+g+1],i.bezierProjPcts[g],i.bezierProjPcts[g+1]);l(h,f[v*c+c-1],h.p2,i.bezierProjPcts[c-1],1)}return s.cache=t},f=function(r){var i,u="source"===r;if(a[r]){var f=t.pstyle(r+"-text-offset").pfValue;switch(e.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var c,l=s(),v=0,h=0,d=0;d<l.length;d++){for(var g=l[u?d:l.length-1-d],p=0;p<g.segments.length;p++){var y=g.segments[u?p:g.segments.length-1-p],m=d===l.length-1&&p===g.segments.length-1;if(v=h,(h+=y.length)>=f||m){c={cp:g,segment:y};break}}if(c)break}var b=c.cp,x=c.segment,w=(f-v)/x.length,k=x.t1-x.t0,M=u?x.t0+k*w:x.t1-k*w;M=Qn(0,M,1),n=Xn(b.p0,b.p1,b.p2,M),i=function(t,n,r,e){var i=Qn(0,e-.001,1),a=Qn(0,e+.001,1),o=Xn(t,n,r,i),u=Xn(t,n,r,a);return Wc(o,u)}(b.p0,b.p1,b.p2,M);break;case"straight":case"segments":case"haystack":for(var B,C,A,T,E=0,S=e.allpts.length,z=0;z+3<S&&(u?(A={x:e.allpts[z],y:e.allpts[z+1]},T={x:e.allpts[z+2],y:e.allpts[z+3]}):(A={x:e.allpts[S-2-z],y:e.allpts[S-1-z]},T={x:e.allpts[S-4-z],y:e.allpts[S-3-z]}),C=E,!((E+=B=Hn(A,T))>=f));z+=2);var P=(f-C)/B;P=Qn(0,P,1),n=function(t,n,r,e){var i=n.x-t.x,a=n.y-t.y,o=Hn(t,n),u=i/o,s=a/o;return r=null==r?0:r,e=null!=e?e:r*o,{x:t.x+u*e,y:t.y+s*e}}(A,T,P),i=Wc(A,T)}o("labelX",r,n.x),o("labelY",r,n.y),o("labelAutoAngle",r,i)}};f("source"),f("target"),this.applyLabelDimensions(t)}},_c.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))},_c.applyPrefixedLabelDimensions=function(t,n){var r=t.t,e=this.getLabelText(t,n),i=Wt(e,t.t.labelDimsKey);if(vn(r.rscratch,"prefixedLabelDimsKey",n)!==i){hn(r.rscratch,"prefixedLabelDimsKey",n,i);var a=this.calculateLabelDimensions(t,e),o=t.pstyle("line-height").pfValue,u=t.pstyle("text-wrap").strValue,s=vn(r.rscratch,"labelWrapCachedLines",n)||[],f="wrap"!==u?1:Math.max(s.length,1),c=a.height/f,l=c*o,v=a.width,h=a.height+(f-1)*(o-1)*c;hn(r.rstyle,"labelWidth",n,v),hn(r.rscratch,"labelWidth",n,v),hn(r.rstyle,"labelHeight",n,h),hn(r.rscratch,"labelHeight",n,h),hn(r.rscratch,"labelLineHeight",n,l)}},_c.getLabelText=function(t,n){var r=t.t,i=n?n+"-":"",a=t.pstyle(i+"label").strValue,o=t.pstyle("text-transform").value,u=function(t,e){return e?(hn(r.rscratch,t,n,e),e):vn(r.rscratch,t,n)};if(!a)return"";"none"==o||("uppercase"==o?a=a.toUpperCase():"lowercase"==o&&(a=a.toLowerCase()));var s=t.pstyle("text-wrap").value;if("wrap"===s){var f=u("labelKey");if(null!=f&&u("labelWrapKey")===f)return u("labelWrapCachedText");for(var c=a.split("\n"),l=t.pstyle("text-max-width").pfValue,v="anywhere"===t.pstyle("text-overflow-wrap").value,h=[],d=/[\s\u200b]+|$/g,g=0;g<c.length;g++){var p=c[g],y=this.calculateLabelDimensions(t,p).width;if(v){var m=p.split("").join("​");p=m}if(y>l){var b,x="",w=0,k=e(p.matchAll(d));try{for(k.s();!(b=k.n()).done;){var M=b.value,B=M[0],C=p.substring(w,M.index);w=M.index+B.length;var A=0===x.length?C:x+C+B;this.calculateLabelDimensions(t,A).width<=l?x+=C+B:(x&&h.push(x),x=C+B)}}catch(P){k.e(P)}finally{k.f()}x.match(/^[\s\u200b]+$/)||h.push(x)}else h.push(p)}u("labelWrapCachedLines",h),a=u("labelWrapCachedText",h.join("\n")),u("labelWrapKey",f)}else if("ellipsis"===s){var T=t.pstyle("text-max-width").pfValue,E="",S=!1;if(this.calculateLabelDimensions(t,a).width<T)return a;for(var z=0;z<a.length;z++){if(this.calculateLabelDimensions(t,E+a[z]+"…").width>T)break;E+=a[z],z===a.length-1&&(S=!0)}return S||(E+="…"),E}return a},_c.getLabelJustification=function(t){var n=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if("auto"!==n)return n;if(!t.isNode())return"center";switch(r){case"left":return"right";case"right":return"left";default:return"center"}},_c.calculateLabelDimensions=function(t,n){var r=this.cy.window().document,e=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue,a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,u=this.labelCalcCanvas,s=this.labelCalcCanvasContext;if(!u){u=this.labelCalcCanvas=r.createElement("canvas"),s=this.labelCalcCanvasContext=u.getContext("2d");var f=u.style;f.position="absolute",f.left="-9999px",f.top="-9999px",f.zIndex="-1",f.visibility="hidden",f.pointerEvents="none"}s.font="".concat(e," ").concat(o," ").concat(i,"px ").concat(a);for(var c=0,l=0,v=n.split("\n"),h=0;h<v.length;h++){var d=v[h],g=s.measureText(d),p=Math.ceil(g.width),y=i;c=Math.max(p,c),l+=y}return{width:c+=0,height:l+=0}},_c.calculateLabelAngle=function(t,n){var r=t.t.rscratch,e=t.isEdge(),i=n?n+"-":"",a=t.pstyle(i+"text-rotation"),o=a.strValue;return"none"===o?0:e&&"autorotate"===o?r.labelAutoAngle:"autorotate"===o?0:a.pfValue},_c.calculateLabelAngles=function(t){var n=this,r=t.isEdge(),e=t.t.rscratch;e.labelAngle=n.calculateLabelAngle(t),r&&(e.sourceLabelAngle=n.calculateLabelAngle(t,"source"),e.targetLabelAngle=n.calculateLabelAngle(t,"target"))};var $c={},Kc=!1;$c.getNodeShape=function(t){var n=t.pstyle("shape").value;if("cutrectangle"===n&&(t.width()<28||t.height()<28))return Kc||(en("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),Kc=!0),"rectangle";if(t.isParent())return"rectangle"===n||"roundrectangle"===n||"round-rectangle"===n||"cutrectangle"===n||"cut-rectangle"===n||"barrel"===n?n:"rectangle";if("polygon"===n){var r=t.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(r).name}return n};var Zc={registerCalculationListeners:function(){var t=this.cy,n=t.collection(),r=this,e=function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(n.merge(t),r)for(var e=0;e<t.length;e++){var i=t[e].t.rstyle;i.clean=!1,i.cleanConnected=!1}};r.binder(t).on("bounds.* dirty.*",function(t){var n=t.target;e(n)}).on("style.* background.*",function(t){var n=t.target;e(n,!1)});var i=function(i){if(i){var a=r.onUpdateEleCalcsFns;n.cleanStyle();for(var o=0;o<n.length;o++){var u=n[o],s=u.t.rstyle;u.isNode()&&!s.cleanConnected&&(e(u.connectedEdges()),s.cleanConnected=!0)}if(a)for(var f=0;f<a.length;f++){(0,a[f])(i,n)}r.recalculateRenderedStyle(n),n=t.collection()}};r.flushRenderedStyleQueue=function(){i(!0)},r.beforeRender(i,r.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(t){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(t)},recalculateRenderedStyle:function(t,n){var r=function(t){return t.t.rstyle.cleanConnected};if(0!==t.length){var e=[],i=[];if(!this.destroyed){void 0===n&&(n=!0);for(var a=0;a<t.length;a++){var o=t[a],u=o.t,s=u.rstyle;!o.isEdge()||r(o.source())&&r(o.target())||(s.clean=!1),o.isEdge()&&o.isBundledBezier()&&o.parallelEdges().some(function(t){return!t.t.rstyle.clean&&t.isBundledBezier()})&&(s.clean=!1),n&&s.clean||o.removed()||"none"!==o.pstyle("display").value&&("nodes"===u.group?i.push(o):e.push(o),s.clean=!0)}for(var f=0;f<i.length;f++){var c=i[f],l=c.t.rstyle,v=c.position();this.recalculateNodeLabelProjection(c),l.nodeX=v.x,l.nodeY=v.y,l.nodeW=c.pstyle("width").pfValue,l.nodeH=c.pstyle("height").pfValue}this.recalculateEdgeProjections(e);for(var h=0;h<e.length;h++){var d=e[h].t,g=d.rstyle,p=d.rscratch;g.srcX=p.arrowStartX,g.srcY=p.arrowStartY,g.tgtX=p.arrowEndX,g.tgtY=p.arrowEndY,g.midX=p.midX,g.midY=p.midY,g.labelAngle=p.labelAngle,g.sourceLabelAngle=p.sourceLabelAngle,g.targetLabelAngle=p.targetLabelAngle}}}}},Hc={updateCachedGrabbedEles:function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var n=[],r=0;r<t.length;r++){var e=(i=t[r]).t.rscratch;i.grabbed()&&!i.isParent()?n.push(i):e.inDragLayer?t.drag.push(i):t.nondrag.push(i)}for(r=0;r<n.length;r++){var i=n[r];t.drag.push(i)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(t){if(t||!this.cachedZSortedEles){var n=this.cy.mutableElements().toArray();n.sort(os),n.interactive=n.filter(function(t){return t.interactive()}),this.cachedZSortedEles=n,this.updateCachedGrabbedEles()}else n=this.cachedZSortedEles;return n}},Gc={};[fc,cc,Ic,Lc,jc,_c,$c,Zc,Hc].forEach(function(t){pt(Gc,t)});var Uc={getCachedImage:function(t,n,r){var e=this.imageCache=this.imageCache||{},i=e[t];if(i)return i.image.complete||i.image.addEventListener("load",r),i.image;var a=(i=e[t]=e[t]||{}).image=new Image;a.addEventListener("load",r),a.addEventListener("error",function(){a.error=!0});var o="data:";return t.substring(0,5).toLowerCase()===o||(n="null"===n?null:n,a.crossOrigin=n),a.src=t,a}},Yc={registerBinding:function(t,n,r,e){var i=Array.prototype.slice.apply(arguments,[1]);if(Array.isArray(t)){for(var a=[],o=0;o<t.length;o++){var u=t[o];if(void 0!==u){var s=this.binder(u);a.push(s.on.apply(s,i))}}return a}return(s=this.binder(t)).on.apply(s,i)}};Yc.binder=function(t){var n,r=this,e=r.cy.window(),i=t===e||t===e.document||t===e.document.body||(n=t,"undefined"!=typeof HTMLElement&&n instanceof HTMLElement);if(null==r.supportsPassiveEvents){var a=!1;try{var o=Object.defineProperty({},"passive",{get:function(){return a=!0,!0}});e.addEventListener("test",null,o)}catch(s){}r.supportsPassiveEvents=a}var u=function(n,e,a){var o=Array.prototype.slice.call(arguments);return i&&r.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),r.bindings.push({target:t,args:o}),(t.addEventListener||t.on).apply(t,o),this};return{on:u,addEventListener:u,addListener:u,bind:u}},Yc.nodeIsDraggable=function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()},Yc.nodeIsGrabbable=function(t){return this.nodeIsDraggable(t)&&t.interactive()},Yc.load=function(){var t=this,n=t.cy.window(),r=function(t){return t.selected()},e=function(n,r,e,i){null==n&&(n=t.cy);for(var a=0;a<r.length;a++){var o=r[a];n.emit({originalEvent:e,type:o,position:i})}},i=function(t){return t.shiftKey||t.metaKey||t.ctrlKey},a=function(n,r){var e=!0;if(t.cy.hasCompoundNodes()&&n&&n.pannable())for(var i=0;r&&i<r.length;i++){if((n=r[i]).isNode()&&n.isParent()&&!n.pannable()){e=!1;break}}else e=!0;return e},o=function(t){t[0].t.rscratch.inDragLayer=!0},u=function(t){t[0].t.rscratch.isGrabTarget=!0},s=function(t,n){var r=n.addToList;r.has(t)||!t.grabbable()||t.locked()||(r.merge(t),function(t){t[0].t.grabbed=!0}(t))},f=function(n,r){r=r||{};var e=n.cy().hasCompoundNodes();r.inDragLayer&&(n.forEach(o),n.neighborhood().stdFilter(function(t){return!e||t.isEdge()}).forEach(o)),r.addToList&&n.forEach(function(t){s(t,r)}),function(t,n){if(t.cy().hasCompoundNodes()&&(null!=n.inDragLayer||null!=n.addToList)){var r=t.descendants();n.inDragLayer&&(r.forEach(o),r.connectedEdges().forEach(o)),n.addToList&&s(r,n)}}(n,r),v(n,{inDragLayer:r.inDragLayer}),t.updateCachedGrabbedEles()},c=f,l=function(n){n&&(t.getCachedZSortedEles().forEach(function(t){!function(t){t[0].t.grabbed=!1}(t),function(t){t[0].t.rscratch.inDragLayer=!1}(t),function(t){t[0].t.rscratch.isGrabTarget=!1}(t)}),t.updateCachedGrabbedEles())},v=function(t,n){if((null!=n.inDragLayer||null!=n.addToList)&&t.cy().hasCompoundNodes()){var r=t.ancestors().orphans();if(!r.same(t)){var e=r.descendants().spawnSelf().merge(r).unmerge(t).unmerge(t.descendants()),i=e.connectedEdges();n.inDragLayer&&(i.forEach(o),e.forEach(o)),n.addToList&&e.forEach(function(t){s(t,n)})}}},h=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},d="undefined"!=typeof MutationObserver,g="undefined"!=typeof ResizeObserver;d?(t.removeObserver=new MutationObserver(function(n){for(var r=0;r<n.length;r++){var e=n[r].removedNodes;if(e)for(var i=0;i<e.length;i++){if(e[i]===t.container){t.destroy();break}}}}),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",function(n){t.destroy()});var p=St(function(){t.cy.resize()},100);d&&(t.styleObserver=new MutationObserver(p),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(n,"resize",p),g&&(t.resizeObserver=new ResizeObserver(p),t.resizeObserver.observe(t.container));var y=function(){t.invalidateContainerClientCoordsCache()};!function(t,n){for(;null!=t;)n(t),t=t.parentNode}(t.container,function(n){t.registerBinding(n,"transitionend",y),t.registerBinding(n,"animationend",y),t.registerBinding(n,"scroll",y)}),t.registerBinding(t.container,"contextmenu",function(t){t.preventDefault()});var m=function(n){for(var r=t.findContainerClientCoords(),e=r[0],i=r[1],a=r[2],o=r[3],u=n.touches?n.touches:[n],s=!1,f=0;f<u.length;f++){var c=u[f];if(e<=c.clientX&&c.clientX<=e+a&&i<=c.clientY&&c.clientY<=i+o){s=!0;break}}if(!s)return!1;for(var l=t.container,v=n.target.parentNode,h=!1;v;){if(v===l){h=!0;break}v=v.parentNode}return!!h};t.registerBinding(t.container,"mousedown",function(n){if(m(n)&&(1!==t.hoverData.which||1===n.which)){n.preventDefault(),h(),t.hoverData.capture=!0,t.hoverData.which=n.which;var r=t.cy,i=[n.clientX,n.clientY],a=t.projectIntoViewport(i[0],i[1]),o=t.selection,s=t.findNearestElements(a[0],a[1],!0,!1),l=s[0],v=t.dragData.possibleDragElements;t.hoverData.mdownPos=a,t.hoverData.mdownGPos=i;var d=function(t){return{originalEvent:n,type:t,position:{x:a[0],y:a[1]}}};if(3==n.which){t.hoverData.cxtStarted=!0;var g={originalEvent:n,type:"cxttapstart",position:{x:a[0],y:a[1]}};l?(l.activate(),l.emit(g),t.hoverData.down=l):r.emit(g),t.hoverData.downTime=(new Date).getTime(),t.hoverData.cxtDragged=!1}else if(1==n.which){if(l&&l.activate(),null!=l&&t.nodeIsGrabbable(l)){if(u(l),l.selected()){v=t.dragData.possibleDragElements=r.collection();var p=r.$(function(n){return n.isNode()&&n.selected()&&t.nodeIsGrabbable(n)});f(p,{addToList:v}),l.emit(d("grabon")),p.forEach(function(t){t.emit(d("grab"))})}else v=t.dragData.possibleDragElements=r.collection(),c(l,{addToList:v}),l.emit(d("grabon")).emit(d("grab"));t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=l,t.hoverData.downs=s,t.hoverData.downTime=(new Date).getTime(),e(l,["mousedown","tapstart","vmousedown"],n,{x:a[0],y:a[1]}),null==l?(o[4]=1,t.data.bgActivePosistion={x:a[0],y:a[1]},t.redrawHint("select",!0),t.redraw()):l.pannable()&&(o[4]=1),t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout(function(){if(!t.hoverData.tapholdCancelled){var n=t.hoverData.down;n?n.emit(d("taphold")):r.emit(d("taphold"))}},t.tapholdDuration)}o[0]=o[2]=a[0],o[1]=o[3]=a[1]}},!1);var b,x,w,k=function(t){var n=t.getRootNode();if(n&&11===n.nodeType&&void 0!==n.host)return n}(t.container);t.registerBinding([n,k],"mousemove",function(n){if(t.hoverData.capture||m(n)){var r=!1,o=t.cy,u=o.zoom(),s=[n.clientX,n.clientY],c=t.projectIntoViewport(s[0],s[1]),v=t.hoverData.mdownPos,h=t.hoverData.mdownGPos,d=t.selection,g=null;t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.selecting||(g=t.findNearestElement(c[0],c[1],!0,!1));var p,y=t.hoverData.last,b=t.hoverData.down,x=[c[0]-d[2],c[1]-d[3]],w=t.dragData.possibleDragElements;if(h){var k=s[0]-h[0],M=k*k,B=s[1]-h[1],C=M+B*B;t.hoverData.isOverThresholdDrag=p=C>=t.desktopTapThreshold2}var A=i(n);p&&(t.hoverData.tapholdCancelled=!0);r=!0,e(g,["mousemove","vmousemove","tapdrag"],n,{x:c[0],y:c[1]});var T,E=function(t){return{originalEvent:n,type:t,position:{x:c[0],y:c[1]}}},S=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||o.emit(E("boxstart")),d[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(3===t.hoverData.which){if(p){var z=E("cxtdrag");b?b.emit(z):o.emit(z),t.hoverData.cxtDragged=!0,t.hoverData.cxtOver&&g===t.hoverData.cxtOver||(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit(E("cxtdragout")),t.hoverData.cxtOver=g,g&&g.emit(E("cxtdragover")))}}else if(t.hoverData.dragging){if(r=!0,o.panningEnabled()&&o.userPanningEnabled()){var P;if(t.hoverData.justStartedPan){var O=t.hoverData.mdownPos;P={x:(c[0]-O[0])*u,y:(c[1]-O[1])*u},t.hoverData.justStartedPan=!1}else P={x:x[0]*u,y:x[1]*u};o.panBy(P),o.emit(E("dragpan")),t.hoverData.dragged=!0}c=t.projectIntoViewport(n.clientX,n.clientY)}else if(1!=d[4]||null!=b&&!b.pannable()){if(b&&b.pannable()&&b.active()&&b.unactivate(),b&&b.grabbed()||g==y||(y&&e(y,["mouseout","tapdragout"],n,{x:c[0],y:c[1]}),g&&e(g,["mouseover","tapdragover"],n,{x:c[0],y:c[1]}),t.hoverData.last=g),b)if(p){if(o.boxSelectionEnabled()&&A)b&&b.grabbed()&&(l(w),b.emit(E("freeon")),w.emit(E("free")),t.dragData.didDrag&&(b.emit(E("dragfreeon")),w.emit(E("dragfree")))),S();else if(b&&b.grabbed()&&t.nodeIsDraggable(b)){var N=!t.dragData.didDrag;N&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||f(w,{inDragLayer:!0});var R={x:0,y:0};if(U(x[0])&&U(x[1])&&(R.x+=x[0],R.y+=x[1],N)){var F=t.hoverData.dragDelta;F&&U(F[0])&&U(F[1])&&(R.x+=F[0],R.y+=F[1])}t.hoverData.draggingEles=!0,w.silentShift(R).emit(E("position")).emit(E("drag")),t.redrawHint("drag",!0),t.redraw()}}else 0===(T=t.hoverData.dragDelta=t.hoverData.dragDelta||[]).length?(T.push(x[0]),T.push(x[1])):(T[0]+=x[0],T[1]+=x[1]);r=!0}else if(p){if(t.hoverData.dragging||!o.boxSelectionEnabled()||!A&&o.panningEnabled()&&o.userPanningEnabled()){if(!t.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()){a(b,t.hoverData.downs)&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,d[4]=0,t.data.bgActivePosistion=Wn(v),t.redrawHint("select",!0),t.redraw())}}else S();b&&b.pannable()&&b.active()&&b.unactivate()}return d[2]=c[0],d[3]=c[1],r?(n.stopPropagation&&n.stopPropagation(),n.preventDefault&&n.preventDefault(),!1):void 0}},!1),t.registerBinding(n,"mouseup",function(n){if((1!==t.hoverData.which||1===n.which||!t.hoverData.capture)&&t.hoverData.capture){t.hoverData.capture=!1;var a=t.cy,o=t.projectIntoViewport(n.clientX,n.clientY),u=t.selection,s=t.findNearestElement(o[0],o[1],!0,!1),f=t.dragData.possibleDragElements,c=t.hoverData.down,v=i(n);t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,c&&c.unactivate();var h=function(t){return{originalEvent:n,type:t,position:{x:o[0],y:o[1]}}};if(3===t.hoverData.which){var d=h("cxttapend");if(c?c.emit(d):a.emit(d),!t.hoverData.cxtDragged){var g=h("cxttap");c?c.emit(g):a.emit(g)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(1===t.hoverData.which){if(e(s,["mouseup","tapend","vmouseup"],n,{x:o[0],y:o[1]}),t.dragData.didDrag||t.hoverData.dragged||t.hoverData.selecting||t.hoverData.isOverThresholdDrag||(e(c,["click","tap","vclick"],n,{x:o[0],y:o[1]}),x=!1,n.timeStamp-w<=a.multiClickDebounceTime()?(b&&clearTimeout(b),x=!0,w=null,e(c,["dblclick","dbltap","vdblclick"],n,{x:o[0],y:o[1]})):(b=setTimeout(function(){x||e(c,["oneclick","onetap","voneclick"],n,{x:o[0],y:o[1]})},a.multiClickDebounceTime()),w=n.timeStamp)),null!=c||t.dragData.didDrag||t.hoverData.selecting||t.hoverData.dragged||i(n)||(a.$(r).unselect(["tapunselect"]),f.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=f=a.collection()),s!=c||t.dragData.didDrag||t.hoverData.selecting||null!=s&&s.t.selectable&&(t.hoverData.dragging||("additive"===a.selectionType()||v?s.selected()?s.unselect(["tapunselect"]):s.select(["tapselect"]):v||(a.$(r).unmerge(s).unselect(["tapunselect"]),s.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var p=a.collection(t.getAllInBox(u[0],u[1],u[2],u[3]));t.redrawHint("select",!0),p.length>0&&t.redrawHint("eles",!0),a.emit(h("boxend"));var y=function(t){return t.selectable()&&!t.selected()};"additive"===a.selectionType()||v||a.$(r).unmerge(p).unselect(),p.emit(h("box")).stdFilter(y).select().emit(h("boxselect")),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!u[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var m=c&&c.grabbed();l(f),m&&(c.emit(h("freeon")),f.emit(h("free")),t.dragData.didDrag&&(c.emit(h("dragfreeon")),f.emit(h("dragfree"))))}}u[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}},!1);var M,B,C,A,T,E,S,z,P,O,N,R,F,I,D=[],L=1e5,j=function(n){var r=!1,e=n.deltaY;if(null==e&&(null!=n.wheelDeltaY?e=n.wheelDeltaY/4:null!=n.wheelDelta&&(e=n.wheelDelta/4)),0!==e){if(null==M)if(D.length>=4){var i=D;if(M=function(t,n){for(var r=0;r<t.length;r++)if(t[r]%n!==0)return!1;return!0}(i,5),!M){var a=Math.abs(i[0]);M=function(t){for(var n=Math.abs(t[0]),r=1;r<t.length;r++)if(Math.abs(t[r])!==n)return!1;return!0}(i)&&a>5}if(M)for(var o=0;o<i.length;o++)L=Math.min(Math.abs(i[o]),L)}else D.push(e),r=!0;else M&&(L=Math.min(Math.abs(e),L));if(!t.scrollingPage){var u=t.cy,s=u.zoom(),f=u.pan(),c=t.projectIntoViewport(n.clientX,n.clientY),l=[c[0]*s+f.x,c[1]*s+f.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||0!==t.selection[4])n.preventDefault();else if(u.panningEnabled()&&u.userPanningEnabled()&&u.zoomingEnabled()&&u.userZoomingEnabled()){var v;n.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150),r&&Math.abs(e)>5&&(e=5*Zn(e)),v=e/-250,M&&(v/=L,v*=3),v*=t.wheelSensitivity,1===n.deltaMode&&(v*=33);var h=u.zoom()*Math.pow(10,v);"gesturechange"===n.type&&(h=t.gestureStartZoom*n.scale),u.zoom({level:h,renderedPosition:{x:l[0],y:l[1]}}),u.emit({type:"gesturechange"===n.type?"pinchzoom":"scrollzoom",originalEvent:n,position:{x:c[0],y:c[1]}})}}}};t.registerBinding(t.container,"wheel",j,!0),t.registerBinding(n,"scroll",function(n){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(n){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||n.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(n){t.hasTouchStarted||j(n)},!0),t.registerBinding(t.container,"mouseout",function(n){var r=t.projectIntoViewport(n.clientX,n.clientY);t.cy.emit({originalEvent:n,type:"mouseout",position:{x:r[0],y:r[1]}})},!1),t.registerBinding(t.container,"mouseover",function(n){var r=t.projectIntoViewport(n.clientX,n.clientY);t.cy.emit({originalEvent:n,type:"mouseover",position:{x:r[0],y:r[1]}})},!1);var q,_,V,W,$,K,Z,H=function(t,n,r,e){return Math.sqrt((r-t)*(r-t)+(e-n)*(e-n))},G=function(t,n,r,e){return(r-t)*(r-t)+(e-n)*(e-n)};if(t.registerBinding(t.container,"touchstart",q=function(n){if(t.hasTouchStarted=!0,m(n)){h(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var r=t.cy,i=t.touchData.now,a=t.touchData.earlier;if(n.touches[0]){var o=t.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(n.touches[1]){o=t.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY);i[2]=o[0],i[3]=o[1]}if(n.touches[2]){o=t.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY);i[4]=o[0],i[5]=o[1]}var s=function(t){return{originalEvent:n,type:t,position:{x:i[0],y:i[1]}}};if(n.touches[1]){t.touchData.singleTouchMoved=!0,l(t.dragData.touchDragEles);var v=t.findContainerClientCoords();O=v[0],N=v[1],R=v[2],F=v[3],B=n.touches[0].clientX-O,C=n.touches[0].clientY-N,A=n.touches[1].clientX-O,T=n.touches[1].clientY-N,I=0<=B&&B<=R&&0<=A&&A<=R&&0<=C&&C<=F&&0<=T&&T<=F;var d=r.pan(),g=r.zoom();E=H(B,C,A,T),S=G(B,C,A,T),P=[((z=[(B+A)/2,(C+T)/2])[0]-d.x)/g,(z[1]-d.y)/g];if(S<4e4&&!n.touches[2]){var p=t.findNearestElement(i[0],i[1],!0,!0),y=t.findNearestElement(i[2],i[3],!0,!0);return p&&p.isNode()?(p.activate().emit(s("cxttapstart")),t.touchData.start=p):y&&y.isNode()?(y.activate().emit(s("cxttapstart")),t.touchData.start=y):r.emit(s("cxttapstart")),t.touchData.start&&(t.touchData.start.t.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,void t.redraw()}}if(n.touches[2])r.boxSelectionEnabled()&&n.preventDefault();else if(n.touches[1]);else if(n.touches[0]){var b=t.findNearestElements(i[0],i[1],!0,!0),x=b[0];if(null!=x&&(x.activate(),t.touchData.start=x,t.touchData.starts=b,t.nodeIsGrabbable(x))){var w=t.dragData.touchDragEles=r.collection(),k=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),x.selected()?(k=r.$(function(n){return n.selected()&&t.nodeIsGrabbable(n)}),f(k,{addToList:w})):c(x,{addToList:w}),u(x),x.emit(s("grabon")),k?k.forEach(function(t){t.emit(s("grab"))}):x.emit(s("grab"))}e(x,["touchstart","tapstart","vmousedown"],n,{x:i[0],y:i[1]}),null==x&&(t.data.bgActivePosistion={x:o[0],y:o[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout(function(){!1!==t.touchData.singleTouchMoved||t.pinching||t.touchData.selecting||e(t.touchData.start,["taphold"],n,{x:i[0],y:i[1]})},t.tapholdDuration)}if(n.touches.length>=1){for(var M=t.touchData.startPosition=[null,null,null,null,null,null],D=0;D<i.length;D++)M[D]=a[D]=i[D];var L=n.touches[0];t.touchData.startGPosition=[L.clientX,L.clientY]}}},!1),t.registerBinding(n,"touchmove",_=function(n){var r=t.touchData.capture;if(r||m(n)){var i=t.selection,o=t.cy,u=t.touchData.now,s=t.touchData.earlier,c=o.zoom();if(n.touches[0]){var v=t.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);u[0]=v[0],u[1]=v[1]}if(n.touches[1]){v=t.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY);u[2]=v[0],u[3]=v[1]}if(n.touches[2]){v=t.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY);u[4]=v[0],u[5]=v[1]}var h,d=function(t){return{originalEvent:n,type:t,position:{x:u[0],y:u[1]}}},g=t.touchData.startGPosition;if(r&&n.touches[0]&&g){for(var p=[],y=0;y<u.length;y++)p[y]=u[y]-s[y];var b=n.touches[0].clientX-g[0],x=b*b,w=n.touches[0].clientY-g[1];h=x+w*w>=t.touchTapThreshold2}if(r&&t.touchData.cxt){n.preventDefault();var k=n.touches[0].clientX-O,M=n.touches[0].clientY-N,z=n.touches[1].clientX-O,R=n.touches[1].clientY-N,F=G(k,M,z,R);if(F/S>=2.25||F>=22500){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var D=d("cxttapend");t.touchData.start?(t.touchData.start.unactivate().emit(D),t.touchData.start=null):o.emit(D)}}if(r&&t.touchData.cxt){D=d("cxtdrag");t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(D):o.emit(D),t.touchData.start&&(t.touchData.start.t.grabbed=!1),t.touchData.cxtDragged=!0;var L=t.findNearestElement(u[0],u[1],!0,!0);t.touchData.cxtOver&&L===t.touchData.cxtOver||(t.touchData.cxtOver&&t.touchData.cxtOver.emit(d("cxtdragout")),t.touchData.cxtOver=L,L&&L.emit(d("cxtdragover")))}else if(r&&n.touches[2]&&o.boxSelectionEnabled())n.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||o.emit(d("boxstart")),t.touchData.selecting=!0,t.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(u[0]+u[2]+u[4])/3,i[3]=(u[1]+u[3]+u[5])/3):(i[0]=(u[0]+u[2]+u[4])/3,i[1]=(u[1]+u[3]+u[5])/3,i[2]=(u[0]+u[2]+u[4])/3+1,i[3]=(u[1]+u[3]+u[5])/3+1),t.redrawHint("select",!0),t.redraw();else if(r&&n.touches[1]&&!t.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(n.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),nt=t.dragData.touchDragEles){t.redrawHint("drag",!0);for(var j=0;j<nt.length;j++){var q=nt[j].t;q.grabbed=!1,q.rscratch.inDragLayer=!1}}var _=t.touchData.start,V=(k=n.touches[0].clientX-O,M=n.touches[0].clientY-N,z=n.touches[1].clientX-O,R=n.touches[1].clientY-N,H(k,M,z,R)),W=V/E;if(I){var $=(k-B+(z-A))/2,K=(M-C+(R-T))/2,Z=o.zoom(),Y=Z*W,X=o.pan(),Q=P[0]*Z+X.x,J=P[1]*Z+X.y,tt={x:-Y/Z*(Q-X.x-$)+Q,y:-Y/Z*(J-X.y-K)+J};if(_&&_.active()){var nt=t.dragData.touchDragEles;l(nt),t.redrawHint("drag",!0),t.redrawHint("eles",!0),_.unactivate().emit(d("freeon")),nt.emit(d("free")),t.dragData.didDrag&&(_.emit(d("dragfreeon")),nt.emit(d("dragfree")))}o.viewport({zoom:Y,pan:tt,cancelOnFailedZoom:!0}),o.emit(d("pinchzoom")),E=V,B=k,C=M,A=z,T=R,t.pinching=!0}if(n.touches[0]){v=t.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);u[0]=v[0],u[1]=v[1]}if(n.touches[1]){v=t.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY);u[2]=v[0],u[3]=v[1]}if(n.touches[2]){v=t.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY);u[4]=v[0],u[5]=v[1]}}else if(n.touches[0]&&!t.touchData.didSelect){var rt=t.touchData.start,et=t.touchData.last;if(t.hoverData.draggingEles||t.swipePanning||(L=t.findNearestElement(u[0],u[1],!0,!0)),r&&null!=rt&&n.preventDefault(),r&&null!=rt&&t.nodeIsDraggable(rt))if(h){nt=t.dragData.touchDragEles;var it=!t.dragData.didDrag;it&&f(nt,{inDragLayer:!0}),t.dragData.didDrag=!0;var at={x:0,y:0};if(U(p[0])&&U(p[1]))if(at.x+=p[0],at.y+=p[1],it)t.redrawHint("eles",!0),(ot=t.touchData.dragDelta)&&U(ot[0])&&U(ot[1])&&(at.x+=ot[0],at.y+=ot[1]);t.hoverData.draggingEles=!0,nt.silentShift(at).emit(d("position")).emit(d("drag")),t.redrawHint("drag",!0),t.touchData.startPosition[0]==s[0]&&t.touchData.startPosition[1]==s[1]&&t.redrawHint("eles",!0),t.redraw()}else{var ot;0===(ot=t.touchData.dragDelta=t.touchData.dragDelta||[]).length?(ot.push(p[0]),ot.push(p[1])):(ot[0]+=p[0],ot[1]+=p[1])}if(e(rt||L,["touchmove","tapdrag","vmousemove"],n,{x:u[0],y:u[1]}),rt&&rt.grabbed()||L==et||(et&&et.emit(d("tapdragout")),L&&L.emit(d("tapdragover"))),t.touchData.last=L,r)for(j=0;j<u.length;j++)u[j]&&t.touchData.startPosition[j]&&h&&(t.touchData.singleTouchMoved=!0);if(r&&(null==rt||rt.pannable())&&o.panningEnabled()&&o.userPanningEnabled()){a(rt,t.touchData.starts)&&(n.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=Wn(t.touchData.startPosition)),t.swipePanning?(o.panBy({x:p[0]*c,y:p[1]*c}),o.emit(d("dragpan"))):h&&(t.swipePanning=!0,o.panBy({x:b*c,y:w*c}),o.emit(d("dragpan")),rt&&(rt.unactivate(),t.redrawHint("select",!0),t.touchData.start=null)));v=t.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);u[0]=v[0],u[1]=v[1]}}for(y=0;y<u.length;y++)s[y]=u[y];r&&n.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&null!=t.data.bgActivePosistion&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1),t.registerBinding(n,"touchcancel",V=function(n){var r=t.touchData.start;t.touchData.capture=!1,r&&r.unactivate()}),t.registerBinding(n,"touchend",W=function(n){var i=t.touchData.start;if(t.touchData.capture){0===n.touches.length&&(t.touchData.capture=!1),n.preventDefault();var a=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var o=t.cy,u=o.zoom(),s=t.touchData.now,f=t.touchData.earlier;if(n.touches[0]){var c=t.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);s[0]=c[0],s[1]=c[1]}if(n.touches[1]){c=t.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY);s[2]=c[0],s[3]=c[1]}if(n.touches[2]){c=t.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY);s[4]=c[0],s[5]=c[1]}var v,h=function(t){return{originalEvent:n,type:t,position:{x:s[0],y:s[1]}}};if(i&&i.unactivate(),t.touchData.cxt){if(v=h("cxttapend"),i?i.emit(v):o.emit(v),!t.touchData.cxtDragged){var d=h("cxttap");i?i.emit(d):o.emit(d)}return t.touchData.start&&(t.touchData.start.t.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,void t.redraw()}if(!n.touches[2]&&o.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var g=o.collection(t.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,t.redrawHint("select",!0),o.emit(h("boxend"));g.emit(h("box")).stdFilter(function(t){return t.selectable()&&!t.selected()}).select().emit(h("boxselect")),g.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(null!=i&&i.unactivate(),n.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(n.touches[1]);else if(n.touches[0]);else if(!n.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var p=t.dragData.touchDragEles;if(null!=i){var y=i.t.grabbed;l(p),t.redrawHint("drag",!0),t.redrawHint("eles",!0),y&&(i.emit(h("freeon")),p.emit(h("free")),t.dragData.didDrag&&(i.emit(h("dragfreeon")),p.emit(h("dragfree")))),e(i,["touchend","tapend","vmouseup","tapdragout"],n,{x:s[0],y:s[1]}),i.unactivate(),t.touchData.start=null}else{var m=t.findNearestElement(s[0],s[1],!0,!0);e(m,["touchend","tapend","vmouseup","tapdragout"],n,{x:s[0],y:s[1]})}var b=t.touchData.startPosition[0]-s[0],x=b*b,w=t.touchData.startPosition[1]-s[1],k=(x+w*w)*u*u;t.touchData.singleTouchMoved||(i||o.$(":selected").unselect(["tapunselect"]),e(i,["tap","vclick"],n,{x:s[0],y:s[1]}),$=!1,n.timeStamp-Z<=o.multiClickDebounceTime()?(K&&clearTimeout(K),$=!0,Z=null,e(i,["dbltap","vdblclick"],n,{x:s[0],y:s[1]})):(K=setTimeout(function(){$||e(i,["onetap","voneclick"],n,{x:s[0],y:s[1]})},o.multiClickDebounceTime()),Z=n.timeStamp)),null!=i&&!t.dragData.didDrag&&i.t.selectable&&k<t.touchTapThreshold2&&!t.pinching&&("single"===o.selectionType()?(o.$(r).unmerge(i).unselect(["tapunselect"]),i.select(["tapselect"])):i.selected()?i.unselect(["tapunselect"]):i.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}for(var M=0;M<s.length;M++)f[M]=s[M];t.dragData.didDrag=!1,0===n.touches.length&&(t.touchData.dragDelta=[],t.touchData.startPosition=[null,null,null,null,null,null],t.touchData.startGPosition=null,t.touchData.didSelect=!1),n.touches.length<2&&(1===n.touches.length&&(t.touchData.startGPosition=[n.touches[0].clientX,n.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())}},!1),"undefined"==typeof TouchEvent){var Y=[],X=function(t){return{clientX:t.clientX,clientY:t.clientY,force:1,identifier:t.pointerId,pageX:t.pageX,pageY:t.pageY,radiusX:t.width/2,radiusY:t.height/2,screenX:t.screenX,screenY:t.screenY,target:t.target}},Q=function(t){Y.push(function(t){return{event:t,touch:X(t)}}(t))},J=function(t){for(var n=0;n<Y.length;n++){if(Y[n].event.pointerId===t.pointerId)return void Y.splice(n,1)}},tt=function(t){t.touches=Y.map(function(t){return t.touch})},nt=function(t){return"mouse"===t.pointerType||4===t.pointerType};t.registerBinding(t.container,"pointerdown",function(t){nt(t)||(t.preventDefault(),Q(t),tt(t),q(t))}),t.registerBinding(t.container,"pointerup",function(t){nt(t)||(J(t),tt(t),W(t))}),t.registerBinding(t.container,"pointercancel",function(t){nt(t)||(J(t),tt(t),V())}),t.registerBinding(t.container,"pointermove",function(t){nt(t)||(t.preventDefault(),function(t){var n=Y.filter(function(n){return n.event.pointerId===t.pointerId})[0];n.event=t,n.touch=X(t)}(t),tt(t),_(t))})}};var Xc={generatePolygon:function(t,n){return this.nodeShapes[t]={renderer:this,name:t,points:n,draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl("polygon",t,n,r,e,i,this.points)},intersectLine:function(t,n,r,e,i,a,o,u){return Cr(i,a,this.points,t,n,r/2,e/2,o)},checkPoint:function(t,n,r,e,i,a,o,u){return yr(t,n,this.points,a,o,e,i,[0,-1],r)},hasMiterBounds:"rectangle"!==t,miterBounds:function(t,n,r,e,i,a){return cr(this.points,t,n,r,e,i)}}}};Xc.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl(this.name,t,n,r,e,i)},intersectLine:function(t,n,r,e,i,a,o,u){return function(t,n,r,e,i,a){var o=r-t,u=e-n;o/=i,u/=a;var s=Math.sqrt(o*o+u*u),f=s-1;if(f<0)return[];var c=f/s;return[(r-t)*c+t,(e-n)*c+n]}(i,a,t,n,r/2+o,e/2+o)},checkPoint:function(t,n,r,e,i,a,o,u){return xr(t,n,e,i,a,o,r)}}},Xc.generateRoundPolygon=function(t,n){return this.nodeShapes[t]={renderer:this,name:t,points:n,getOrCreateCorners:function(t,r,e,i,a,o,u){if(void 0!==o[u]&&o[u+"-cx"]===t&&o[u+"-cy"]===r)return o[u];o[u]=new Array(n.length/2),o[u+"-cx"]=t,o[u+"-cy"]=r;var s=e/2,f=i/2;a="auto"===a?Pr(e,i):a;for(var c=new Array(n.length/2),l=0;l<n.length/2;l++)c[l]={x:t+s*n[2*l],y:r+f*n[2*l+1]};var v,h,d,g,p=c.length;for(h=c[p-1],v=0;v<p;v++)d=c[v%p],g=c[(v+1)%p],o[u][v]=Nc(h,d,g,a),h=d,d=g;return o[u]},draw:function(t,n,r,e,i,a,o){this.renderer.nodeShapeImpl("round-polygon",t,n,r,e,i,this.points,this.getOrCreateCorners(n,r,e,i,a,o,"drawCorners"))},intersectLine:function(t,n,r,e,i,a,o,u,s){return function(t,n,r,e,i,a,o,u,s){var f,c=[],l=new Array(2*r.length);s.forEach(function(r,a){0===a?(l[l.length-2]=r.startX,l[l.length-1]=r.startY):(l[4*a-2]=r.startX,l[4*a-1]=r.startY),l[4*a]=r.stopX,l[4*a+1]=r.stopY,0!==(f=wr(t,n,e,i,r.cx,r.cy,r.radius)).length&&c.push(f[0],f[1])});for(var v=0;v<l.length/4;v++)0!==(f=Mr(t,n,e,i,l[4*v],l[4*v+1],l[4*v+2],l[4*v+3],!1)).length&&c.push(f[0],f[1]);if(c.length>2){for(var h=[c[0],c[1]],d=Math.pow(h[0]-t,2)+Math.pow(h[1]-n,2),g=1;g<c.length/2;g++){var p=Math.pow(c[2*g]-t,2)+Math.pow(c[2*g+1]-n,2);p<=d&&(h[0]=c[2*g],h[1]=c[2*g+1],d=p)}return h}return c}(i,a,this.points,t,n,0,0,0,this.getOrCreateCorners(t,n,r,e,u,s,"corners"))},checkPoint:function(t,n,r,e,i,a,o,u,s){return function(t,n,r,e,i,a,o,u){for(var s=new Array(2*r.length),f=0;f<u.length;f++){var c=u[f];if(s[4*f+0]=c.startX,s[4*f+1]=c.startY,s[4*f+2]=c.stopX,s[4*f+3]=c.stopY,Math.pow(c.cx-t,2)+Math.pow(c.cy-n,2)<=Math.pow(c.radius,2))return!0}return pr(t,n,s)}(t,n,this.points,0,0,0,0,this.getOrCreateCorners(a,o,e,i,u,s,"corners"))}}},Xc.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:Tr(4,0),draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl(this.name,t,n,r,e,i,this.points,a)},intersectLine:function(t,n,r,e,i,a,o,u){return lr(i,a,t,n,r,e,o,u)},checkPoint:function(t,n,r,e,i,a,o,u){var s=e/2,f=i/2;u="auto"===u?zr(e,i):u;var c=2*(u=Math.min(s,f,u));return!!yr(t,n,this.points,a,o,e,i-c,[0,-1],r)||(!!yr(t,n,this.points,a,o,e-c,i,[0,-1],r)||(!!xr(t,n,c,c,a-s+u,o-f+u,r)||(!!xr(t,n,c,c,a+s-u,o-f+u,r)||(!!xr(t,n,c,c,a+s-u,o+f-u,r)||!!xr(t,n,c,c,a-s+u,o+f-u,r)))))}}},Xc.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:8,points:Tr(4,0),draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl(this.name,t,n,r,e,i,null,a)},generateCutTrianglePts:function(t,n,r,e,i){var a="auto"===i?this.cornerLength:i,o=n/2,u=t/2,s=r-u,f=r+u,c=e-o,l=e+o;return{topLeft:[s,c+a,s+a,c,s+a,c+a],topRight:[f-a,c,f,c+a,f-a,c+a],bottomRight:[f,l-a,f-a,l,f-a,l-a],bottomLeft:[s+a,l,s,l-a,s+a,l-a]}},intersectLine:function(t,n,r,e,i,a,o,u){var s=this.generateCutTrianglePts(r+2*o,e+2*o,t,n,u),f=[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]);return Cr(i,a,f,t,n)},checkPoint:function(t,n,r,e,i,a,o,u){var s="auto"===u?this.cornerLength:u;if(yr(t,n,this.points,a,o,e,i-2*s,[0,-1],r))return!0;if(yr(t,n,this.points,a,o,e-2*s,i,[0,-1],r))return!0;var f=this.generateCutTrianglePts(e,i,a,o);return pr(t,n,f.topLeft)||pr(t,n,f.topRight)||pr(t,n,f.bottomRight)||pr(t,n,f.bottomLeft)}}},Xc.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:Tr(4,0),draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl(this.name,t,n,r,e,i)},intersectLine:function(t,n,r,e,i,a,o,u){var s=this.generateBarrelBezierPts(r+2*o,e+2*o,t,n),f=function(t){var n=Xn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},.15),r=Xn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},.5),e=Xn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},.85);return[t[0],t[1],n.x,n.y,r.x,r.y,e.x,e.y,t[4],t[5]]},c=[].concat(f(s.topLeft),f(s.topRight),f(s.bottomRight),f(s.bottomLeft));return Cr(i,a,c,t,n)},generateBarrelBezierPts:function(t,n,r,e){var i=n/2,a=t/2,o=r-a,u=r+a,s=e-i,f=e+i,c=Or(t,n),l=c.heightOffset,v=c.widthOffset,h=c.ctrlPtOffsetPct*t,d={topLeft:[o,s+l,o+h,s,o+v,s],topRight:[u-v,s,u-h,s,u,s+l],bottomRight:[u,f-l,u-h,f,u-v,f],bottomLeft:[o+v,f,o+h,f,o,f-l]};return d.topLeft.isTop=!0,d.topRight.isTop=!0,d.bottomLeft.isBottom=!0,d.bottomRight.isBottom=!0,d},checkPoint:function(t,n,r,e,i,a,o,u){var s=Or(e,i),f=s.heightOffset,c=s.widthOffset;if(yr(t,n,this.points,a,o,e,i-2*f,[0,-1],r))return!0;if(yr(t,n,this.points,a,o,e-2*c,i,[0,-1],r))return!0;for(var l=this.generateBarrelBezierPts(e,i,a,o),v=function(t,n,r){var e,i,a=r[4],o=r[2],u=r[0],s=r[5],f=r[1],c=Math.min(a,u),l=Math.max(a,u),v=Math.min(s,f),h=Math.max(s,f);if(c<=t&&t<=l&&v<=n&&n<=h){var d=[(e=a)-2*(i=o)+u,2*(i-e),e],g=function(t,n,r,e){var i=n*n-4*t*(r-=e);if(i<0)return[];var a=Math.sqrt(i),o=2*t;return[(-n+a)/o,(-n-a)/o]}(d[0],d[1],d[2],t).filter(function(t){return 0<=t&&t<=1});if(g.length>0)return g[0]}return null},h=Object.keys(l),d=0;d<h.length;d++){var g=l[h[d]],p=v(t,n,g);if(null!=p){var y=g[5],m=g[3],b=g[1],x=Yn(y,m,b,p);if(g.isTop&&x<=n)return!0;if(g.isBottom&&n<=x)return!0}}return!1}}},Xc.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:Tr(4,0),draw:function(t,n,r,e,i,a){this.renderer.nodeShapeImpl(this.name,t,n,r,e,i,this.points,a)},intersectLine:function(t,n,r,e,i,a,o,u){var s=n-(e/2+o),f=Mr(i,a,t,n,t-(r/2+o),s,t+(r/2+o),s,!1);return f.length>0?f:lr(i,a,t,n,r,e,o,u)},checkPoint:function(t,n,r,e,i,a,o,u){var s=2*(u="auto"===u?zr(e,i):u);if(yr(t,n,this.points,a,o,e,i-s,[0,-1],r))return!0;if(yr(t,n,this.points,a,o,e-s,i,[0,-1],r))return!0;var f=e/2+2*r,c=i/2+2*r;return!!pr(t,n,[a-f,o-c,a-f,o,a+f,o,a+f,o-c])||(!!xr(t,n,s,s,a+e/2-u,o+i/2-u,r)||!!xr(t,n,s,s,a-e/2+u,o+i/2-u,r))}}},Xc.registerNodeShapes=function(){var t=this.nodeShapes={},n=this;this.generateEllipse(),this.generatePolygon("triangle",Tr(3,0)),this.generateRoundPolygon("round-triangle",Tr(3,0)),this.generatePolygon("rectangle",Tr(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r),this.generatePolygon("pentagon",Tr(5,0)),this.generateRoundPolygon("round-pentagon",Tr(5,0)),this.generatePolygon("hexagon",Tr(6,0)),this.generateRoundPolygon("round-hexagon",Tr(6,0)),this.generatePolygon("heptagon",Tr(7,0)),this.generateRoundPolygon("round-heptagon",Tr(7,0)),this.generatePolygon("octagon",Tr(8,0)),this.generateRoundPolygon("round-octagon",Tr(8,0));var e=new Array(20),i=Sr(5,0),a=Sr(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var u=0;u<a.length/2;u++)a[2*u]*=o,a[2*u+1]*=o;for(u=0;u<5;u++)e[4*u]=i[2*u],e[4*u+1]=i[2*u+1],e[4*u+2]=a[2*u],e[4*u+3]=a[2*u+1];e=Er(e),this.generatePolygon("star",e),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var s=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",s),this.generateRoundPolygon("round-tag",s),t.makePolygon=function(t){var r,e="polygon-"+t.join("$");return(r=this[e])?r:n.generatePolygon(e,t)}};var Qc={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(t){t=t||sn();var n=this;void 0===n.averageRedrawTime&&(n.averageRedrawTime=0),void 0===n.lastRedrawTime&&(n.lastRedrawTime=0),void 0===n.lastDrawTime&&(n.lastDrawTime=0),n.requestedFrame=!0,n.renderOptions=t},beforeRender:function(t,n){if(!this.destroyed){null==n&&nn("Priority is not optional for beforeRender");var r=this.beforeRenderCallbacks;r.push({fn:t,priority:n}),r.sort(function(t,n){return n.priority-t.priority})}}},Jc=function(t,n,r){for(var e=t.beforeRenderCallbacks,i=0;i<e.length;i++)e[i].fn(n,r)};Qc.startRenderLoop=function(){var t=this,n=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var r=function(e){if(!t.destroyed){if(n.batching());else if(t.requestedFrame&&!t.skipFrame){Jc(t,!0,e);var i=Rt();t.render(t.renderOptions);var a=t.lastDrawTime=Rt();void 0===t.averageRedrawTime&&(t.averageRedrawTime=a-i),void 0===t.redrawCount&&(t.redrawCount=0),t.redrawCount++,void 0===t.redrawTotalTime&&(t.redrawTotalTime=0);var o=a-i;t.redrawTotalTime+=o,t.lastRedrawTime=o,t.averageRedrawTime=t.averageRedrawTime/2+o/2,t.requestedFrame=!1}else Jc(t,!1,e);t.skipFrame=!1,Nt(r)}};Nt(r)}};var tl=function(t){this.init(t)},nl=tl.prototype;nl.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],nl.init=function(t){var n=this;n.options=t,n.cy=t.cy;var r=n.container=t.cy.container(),e=n.cy.window();if(e){var i=e.document,a=i.head,o="__________cytoscape_stylesheet",u="__________cytoscape_container",s=null!=i.getElementById(o);if(r.className.indexOf(u)<0&&(r.className=(r.className||"")+" "+u),!s){var f=i.createElement("style");f.id=o,f.textContent="."+u+" { position: relative; }",a.insertBefore(f,a.children[0])}"static"===e.getComputedStyle(r).getPropertyValue("position")&&en("A Cytoscape container has style position:static and so can not use UI extensions properly")}n.selection=[void 0,void 0,void 0,void 0,0],n.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],n.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},n.dragData={possibleDragElements:[]},n.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},n.redraws=0,n.showFps=t.showFps,n.debug=t.debug,n.webgl=t.webgl,n.hideEdgesOnViewport=t.hideEdgesOnViewport,n.textureOnViewport=t.textureOnViewport,n.wheelSensitivity=t.wheelSensitivity,n.motionBlurEnabled=t.motionBlur,n.forcedPixelRatio=U(t.pixelRatio)?t.pixelRatio:null,n.motionBlur=t.motionBlur,n.motionBlurOpacity=t.motionBlurOpacity,n.motionBlurTransparency=1-n.motionBlurOpacity,n.motionBlurPxRatio=1,n.mbPxRBlurry=1,n.minMbLowQualFrames=4,n.fullQualityMb=!1,n.clearedForMotionBlur=[],n.desktopTapThreshold=t.desktopTapThreshold,n.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,n.touchTapThreshold=t.touchTapThreshold,n.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,n.tapholdDuration=500,n.bindings=[],n.beforeRenderCallbacks=[],n.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},n.registerNodeShapes(),n.registerArrowShapes(),n.registerCalculationListeners()},nl.notify=function(t,n){var r=this,e=r.cy;this.destroyed||("init"!==t?"destroy"!==t?(("add"===t||"remove"===t||"move"===t&&e.hasCompoundNodes()||"load"===t||"zorder"===t||"mount"===t)&&r.invalidateCachedZSortedEles(),"viewport"===t&&r.redrawHint("select",!0),"gc"===t&&r.redrawHint("gc",!0),"load"!==t&&"resize"!==t&&"mount"!==t||(r.invalidateContainerClientCoordsCache(),r.matchCanvasSize(r.container)),r.redrawHint("eles",!0),r.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()):r.destroy():r.load())},nl.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var n=0;n<t.bindings.length;n++){var r=t.bindings[n],e=r.target;(e.off||e.removeEventListener).apply(e,r.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch(i){}},nl.isHeadless=function(){return!1},[sc,Gc,Uc,Yc,Xc,Qc].forEach(function(t){pt(nl,t)});var rl=1e3/60,el=function(t){return function(){var n=this,r=this.renderer;if(!n.dequeueingSetup){n.dequeueingSetup=!0;var e=St(function(){r.redrawHint("eles",!0),r.redrawHint("drag",!0),r.redraw()},t.deqRedrawThreshold),i=t.priority||tn;r.beforeRender(function(i,a){var o=Rt(),u=r.averageRedrawTime,s=r.lastRedrawTime,f=[],c=r.cy.extent(),l=r.getPixelRatio();for(i||r.flushRenderedStyleQueue();;){var v=Rt(),h=v-o,d=v-a;if(s<rl){var g=rl-(i?u:0);if(d>=t.deqFastCost*g)break}else if(i){if(h>=t.deqCost*s||h>=t.deqAvgCost*u)break}else if(d>=t.deqNoDrawCost*rl)break;var p=t.deq(n,l,c);if(!(p.length>0))break;for(var y=0;y<p.length;y++)f.push(p[y])}f.length>0&&(t.onDeqd(n,f),!i&&t.shouldRedraw(n,f,l,c)&&e())},i(n))}}},il=function(){return r(function t(r){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Qt;n(this,t),this.idsByKey=new dn,this.keyForId=new dn,this.cachesByLvl=new dn,this.lvls=[],this.getKey=r,this.doesEleInvalidateKey=e},[{key:"getIdsFor",value:function(t){null==t&&nn("Can not get id list for null key");var n=this.idsByKey,r=this.idsByKey.get(t);return r||(r=new pn,n.set(t,r)),r}},{key:"addIdForKey",value:function(t,n){null!=t&&this.getIdsFor(t).add(n)}},{key:"deleteIdForKey",value:function(t,n){null!=t&&this.getIdsFor(t).delete(n)}},{key:"getNumberOfIdsForKey",value:function(t){return null==t?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var n=t.id(),r=this.keyForId.get(n),e=this.getKey(t);this.deleteIdForKey(r,n),this.addIdForKey(e,n),this.keyForId.set(n,e)}},{key:"deleteKeyMappingFor",value:function(t){var n=t.id(),r=this.keyForId.get(n);this.deleteIdForKey(r,n),this.keyForId.delete(n)}},{key:"keyHasChangedFor",value:function(t){var n=t.id();return this.keyForId.get(n)!==this.getKey(t)}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var n=this.cachesByLvl,r=this.lvls,e=n.get(t);return e||(e=new dn,n.set(t,e),r.push(t)),e}},{key:"getCache",value:function(t,n){return this.getCachesAt(n).get(t)}},{key:"get",value:function(t,n){var r=this.getKey(t),e=this.getCache(r,n);return null!=e&&this.updateKeyMappingFor(t),e}},{key:"getForCachedKey",value:function(t,n){var r=this.keyForId.get(t.id());return this.getCache(r,n)}},{key:"hasCache",value:function(t,n){return this.getCachesAt(n).has(t)}},{key:"has",value:function(t,n){var r=this.getKey(t);return this.hasCache(r,n)}},{key:"setCache",value:function(t,n,r){r.key=t,this.getCachesAt(n).set(t,r)}},{key:"set",value:function(t,n,r){var e=this.getKey(t);this.setCache(e,n,r),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,n){this.getCachesAt(n).delete(t)}},{key:"delete",value:function(t,n){var r=this.getKey(t);this.deleteCache(r,n)}},{key:"invalidateKey",value:function(t){var n=this;this.lvls.forEach(function(r){return n.deleteCache(t,r)})}},{key:"invalidate",value:function(t){var n=t.id(),r=this.keyForId.get(n);this.deleteKeyMappingFor(t);var e=this.doesEleInvalidateKey(t);return e&&this.invalidateKey(r),e||0===this.getNumberOfIdsForKey(r)}}])}(),al=7.99,ol={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},ul=fn({getKey:null,doesEleInvalidateKey:Qt,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Xt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),sl=function(t,n){var r=this;r.renderer=t,r.onDequeues=[];var e=ul(n);pt(r,e),r.lookup=new il(e.getKey,e.doesEleInvalidateKey),r.setupDequeueing()},fl=sl.prototype;fl.reasons=ol,fl.getTextureQueue=function(t){var n=this;return n.eleImgCaches=n.eleImgCaches||{},n.eleImgCaches[t]=n.eleImgCaches[t]||[]},fl.getRetiredTextureQueue=function(t){var n=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return n[t]=n[t]||[]},fl.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new Tn(function(t,n){return n.reqs-t.reqs})},fl.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},fl.getElement=function(t,n,r,e,i){var a=this,o=this.renderer,u=o.cy.zoom(),s=this.lookup;if(!n||0===n.w||0===n.h||isNaN(n.w)||isNaN(n.h)||!t.visible()||t.removed())return null;if(!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(null==e&&(e=Math.ceil(Kn(u*r))),e<-4)e=-4;else if(u>=7.99||e>3)return null;var f=Math.pow(2,e),c=n.h*f,l=n.w*f,v=o.eleTextBiggerThanMin(t,f);if(!this.isVisible(t,v))return null;var h,d=s.get(t,e);if(d&&d.invalidated&&(d.invalidated=!1,d.texture.invalidatedWidth-=d.width),d)return d;if(h=c<=25?25:c<=50?50:50*Math.ceil(c/50),c>1024||l>1024)return null;var g=a.getTextureQueue(h),p=g[g.length-2],y=function(){return a.recycleTexture(h,l)||a.addTexture(h,l)};p||(p=g[g.length-1]),p||(p=y()),p.width-p.usedWidth<l&&(p=y());for(var m,b=function(t){return t&&t.scaledLabelShown===v},x=i&&i===ol.dequeue,w=i&&i===ol.highQuality,k=i&&i===ol.downscale,M=e+1;M<=3;M++){var B=s.get(t,M);if(B){m=B;break}}var C=m&&m.level===e+1?m:null,A=function(){p.context.drawImage(C.texture.canvas,C.x,0,C.width,C.height,p.usedWidth,0,l,c)};if(p.context.setTransform(1,0,0,1,0,0),p.context.clearRect(p.usedWidth,0,l,h),b(C))A();else if(b(m)){if(!w)return a.queueElement(t,m.level-1),m;for(var T=m.level;T>e;T--)C=a.getElement(t,n,r,T,ol.downscale);A()}else{var E;if(!x&&!w&&!k)for(var S=e-1;S>=-4;S--){var z=s.get(t,S);if(z){E=z;break}}if(b(E))return a.queueElement(t,e),E;p.context.translate(p.usedWidth,0),p.context.scale(f,f),this.drawElement(p.context,t,n,v,!1),p.context.scale(1/f,1/f),p.context.translate(-p.usedWidth,0)}return d={x:p.usedWidth,texture:p,level:e,scale:f,width:l,height:c,scaledLabelShown:v},p.usedWidth+=Math.ceil(l+8),p.eleCaches.push(d),s.set(t,e,d),a.checkTextureFullness(p),d},fl.invalidateElements=function(t){for(var n=0;n<t.length;n++)this.invalidateElement(t[n])},fl.invalidateElement=function(t){var n=this,r=n.lookup,e=[];if(r.isInvalid(t)){for(var i=-4;i<=3;i++){var a=r.getForCachedKey(t,i);a&&e.push(a)}if(r.invalidate(t))for(var o=0;o<e.length;o++){var u=e[o],s=u.texture;s.invalidatedWidth+=u.width,u.invalidated=!0,n.checkTextureUtility(s)}n.removeFromQueue(t)}},fl.checkTextureUtility=function(t){t.invalidatedWidth>=.2*t.width&&this.retireTexture(t)},fl.checkTextureFullness=function(t){var n=this.getTextureQueue(t.height);t.usedWidth/t.width>.8&&t.fullnessChecks>=10?cn(n,t):t.fullnessChecks++},fl.retireTexture=function(t){var n=t.height,r=this.getTextureQueue(n),e=this.lookup;cn(r,t),t.retired=!0;for(var i=t.eleCaches,a=0;a<i.length;a++){var o=i[a];e.deleteCache(o.key,o.level)}ln(i),this.getRetiredTextureQueue(n).push(t)},fl.addTexture=function(t,n){var r={};return this.getTextureQueue(t).push(r),r.eleCaches=[],r.height=t,r.width=Math.max(1024,n),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=this.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},fl.recycleTexture=function(t,n){for(var r=this.getTextureQueue(t),e=this.getRetiredTextureQueue(t),i=0;i<e.length;i++){var a=e[i];if(a.width>=n)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,ln(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),cn(e,a),r.push(a),a}},fl.queueElement=function(t,n){var r=this.getElementQueue(),e=this.getElementKeyToQueue(),i=this.getKey(t),a=e[i];if(a)a.level=Math.max(a.level,n),a.eles.merge(t),a.reqs++,r.updateItem(a);else{var o={eles:t.spawn().merge(t),level:n,reqs:1,key:i};r.push(o),e[i]=o}},fl.dequeue=function(t){for(var n=this,r=n.getElementQueue(),e=n.getElementKeyToQueue(),i=[],a=n.lookup,o=0;o<1&&r.size()>0;o++){var u=r.pop(),s=u.key,f=u.eles[0],c=a.hasCache(f,u.level);if(e[s]=null,!c){i.push(u);var l=n.getBoundingBox(f);n.getElement(f,l,t,u.level,ol.dequeue)}}return i},fl.removeFromQueue=function(t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),e=this.getKey(t),i=r[e];null!=i&&(1===i.eles.length?(i.reqs=Yt,n.updateItem(i),n.pop(),r[e]=null):i.eles.unmerge(t))},fl.onDequeue=function(t){this.onDequeues.push(t)},fl.offDequeue=function(t){cn(this.onDequeues,t)},fl.setupDequeueing=el({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(t,n,r){return t.dequeue(n,r)},onDeqd:function(t,n){for(var r=0;r<t.onDequeues.length;r++){(0,t.onDequeues[r])(n)}},shouldRedraw:function(t,n,r,e){for(var i=0;i<n.length;i++)for(var a=n[i].eles,o=0;o<a.length;o++){var u=a[o].boundingBox();if(ar(u,e))return!0}return!1},priority:function(t){return t.renderer.beforeRenderPriorities.eleTxrDeq}});var cl=function(t){var n=this,r=n.renderer=t,e=r.cy;n.layersByLevel={},n.firstGet=!0,n.lastInvalidationTime=Rt()-500,n.skipping=!1,n.eleTxrDeqs=e.collection(),n.scheduleElementRefinement=St(function(){n.refineElementTextures(n.eleTxrDeqs),n.eleTxrDeqs.unmerge(n.eleTxrDeqs)},50),r.beforeRender(function(t,r){r-n.lastInvalidationTime<=250?n.skipping=!0:n.skipping=!1},r.beforeRenderPriorities.lyrTxrSkip);n.layersQueue=new Tn(function(t,n){return n.reqs-t.reqs}),n.setupDequeueing()},ll=cl.prototype,vl=0,hl=Math.pow(2,53)-1;ll.makeLayer=function(t,n){var r=Math.pow(2,n),e=Math.ceil(t.w*r),i=Math.ceil(t.h*r),a=this.renderer.makeOffscreenCanvas(e,i),o={id:vl=++vl%hl,bb:t,level:n,width:e,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},u=o.context,s=-o.bb.x1,f=-o.bb.y1;return u.scale(r,r),u.translate(s,f),o},ll.getLayers=function(t,n,r){var e=this,i=e.renderer.cy.zoom(),a=e.firstGet;if(e.firstGet=!1,null==r)if((r=Math.ceil(Kn(i*n)))<-4)r=-4;else if(i>=3.99||r>2)return null;e.validateLayersElesOrdering(r,t);var o,u,s=e.layersByLevel,f=Math.pow(2,r),c=s[r]=s[r]||[];if(e.levelIsComplete(r,t))return c;!function(){var n=function(n){if(e.validateLayersElesOrdering(n,t),e.levelIsComplete(n,t))return u=s[n],!0},i=function(t){if(!u)for(var e=r+t;-4<=e&&e<=2&&!n(e);e+=t);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&cn(c,o)}}();var l=function(n){var i=(n=n||{}).after;!function(){if(!o){o=Jn();for(var n=0;n<t.length;n++)tr(o,t[n].boundingBox())}}();var a=Math.ceil(o.w*f),u=Math.ceil(o.h*f);if(a>32767||u>32767)return null;if(a*u>16e6)return null;var s=e.makeLayer(o,r);if(null!=i){var l=c.indexOf(i)+1;c.splice(l,0,s)}else(void 0===n.insert||n.insert)&&c.unshift(s);return s};if(e.skipping&&!a)return null;for(var v=null,h=t.length/1,d=!a,g=0;g<t.length;g++){var p=t[g],y=p.t.rscratch,m=y.imgLayerCaches=y.imgLayerCaches||{},b=m[r];if(b)v=b;else{if((!v||v.eles.length>=h||!sr(v.bb,p.boundingBox()))&&!(v=l({insert:!0,after:v})))return null;u||d?e.queueLayer(v,p):e.drawEleInLayer(v,p,r,n),v.eles.push(p),m[r]=v}}return u||(d?null:c)},ll.getEleLevelForLayerLevel=function(t,n){return t},ll.drawEleInLayer=function(t,n,r,e){var i=this.renderer,a=t.context,o=n.boundingBox();0!==o.w&&0!==o.h&&n.visible()&&(r=this.getEleLevelForLayerLevel(r,e),i.setImgSmoothing(a,!1),i.drawCachedElement(a,n,null,null,r,true),i.setImgSmoothing(a,!0))},ll.levelIsComplete=function(t,n){var r=this.layersByLevel[t];if(!r||0===r.length)return!1;for(var e=0,i=0;i<r.length;i++){var a=r[i];if(a.reqs>0)return!1;if(a.invalid)return!1;e+=a.eles.length}return e===n.length},ll.validateLayersElesOrdering=function(t,n){var r=this.layersByLevel[t];if(r)for(var e=0;e<r.length;e++){for(var i=r[e],a=-1,o=0;o<n.length;o++)if(i.eles[0]===n[o]){a=o;break}if(a<0)this.invalidateLayer(i);else{var u=a;for(o=0;o<i.eles.length;o++)if(i.eles[o]!==n[u+o]){this.invalidateLayer(i);break}}}},ll.updateElementsInLayers=function(t,n){for(var r=Q(t[0]),e=0;e<t.length;e++)for(var i=r?null:t[e],a=r?t[e]:t[e].ele,o=a.t.rscratch,u=o.imgLayerCaches=o.imgLayerCaches||{},s=-4;s<=2;s++){var f=u[s];f&&(i&&this.getEleLevelForLayerLevel(f.level)!==i.level||n(f,a,i))}},ll.haveLayers=function(){for(var t=!1,n=-4;n<=2;n++){var r=this.layersByLevel[n];if(r&&r.length>0){t=!0;break}}return t},ll.invalidateElements=function(t){var n=this;0!==t.length&&(n.lastInvalidationTime=Rt(),0!==t.length&&n.haveLayers()&&n.updateElementsInLayers(t,function(t,r,e){n.invalidateLayer(t)}))},ll.invalidateLayer=function(t){if(this.lastInvalidationTime=Rt(),!t.invalid){var n=t.level,r=t.eles,e=this.layersByLevel[n];cn(e,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i<r.length;i++){var a=r[i].t.rscratch.imgLayerCaches;a&&(a[n]=null)}}},ll.refineElementTextures=function(t){var n=this;n.updateElementsInLayers(t,function(t,r,e){var i=t.replacement;if(i||((i=t.replacement=n.makeLayer(t.bb,t.level)).replaces=t,i.eles=t.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)n.queueLayer(i,i.eles[a])})},ll.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()},ll.queueLayer=function(t,n){var r=this.layersQueue,e=t.elesQueue,i=e.hasId=e.hasId||{};if(!t.replacement){if(n){if(i[n.id()])return;e.push(n),i[n.id()]=!0}t.reqs?(t.reqs++,r.updateItem(t)):(t.reqs=1,r.push(t))}},ll.dequeue=function(t){for(var n=this,r=n.layersQueue,e=[],i=0;i<1&&0!==r.size();){var a=r.peek();if(a.replacement)r.pop();else if(a.replaces&&a!==a.replaces.replacement)r.pop();else if(a.invalid)r.pop();else{var o=a.elesQueue.shift();o&&(n.drawEleInLayer(a,o,a.level,t),i++),0===e.length&&e.push(!0),0===a.elesQueue.length&&(r.pop(),a.reqs=0,a.replaces&&n.applyLayerReplacement(a),n.requestRedraw())}}return e},ll.applyLayerReplacement=function(t){var n=this.layersByLevel[t.level],r=t.replaces,e=n.indexOf(r);if(!(e<0||r.invalid)){n[e]=t;for(var i=0;i<t.eles.length;i++){var a=t.eles[i].t,o=a.imgLayerCaches=a.imgLayerCaches||{};o&&(o[t.level]=t)}this.requestRedraw()}},ll.requestRedraw=St(function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()},100),ll.setupDequeueing=el({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(t,n){return t.dequeue(n)},onDeqd:tn,shouldRedraw:Xt,priority:function(t){return t.renderer.beforeRenderPriorities.lyrTxrDeq}});var dl,gl={};function pl(t,n){for(var r=0;r<n.length;r++){var e=n[r];t.lineTo(e.x,e.y)}}function yl(t,n,r){for(var e,i=0;i<n.length;i++){var a=n[i];0===i&&(e=a),t.lineTo(a.x,a.y)}t.quadraticCurveTo(r.x,r.y,e.x,e.y)}function ml(t,n,r){t.beginPath&&t.beginPath();for(var e=n,i=0;i<e.length;i++){var a=e[i];t.lineTo(a.x,a.y)}var o=r,u=r[0];t.moveTo(u.x,u.y);for(i=1;i<o.length;i++){a=o[i];t.lineTo(a.x,a.y)}t.closePath&&t.closePath()}function bl(t,n,r,e,i){t.beginPath&&t.beginPath(),t.arc(r,e,i,0,2*Math.PI,!1);var a=n,o=a[0];t.moveTo(o.x,o.y);for(var u=0;u<a.length;u++){var s=a[u];t.lineTo(s.x,s.y)}t.closePath&&t.closePath()}function xl(t,n,r,e){t.arc(n,r,e,0,2*Math.PI,!1)}gl.arrowShapeImpl=function(t){return(dl||(dl={polygon:pl,"triangle-backcurve":yl,"triangle-tee":ml,"circle-triangle":bl,"triangle-cross":ml,circle:xl}))[t]};var wl={drawElement:function(t,n,r,e,i,a){n.isNode()?this.drawNode(t,n,r,e,i,a):this.drawEdge(t,n,r,e,i,a)},drawElementOverlay:function(t,n){n.isNode()?this.drawNodeOverlay(t,n):this.drawEdgeOverlay(t,n)},drawElementUnderlay:function(t,n){n.isNode()?this.drawNodeUnderlay(t,n):this.drawEdgeUnderlay(t,n)},drawCachedElementPortion:function(t,n,r,e,i,a,o,u){var s=this,f=r.getBoundingBox(n);if(0!==f.w&&0!==f.h){var c=r.getElement(n,f,e,i,a);if(null!=c){var l=u(s,n);if(0===l)return;var v,h,d,g,p,y,m=o(s,n),b=f.x1,x=f.y1,w=f.w,k=f.h;if(0!==m){var M=r.getRotationPoint(n);d=M.x,g=M.y,t.translate(d,g),t.rotate(m),(p=s.getImgSmoothing(t))||s.setImgSmoothing(t,!0);var B=r.getRotationOffset(n);v=B.x,h=B.y}else v=b,h=x;1!==l&&(y=t.globalAlpha,t.globalAlpha=y*l),t.drawImage(c.texture.canvas,c.x,0,c.width,c.height,v,h,w,k),1!==l&&(t.globalAlpha=y),0!==m&&(t.rotate(-m),t.translate(-d,-g),p||s.setImgSmoothing(t,!1))}else r.drawElement(t,n)}}},kl=function(){return 0},Ml=function(t,n){return t.getTextAngle(n,null)},Bl=function(t,n){return t.getTextAngle(n,"source")},Cl=function(t,n){return t.getTextAngle(n,"target")},Al=function(t,n){return n.effectiveOpacity()},Tl=function(t,n){return n.pstyle("text-opacity").pfValue*n.effectiveOpacity()};wl.drawCachedElement=function(t,n,r,e,i,a){var o=this,u=o.data,s=u.eleTxrCache,f=u.lblTxrCache,c=u.slbTxrCache,l=u.tlbTxrCache,v=n.boundingBox(),h=!0===a?s.reasons.highQuality:null;if(0!==v.w&&0!==v.h&&n.visible()&&(!e||ar(v,e))){var d=n.isEdge(),g=n.element().t.rscratch.badLine;o.drawElementUnderlay(t,n),o.drawCachedElementPortion(t,n,s,r,i,h,kl,Al),d&&g||o.drawCachedElementPortion(t,n,f,r,i,h,Ml,Tl),d&&!g&&(o.drawCachedElementPortion(t,n,c,r,i,h,Bl,Tl),o.drawCachedElementPortion(t,n,l,r,i,h,Cl,Tl)),o.drawElementOverlay(t,n)}},wl.drawElements=function(t,n){for(var r=0;r<n.length;r++){var e=n[r];this.drawElement(t,e)}},wl.drawCachedElements=function(t,n,r,e){for(var i=0;i<n.length;i++){var a=n[i];this.drawCachedElement(t,a,r,e)}},wl.drawCachedNodes=function(t,n,r,e){for(var i=0;i<n.length;i++){var a=n[i];a.isNode()&&this.drawCachedElement(t,a,r,e)}},wl.drawLayeredElements=function(t,n,r,e){var i=this.data.lyrTxrCache.getLayers(n,r);if(i)for(var a=0;a<i.length;a++){var o=i[a],u=o.bb;0!==u.w&&0!==u.h&&t.drawImage(o.canvas,u.x1,u.y1,u.w,u.h)}else this.drawCachedElements(t,n,r,e)};var El={drawEdge:function(t,n,r){var e=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,u=n.t.rscratch;if((!a||n.visible())&&!u.badLine&&null!=u.allpts&&!isNaN(u.allpts[0])){var s;r&&(s=r,t.translate(-s.x1,-s.y1));var f=a?n.pstyle("opacity").value:1,c=a?n.pstyle("line-opacity").value:1,l=n.pstyle("curve-style").value,v=n.pstyle("line-style").value,h=n.pstyle("width").pfValue,d=n.pstyle("line-cap").value,g=n.pstyle("line-outline-width").value,p=n.pstyle("line-outline-color").value,y=f*c,m=f*c,b=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===l?(o.eleStrokeStyle(t,n,r),o.drawEdgeTrianglePath(n,t,u.allpts)):(t.lineWidth=h,t.lineCap=d,o.eleStrokeStyle(t,n,r),o.drawEdgePath(n,t,u.allpts,v),t.lineCap="butt")},x=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;o.drawArrowheads(t,n,r)};if(t.lineJoin="round","yes"===n.pstyle("ghost").value){var w=n.pstyle("ghost-offset-x").pfValue,k=n.pstyle("ghost-offset-y").pfValue,M=n.pstyle("ghost-opacity").value,B=y*M;t.translate(w,k),b(B),x(B),t.translate(-w,-k)}else!function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;t.lineWidth=h+g,t.lineCap=d,g>0?(o.colorStrokeStyle(t,p[0],p[1],p[2],r),"straight-triangle"===l?o.drawEdgeTrianglePath(n,t,u.allpts):(o.drawEdgePath(n,t,u.allpts,v),t.lineCap="butt")):t.lineCap="butt"}();i&&o.drawEdgeUnderlay(t,n),b(),x(),i&&o.drawEdgeOverlay(t,n),o.drawElementText(t,n,null,e),r&&t.translate(s.x1,s.y1)}}},Sl=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(n,r){if(r.visible()){var e=r.pstyle("".concat(t,"-opacity")).value;if(0!==e){var i=this,a=i.usePaths(),o=r.t.rscratch,u=2*r.pstyle("".concat(t,"-padding")).pfValue,s=r.pstyle("".concat(t,"-color")).value;n.lineWidth=u,"self"!==o.edgeType||a?n.lineCap="round":n.lineCap="butt",i.colorStrokeStyle(n,s[0],s[1],s[2],e),i.drawEdgePath(r,n,o.allpts,"solid")}}}};El.drawEdgeOverlay=Sl("overlay"),El.drawEdgeUnderlay=Sl("underlay"),El.drawEdgePath=function(t,n,r,i){var a,o=t.t.rscratch,u=n,s=!1,f=this.usePaths(),c=t.pstyle("line-dash-pattern").pfValue,l=t.pstyle("line-dash-offset").pfValue;if(f){var v=r.join("$");o.pathCacheKey&&o.pathCacheKey===v?(a=n=o.pathCache,s=!0):(a=n=new Path2D,o.pathCacheKey=v,o.pathCache=a)}if(u.setLineDash)switch(i){case"dotted":u.setLineDash([1,1]);break;case"dashed":u.setLineDash(c),u.lineDashOffset=l;break;case"solid":u.setLineDash([])}if(!s&&!o.badLine)switch(n.beginPath&&n.beginPath(),n.moveTo(r[0],r[1]),o.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+3<r.length;h+=4)n.quadraticCurveTo(r[h],r[h+1],r[h+2],r[h+3]);break;case"straight":case"haystack":for(var d=2;d+1<r.length;d+=2)n.lineTo(r[d],r[d+1]);break;case"segments":if(o.isRound){var g,p=e(o.roundCorners);try{for(p.s();!(g=p.n()).done;){Oc(n,g.value)}}catch(m){p.e(m)}finally{p.f()}n.lineTo(r[r.length-2],r[r.length-1])}else for(var y=2;y+1<r.length;y+=2)n.lineTo(r[y],r[y+1])}n=u,f?n.stroke(a):n.stroke(),n.setLineDash&&n.setLineDash([])},El.drawEdgeTrianglePath=function(t,n,r){n.fillStyle=n.strokeStyle;for(var e=t.pstyle("width").pfValue,i=0;i+1<r.length;i+=2){var a=[r[i+2]-r[i],r[i+3]-r[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),u=[a[1]/o,-a[0]/o],s=[u[0]*e/2,u[1]*e/2];n.beginPath(),n.moveTo(r[i]-s[0],r[i+1]-s[1]),n.lineTo(r[i]+s[0],r[i+1]+s[1]),n.lineTo(r[i+2],r[i+3]),n.closePath(),n.fill()}},El.drawArrowheads=function(t,n,r){var e=n.t.rscratch,i="haystack"===e.edgeType;i||this.drawArrowhead(t,n,"source",e.arrowStartX,e.arrowStartY,e.srcArrowAngle,r),this.drawArrowhead(t,n,"mid-target",e.midX,e.midY,e.midtgtArrowAngle,r),this.drawArrowhead(t,n,"mid-source",e.midX,e.midY,e.midsrcArrowAngle,r),i||this.drawArrowhead(t,n,"target",e.arrowEndX,e.arrowEndY,e.tgtArrowAngle,r)},El.drawArrowhead=function(t,n,r,e,i,a,o){if(!(isNaN(e)||null==e||isNaN(i)||null==i||isNaN(a)||null==a)){var u=this,s=n.pstyle(r+"-arrow-shape").value;if("none"!==s){var f="hollow"===n.pstyle(r+"-arrow-fill").value?"both":"filled",c=n.pstyle(r+"-arrow-fill").value,l=n.pstyle("width").pfValue,v=n.pstyle(r+"-arrow-width"),h="match-line"===v.value?l:v.pfValue;"%"===v.units&&(h*=l);var d=n.pstyle("opacity").value;void 0===o&&(o=d);var g=t.globalCompositeOperation;1===o&&"hollow"!==c||(t.globalCompositeOperation="destination-out",u.colorFillStyle(t,255,255,255,1),u.colorStrokeStyle(t,255,255,255,1),u.drawArrowShape(n,t,f,l,s,h,e,i,a),t.globalCompositeOperation=g);var p=n.pstyle(r+"-arrow-color").value;u.colorFillStyle(t,p[0],p[1],p[2],o),u.colorStrokeStyle(t,p[0],p[1],p[2],o),u.drawArrowShape(n,t,c,l,s,h,e,i,a)}}},El.drawArrowShape=function(t,n,r,e,i,a,o,u,s){var f,c=this,l=this.usePaths()&&"triangle-cross"!==i,v=!1,h=n,d={x:o,y:u},g=t.pstyle("arrow-scale").value,p=this.getArrowWidth(e,g),y=c.arrowShapes[i];if(l){var m=c.arrowPathCache=c.arrowPathCache||[],b=Wt(i),x=m[b];null!=x?(f=n=x,v=!0):(f=n=new Path2D,m[b]=f)}v||(n.beginPath&&n.beginPath(),l?y.draw(n,1,0,{x:0,y:0},1):y.draw(n,p,s,d,e),n.closePath&&n.closePath()),n=h,l&&(n.translate(o,u),n.rotate(s),n.scale(p,p)),"filled"!==r&&"both"!==r||(l?n.fill(f):n.fill()),"hollow"!==r&&"both"!==r||(n.lineWidth=a/(l?p:1),n.lineJoin="miter",l?n.stroke(f):n.stroke()),l&&(n.scale(1/p,1/p),n.rotate(-s),n.translate(-o,-u))};var zl={safeDrawImage:function(t,n,r,e,i,a,o,u,s,f){if(!(i<=0||a<=0||s<=0||f<=0))try{t.drawImage(n,r,e,i,a,o,u,s,f)}catch(c){en(c)}},drawInscribedImage:function(t,n,r,e,i){var a=this,o=r.position(),u=o.x,s=o.y,f=r.cy().style(),c=f.getIndexedStyle.bind(f),l=c(r,"background-fit","value",e),v=c(r,"background-repeat","value",e),h=r.width(),d=r.height(),g=2*r.padding(),p=h+("inner"===c(r,"background-width-relative-to","value",e)?0:g),y=d+("inner"===c(r,"background-height-relative-to","value",e)?0:g),m=r.t.rscratch,b="node"===c(r,"background-clip","value",e),x=c(r,"background-image-opacity","value",e)*i,w=c(r,"background-image-smoothing","value",e),k=r.pstyle("corner-radius").value;"auto"!==k&&(k=r.pstyle("corner-radius").pfValue);var M=n.width||n.cachedW,B=n.height||n.cachedH;null!=M&&null!=B||(document.body.appendChild(n),M=n.cachedW=n.width||n.offsetWidth,B=n.cachedH=n.height||n.offsetHeight,document.body.removeChild(n));var C=M,A=B;if("auto"!==c(r,"background-width","value",e)&&(C="%"===c(r,"background-width","units",e)?c(r,"background-width","pfValue",e)*p:c(r,"background-width","pfValue",e)),"auto"!==c(r,"background-height","value",e)&&(A="%"===c(r,"background-height","units",e)?c(r,"background-height","pfValue",e)*y:c(r,"background-height","pfValue",e)),0!==C&&0!==A){if("contain"===l)C*=T=Math.min(p/C,y/A),A*=T;else if("cover"===l){var T;C*=T=Math.max(p/C,y/A),A*=T}var E=u-p/2,S=c(r,"background-position-x","units",e),z=c(r,"background-position-x","pfValue",e);E+="%"===S?(p-C)*z:z;var P=c(r,"background-offset-x","units",e),O=c(r,"background-offset-x","pfValue",e);E+="%"===P?(p-C)*O:O;var N=s-y/2,R=c(r,"background-position-y","units",e),F=c(r,"background-position-y","pfValue",e);N+="%"===R?(y-A)*F:F;var I=c(r,"background-offset-y","units",e),D=c(r,"background-offset-y","pfValue",e);N+="%"===I?(y-A)*D:D,m.pathCache&&(E-=u,N-=s,u=0,s=0);var L=t.globalAlpha;t.globalAlpha=x;var j=a.getImgSmoothing(t),q=!1;if("no"===w&&j?(a.setImgSmoothing(t,!1),q=!0):"yes"!==w||j||(a.setImgSmoothing(t,!0),q=!0),"no-repeat"===v)b&&(t.save(),m.pathCache?t.clip(m.pathCache):(a.nodeShapes[a.getNodeShape(r)].draw(t,u,s,p,y,k,m),t.clip())),a.safeDrawImage(t,n,0,0,M,B,E,N,C,A),b&&t.restore();else{var _=t.createPattern(n,v);t.fillStyle=_,a.nodeShapes[a.getNodeShape(r)].draw(t,u,s,p,y,k,m),t.translate(E,N),t.fill(),t.translate(-E,-N)}t.globalAlpha=L,q&&a.setImgSmoothing(t,j)}}},Pl={};function Ol(t,n,r,e,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5,o=Math.min(a,e/2,i/2);t.beginPath(),t.moveTo(n+o,r),t.lineTo(n+e-o,r),t.quadraticCurveTo(n+e,r,n+e,r+o),t.lineTo(n+e,r+i-o),t.quadraticCurveTo(n+e,r+i,n+e-o,r+i),t.lineTo(n+o,r+i),t.quadraticCurveTo(n,r+i,n,r+i-o),t.lineTo(n,r+o),t.quadraticCurveTo(n,r,n+o,r),t.closePath()}Pl.eleTextBiggerThanMin=function(t,n){if(!n){var r=t.cy().zoom(),e=this.getPixelRatio(),i=Math.ceil(Kn(r*e));n=Math.pow(2,i)}return!(t.pstyle("font-size").pfValue*n<t.pstyle("min-zoomed-font-size").pfValue)},Pl.drawElementText=function(t,n,r,e,i){var a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this;if(null==e){if(a&&!o.eleTextBiggerThanMin(n))return}else if(!1===e)return;if(n.isNode()){var u=n.pstyle("label");if(!u||!u.value)return;var s=o.getLabelJustification(n);t.textAlign=s,t.textBaseline="bottom"}else{var f=n.element().t.rscratch.badLine,c=n.pstyle("label"),l=n.pstyle("source-label"),v=n.pstyle("target-label");if(f||(!c||!c.value)&&(!l||!l.value)&&(!v||!v.value))return;t.textAlign="center",t.textBaseline="bottom"}var h,d=!r;r&&(h=r,t.translate(-h.x1,-h.y1)),null==i?(o.drawText(t,n,null,d,a),n.isEdge()&&(o.drawText(t,n,"source",d,a),o.drawText(t,n,"target",d,a))):o.drawText(t,n,i,d,a),r&&t.translate(h.x1,h.y1)},Pl.getFontCache=function(t){var n;this.fontCaches=this.fontCaches||[];for(var r=0;r<this.fontCaches.length;r++)if((n=this.fontCaches[r]).context===t)return n;return n={context:t},this.fontCaches.push(n),n},Pl.setupTextStyle=function(t,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],e=n.pstyle("font-style").strValue,i=n.pstyle("font-size").pfValue+"px",a=n.pstyle("font-family").strValue,o=n.pstyle("font-weight").strValue,u=r?n.effectiveOpacity()*n.pstyle("text-opacity").value:1,s=n.pstyle("text-outline-opacity").value*u,f=n.pstyle("color").value,c=n.pstyle("text-outline-color").value;t.font=e+" "+o+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,f[0],f[1],f[2],u),this.colorStrokeStyle(t,c[0],c[1],c[2],s)},Pl.getTextAngle=function(t,n){var r,e=t.t.rscratch,i=n?n+"-":"",a=t.pstyle(i+"text-rotation");if("autorotate"===a.strValue){var o=vn(e,"labelAngle",n);r=t.isEdge()?o:0}else r="none"===a.strValue?0:a.pfValue;return r},Pl.drawText=function(t,n,r){var e=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=n.t.rscratch,o=i?n.effectiveOpacity():1;if(!i||0!==o&&0!==n.pstyle("text-opacity").value){"main"===r&&(r=null);var u,s,f,c,l,v,h,d,g,p,y=vn(a,"labelX",r),m=vn(a,"labelY",r),b=this.getLabelText(n,r);if(null!=b&&""!==b&&!isNaN(y)&&!isNaN(m)){this.setupTextStyle(t,n,i);var x,w=r?r+"-":"",k=vn(a,"labelWidth",r),M=vn(a,"labelHeight",r),B=n.pstyle(w+"text-margin-x").pfValue,C=n.pstyle(w+"text-margin-y").pfValue,A=n.isEdge(),T=n.pstyle("text-halign").value,E=n.pstyle("text-valign").value;switch(A&&(T="center",E="center"),y+=B,m+=C,0!==(x=e?this.getTextAngle(n,r):0)&&(u=y,s=m,t.translate(u,s),t.rotate(x),y=0,m=0),E){case"top":break;case"center":m+=M/2;break;case"bottom":m+=M}var S=n.pstyle("text-background-opacity").value,z=n.pstyle("text-border-opacity").value,P=n.pstyle("text-border-width").pfValue,O=n.pstyle("text-background-padding").pfValue,N=n.pstyle("text-background-shape").strValue,R="round-rectangle"===N||"roundrectangle"===N,F="circle"===N;if(S>0||P>0&&z>0){var I=t.fillStyle,D=t.strokeStyle,L=t.lineWidth,j=n.pstyle("text-background-color").value,q=n.pstyle("text-border-color").value,_=n.pstyle("text-border-style").value,V=S>0,W=P>0&&z>0,$=y-O;switch(T){case"left":$-=k;break;case"center":$-=k/2}var K=m-M-O,Z=k+2*O,H=M+2*O;if(V&&(t.fillStyle="rgba(".concat(j[0],",").concat(j[1],",").concat(j[2],",").concat(S*o,")")),W&&(t.strokeStyle="rgba(".concat(q[0],",").concat(q[1],",").concat(q[2],",").concat(z*o,")"),t.lineWidth=P,t.setLineDash))switch(_){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=P/4,t.setLineDash([]);break;default:t.setLineDash([])}if(R?(t.beginPath(),Ol(t,$,K,Z,H,2)):F?(t.beginPath(),f=t,c=$,l=K,v=Z,h=H,d=Math.min(v,h)/2,g=c+v/2,p=l+h/2,f.beginPath(),f.arc(g,p,d,0,2*Math.PI),f.closePath()):(t.beginPath(),t.rect($,K,Z,H)),V&&t.fill(),W&&t.stroke(),W&&"double"===_){var G=P/2;t.beginPath(),R?Ol(t,$+G,K+G,Z-2*G,H-2*G,2):t.rect($+G,K+G,Z-2*G,H-2*G),t.stroke()}t.fillStyle=I,t.strokeStyle=D,t.lineWidth=L,t.setLineDash&&t.setLineDash([])}var U=2*n.pstyle("text-outline-width").pfValue;if(U>0&&(t.lineWidth=U),"wrap"===n.pstyle("text-wrap").value){var Y=vn(a,"labelWrapCachedLines",r),X=vn(a,"labelLineHeight",r),Q=k/2,J=this.getLabelJustification(n);switch("auto"===J||("left"===T?"left"===J?y+=-k:"center"===J&&(y+=-Q):"center"===T?"left"===J?y+=-Q:"right"===J&&(y+=Q):"right"===T&&("center"===J?y+=Q:"right"===J&&(y+=k))),E){case"top":case"center":case"bottom":m-=(Y.length-1)*X}for(var tt=0;tt<Y.length;tt++)U>0&&t.strokeText(Y[tt],y,m),t.fillText(Y[tt],y,m),m+=X}else U>0&&t.strokeText(b,y,m),t.fillText(b,y,m);0!==x&&(t.rotate(-x),t.translate(-u,-s))}}};var Nl={drawNode:function(t,n,r){var e,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],u=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],s=this,f=n.t,c=f.rscratch,l=n.position();if(U(l.x)&&U(l.y)&&(!u||n.visible())){var v,h,d=u?n.effectiveOpacity():1,g=s.usePaths(),p=!1,y=n.padding();e=n.width()+2*y,i=n.height()+2*y,r&&(h=r,t.translate(-h.x1,-h.y1));for(var m=n.pstyle("background-image").value,b=new Array(m.length),x=new Array(m.length),w=0,k=0;k<m.length;k++){var M=m[k];if(b[k]=null!=M&&"none"!==M){var B=n.cy().style().getIndexedStyle(n,"background-image-crossorigin","value",k);w++,x[k]=s.getCachedImage(M,B,function(){f.backgroundTimestamp=Date.now(),n.emitAndNotify("background")})}}var C=n.pstyle("background-blacken").value,A=n.pstyle("border-width").pfValue,T=n.pstyle("background-opacity").value*d,E=n.pstyle("border-color").value,S=n.pstyle("border-style").value,z=n.pstyle("border-join").value,P=n.pstyle("border-cap").value,O=n.pstyle("border-position").value,N=n.pstyle("border-dash-pattern").pfValue,R=n.pstyle("border-dash-offset").pfValue,F=n.pstyle("border-opacity").value*d,I=n.pstyle("outline-width").pfValue,D=n.pstyle("outline-color").value,L=n.pstyle("outline-style").value,j=n.pstyle("outline-opacity").value*d,q=n.pstyle("outline-offset").value,_=n.pstyle("corner-radius").value;"auto"!==_&&(_=n.pstyle("corner-radius").pfValue);var V=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;s.eleFillStyle(t,n,r)},W=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:F;s.colorStrokeStyle(t,E[0],E[1],E[2],n)},$=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j;s.colorStrokeStyle(t,D[0],D[1],D[2],n)},K=function(t,n,r,e){var i,a=s.nodePathCache=s.nodePathCache||[],o=$t("polygon"===r?r+","+e.join(","):r,""+n,""+t,""+_),u=a[o],f=!1;return null!=u?(i=u,f=!0,c.pathCache=i):(i=new Path2D,a[o]=c.pathCache=i),{path:i,cacheHit:f}},Z=n.pstyle("shape").strValue,H=n.pstyle("shape-polygon-points").pfValue;if(g){t.translate(l.x,l.y);var G=K(e,i,Z,H);v=G.path,p=G.cacheHit}var Y=function(){if(!p){var r=l;g&&(r={x:0,y:0}),s.nodeShapes[s.getNodeShape(n)].draw(v||t,r.x,r.y,e,i,_,c)}g?t.fill(v):t.fill()},X=function(){for(var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=f.backgrounding,a=0,o=0;o<x.length;o++){var u=n.cy().style().getIndexedStyle(n,"background-image-containment","value",o);e&&"over"===u||!e&&"inside"===u?a++:b[o]&&x[o].complete&&!x[o].error&&(a++,s.drawInscribedImage(t,x[o],n,o,r))}f.backgrounding=!(a===w),i!==f.backgrounding&&n.updateStyle(!1)},Q=function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;s.hasPie(n)&&(s.drawPie(t,n,a),r&&(g||s.nodeShapes[s.getNodeShape(n)].draw(t,l.x,l.y,e,i,_,c)))},J=function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;s.hasStripe(n)&&(t.save(),g?t.clip(c.pathCache):(s.nodeShapes[s.getNodeShape(n)].draw(t,l.x,l.y,e,i,_,c),t.clip()),s.drawStripe(t,n,a),t.restore(),r&&(g||s.nodeShapes[s.getNodeShape(n)].draw(t,l.x,l.y,e,i,_,c)))},tt=function(){var n=(C>0?C:-C)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:d),r=C>0?0:255;0!==C&&(s.colorFillStyle(t,r,r,r,n),g?t.fill(v):t.fill())},nt=function(){if(A>0){if(t.lineWidth=A,t.lineCap=P,t.lineJoin=z,t.setLineDash)switch(S){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(N),t.lineDashOffset=R;break;case"solid":case"double":t.setLineDash([])}if("center"!==O){if(t.save(),t.lineWidth*=2,"inside"===O)g?t.clip(v):t.clip();else{var n=new Path2D;n.rect(-e/2-A,-i/2-A,e+2*A,i+2*A),n.addPath(v),t.clip(n,"evenodd")}g?t.stroke(v):t.stroke(),t.restore()}else g?t.stroke(v):t.stroke();if("double"===S){t.lineWidth=A/3;var r=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",g?t.stroke(v):t.stroke(),t.globalCompositeOperation=r}t.setLineDash&&t.setLineDash([])}},rt=function(){if(I>0){if(t.lineWidth=I,t.lineCap="butt",t.setLineDash)switch(L){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([])}var r=l;g&&(r={x:0,y:0});var a=s.getNodeShape(n),o=A;"inside"===O&&(o=0),"outside"===O&&(o*=2);var u,f=(e+o+(I+q))/e,c=(i+o+(I+q))/i,v=e*f,h=i*c,d=s.nodeShapes[a].points;if(g)u=K(v,h,a,d).path;if("ellipse"===a)s.drawEllipsePath(u||t,r.x,r.y,v,h);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var p=0,y=0,m=0;"round-diamond"===a?p=1.4*(o+q+I):"round-heptagon"===a?(p=1.075*(o+q+I),m=-(o/2+q+I)/35):"round-hexagon"===a?p=1.12*(o+q+I):"round-pentagon"===a?(p=1.13*(o+q+I),m=-(o/2+q+I)/15):"round-tag"===a?(p=1.12*(o+q+I),y=.07*(o/2+I+q)):"round-triangle"===a&&(p=(o+q+I)*(Math.PI/2),m=-(o+q/2+I)/Math.PI),0!==p&&(v=e*(f=(e+p)/e),["round-hexagon","round-tag"].includes(a)||(h=i*(c=(i+p)/i)));for(var b=v/2,x=h/2,w=(_="auto"===_?Pr(v,h):_)+(o+I+q)/2,k=new Array(d.length/2),M=new Array(d.length/2),B=0;B<d.length/2;B++)k[B]={x:r.x+y+b*d[2*B],y:r.y+m+x*d[2*B+1]};var C,T,E,S,z=k.length;for(T=k[z-1],C=0;C<z;C++)E=k[C%z],S=k[(C+1)%z],M[C]=Nc(T,E,S,w),T=E,E=S;s.drawRoundPolygonPath(u||t,r.x+y,r.y+m,e*f,i*c,d,M)}else if(["roundrectangle","round-rectangle"].includes(a))_="auto"===_?zr(v,h):_,s.drawRoundRectanglePath(u||t,r.x,r.y,v,h,_+(o+I+q)/2);else if(["cutrectangle","cut-rectangle"].includes(a))_="auto"===_?8:_,s.drawCutRectanglePath(u||t,r.x,r.y,v,h,null,_+(o+I+q)/4);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(a))_="auto"===_?zr(v,h):_,s.drawBottomRoundRectanglePath(u||t,r.x,r.y,v,h,_+(o+I+q)/2);else if("barrel"===a)s.drawBarrelPath(u||t,r.x,r.y,v,h);else if(a.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(a)){d=mr(br(d,(o+I+q)/e)),s.drawPolygonPath(u||t,r.x,r.y,e,i,d)}else{d=mr(br(d,-((o+I+q)/e))),s.drawPolygonPath(u||t,r.x,r.y,e,i,d)}if(g?t.stroke(u):t.stroke(),"double"===L){t.lineWidth=o/3;var P=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",g?t.stroke(u):t.stroke(),t.globalCompositeOperation=P}t.setLineDash&&t.setLineDash([])}};if("yes"===n.pstyle("ghost").value){var et=n.pstyle("ghost-offset-x").pfValue,it=n.pstyle("ghost-offset-y").pfValue,at=n.pstyle("ghost-opacity").value,ot=at*d;t.translate(et,it),$(),rt(),V(at*T),Y(),X(ot,!0),W(at*F),nt(),Q(0!==C||0!==A),J(0!==C||0!==A),X(ot,!1),tt(ot),t.translate(-et,-it)}g&&t.translate(-l.x,-l.y),o&&s.drawNodeUnderlay(t,n,l,e,i),g&&t.translate(l.x,l.y),$(),rt(),V(),Y(),X(d,!0),W(),nt(),Q(0!==C||0!==A),J(0!==C||0!==A),X(d,!1),tt(),g&&t.translate(-l.x,-l.y),s.drawElementText(t,n,null,a),o&&s.drawNodeOverlay(t,n,l,e,i),r&&t.translate(h.x1,h.y1)}}},Rl=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(n,r,e,i,a){if(r.visible()){var o=r.pstyle("".concat(t,"-padding")).pfValue,u=r.pstyle("".concat(t,"-opacity")).value,s=r.pstyle("".concat(t,"-color")).value,f=r.pstyle("".concat(t,"-shape")).value,c=r.pstyle("".concat(t,"-corner-radius")).value;if(u>0){if(e=e||r.position(),null==i||null==a){var l=r.padding();i=r.width()+2*l,a=r.height()+2*l}this.colorFillStyle(n,s[0],s[1],s[2],u),this.nodeShapes[f].draw(n,e.x,e.y,i+2*o,a+2*o,c),n.fill()}}}};Nl.drawNodeOverlay=Rl("overlay"),Nl.drawNodeUnderlay=Rl("underlay"),Nl.hasPie=function(t){return(t=t[0]).t.hasPie},Nl.hasStripe=function(t){return(t=t[0]).t.hasStripe},Nl.drawPie=function(t,n,r,e){n=n[0],e=e||n.position();var i,a=n.cy().style(),o=n.pstyle("pie-size"),u=n.pstyle("pie-hole"),s=n.pstyle("pie-start-angle").pfValue,f=e.x,c=e.y,l=n.width(),v=n.height(),h=Math.min(l,v)/2,d=0;if(this.usePaths()&&(f=0,c=0),"%"===o.units?h*=o.pfValue:void 0!==o.pfValue&&(h=o.pfValue/2),"%"===u.units?i=h*u.pfValue:void 0!==u.pfValue&&(i=u.pfValue/2),!(i>=h))for(var g=1;g<=a.pieBackgroundN;g++){var p=n.pstyle("pie-"+g+"-background-size").value,y=n.pstyle("pie-"+g+"-background-color").value,m=n.pstyle("pie-"+g+"-background-opacity").value*r,b=p/100;b+d>1&&(b=1-d);var x=1.5*Math.PI+2*Math.PI*d,w=(x+=s)+2*Math.PI*b;0===p||d>=1||d+b>1||(0===i?(t.beginPath(),t.moveTo(f,c),t.arc(f,c,h,x,w),t.closePath()):(t.beginPath(),t.arc(f,c,h,x,w),t.arc(f,c,i,w,x,!0),t.closePath()),this.colorFillStyle(t,y[0],y[1],y[2],m),t.fill(),d+=b)}},Nl.drawStripe=function(t,n,r,e){n=n[0],e=e||n.position();var i=n.cy().style(),a=e.x,o=e.y,u=n.width(),s=n.height(),f=0,c=this.usePaths();t.save();var l=n.pstyle("stripe-direction").value,v=n.pstyle("stripe-size");switch(l){case"vertical":break;case"righward":t.rotate(-Math.PI/2)}var h=u,d=s;"%"===v.units?(h*=v.pfValue,d*=v.pfValue):void 0!==v.pfValue&&(h=v.pfValue,d=v.pfValue),c&&(a=0,o=0),o-=h/2,a-=d/2;for(var g=1;g<=i.stripeBackgroundN;g++){var p=n.pstyle("stripe-"+g+"-background-size").value,y=n.pstyle("stripe-"+g+"-background-color").value,m=n.pstyle("stripe-"+g+"-background-opacity").value*r,b=p/100;b+f>1&&(b=1-f),0===p||f>=1||f+b>1||(t.beginPath(),t.rect(a,o+d*f,h,d*b),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],m),t.fill(),f+=b)}t.restore()};var Fl,Il={};function Dl(t,n,r){var e=t.createShader(n);if(t.shaderSource(e,r),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(e));return e}function Ll(t,n,r){void 0===r&&(r=n);var e=t.makeOffscreenCanvas(n,r),i=e.context=e.getContext("2d");return e.clear=function(){return i.clearRect(0,0,e.width,e.height)},e.clear(),e}function jl(t){var n=t.pixelRatio,r=t.cy.zoom(),e=t.cy.pan();return{zoom:r*n,pan:{x:e.x*n,y:e.y*n}}}function ql(t){return"solid"===t.pstyle("background-fill").value&&("none"===t.pstyle("background-image").strValue&&(0===t.pstyle("border-width").value||(0===t.pstyle("border-opacity").value||"solid"===t.pstyle("border-style").value)))}function _l(t,n){if(t.length!==n.length)return!1;for(var r=0;r<t.length;r++)if(t[r]!==n[r])return!1;return!0}function Vl(t,n,r){var e=t[0]/255,i=t[1]/255,a=t[2]/255,o=n,u=r||new Array(4);return u[0]=e*o,u[1]=i*o,u[2]=a*o,u[3]=o,u}function Wl(t,n){var r=n||new Array(4);return r[0]=(255&t)/255,r[1]=(t>>8&255)/255,r[2]=(t>>16&255)/255,r[3]=(t>>24&255)/255,r}function $l(t){return t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)}function Kl(t,n){switch(n){case"float":return[1,t.FLOAT,4];case"vec2":return[2,t.FLOAT,4];case"vec3":return[3,t.FLOAT,4];case"vec4":return[4,t.FLOAT,4];case"int":return[1,t.INT,4];case"ivec2":return[2,t.INT,4]}}function Zl(t,n,r){switch(n){case t.FLOAT:return new Float32Array(r);case t.INT:return new Int32Array(r)}}function Hl(t,n,r,e,i,a){switch(n){case t.FLOAT:return new Float32Array(r.buffer,a*e,i);case t.INT:return new Int32Array(r.buffer,a*e,i)}}function Gl(t,n,r,e){var i=a(Kl(t,r),3),o=i[0],u=i[1],s=i[2],f=Zl(t,u,n*o),c=o*s,l=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,l),t.bufferData(t.ARRAY_BUFFER,n*c,t.DYNAMIC_DRAW),t.enableVertexAttribArray(e),u===t.FLOAT?t.vertexAttribPointer(e,o,u,!1,c,0):u===t.INT&&t.vertexAttribIPointer(e,o,u,c,0),t.vertexAttribDivisor(e,1),t.bindBuffer(t.ARRAY_BUFFER,null);for(var v=new Array(n),h=0;h<n;h++)v[h]=Hl(t,u,f,c,o,h);return l.dataArray=f,l.stride=c,l.size=o,l.getView=function(t){return v[t]},l.setPoint=function(t,n,r){var e=v[t];e[0]=n,e[1]=r},l.bufferSubData=function(n){t.bindBuffer(t.ARRAY_BUFFER,l),n?t.bufferSubData(t.ARRAY_BUFFER,0,f,0,n*o):t.bufferSubData(t.ARRAY_BUFFER,0,f)},l}Il.getPixelRatio=function(){var t=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var n=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(n.devicePixelRatio||1)/r},Il.paintCache=function(t){for(var n,r=this.paintCaches=this.paintCaches||[],e=!0,i=0;i<r.length;i++)if((n=r[i]).context===t){e=!1;break}return e&&(n={context:t},r.push(n)),n},Il.createGradientStyleFor=function(t,n,r,e,i){var a,o=this.usePaths(),u=r.pstyle(n+"-gradient-stop-colors").value,s=r.pstyle(n+"-gradient-stop-positions").pfValue;if("radial-gradient"===e)if(r.isEdge()){var f=r.sourceEndpoint(),c=r.targetEndpoint(),l=r.midpoint(),v=Hn(f,l),h=Hn(c,l);a=t.createRadialGradient(l.x,l.y,0,l.x,l.y,Math.max(v,h))}else{var d=o?{x:0,y:0}:r.position(),g=r.paddedWidth(),p=r.paddedHeight();a=t.createRadialGradient(d.x,d.y,0,d.x,d.y,Math.max(g,p))}else if(r.isEdge()){var y=r.sourceEndpoint(),m=r.targetEndpoint();a=t.createLinearGradient(y.x,y.y,m.x,m.y)}else{var b=o?{x:0,y:0}:r.position(),x=r.paddedWidth()/2,w=r.paddedHeight()/2;switch(r.pstyle("background-gradient-direction").value){case"to-bottom":a=t.createLinearGradient(b.x,b.y-w,b.x,b.y+w);break;case"to-top":a=t.createLinearGradient(b.x,b.y+w,b.x,b.y-w);break;case"to-left":a=t.createLinearGradient(b.x+x,b.y,b.x-x,b.y);break;case"to-right":a=t.createLinearGradient(b.x-x,b.y,b.x+x,b.y);break;case"to-bottom-right":case"to-right-bottom":a=t.createLinearGradient(b.x-x,b.y-w,b.x+x,b.y+w);break;case"to-top-right":case"to-right-top":a=t.createLinearGradient(b.x-x,b.y+w,b.x+x,b.y-w);break;case"to-bottom-left":case"to-left-bottom":a=t.createLinearGradient(b.x+x,b.y-w,b.x-x,b.y+w);break;case"to-top-left":case"to-left-top":a=t.createLinearGradient(b.x+x,b.y+w,b.x-x,b.y-w)}}if(!a)return null;for(var k=s.length===u.length,M=u.length,B=0;B<M;B++)a.addColorStop(k?s[B]:B/(M-1),"rgba("+u[B][0]+","+u[B][1]+","+u[B][2]+","+i+")");return a},Il.gradientFillStyle=function(t,n,r,e){var i=this.createGradientStyleFor(t,"background",n,r,e);if(!i)return null;t.fillStyle=i},Il.colorFillStyle=function(t,n,r,e,i){t.fillStyle="rgba("+n+","+r+","+e+","+i+")"},Il.eleFillStyle=function(t,n,r){var e=n.pstyle("background-fill").value;if("linear-gradient"===e||"radial-gradient"===e)this.gradientFillStyle(t,n,e,r);else{var i=n.pstyle("background-color").value;this.colorFillStyle(t,i[0],i[1],i[2],r)}},Il.gradientStrokeStyle=function(t,n,r,e){var i=this.createGradientStyleFor(t,"line",n,r,e);if(!i)return null;t.strokeStyle=i},Il.colorStrokeStyle=function(t,n,r,e,i){t.strokeStyle="rgba("+n+","+r+","+e+","+i+")"},Il.eleStrokeStyle=function(t,n,r){var e=n.pstyle("line-fill").value;if("linear-gradient"===e||"radial-gradient"===e)this.gradientStrokeStyle(t,n,e,r);else{var i=n.pstyle("line-color").value;this.colorStrokeStyle(t,i[0],i[1],i[2],r)}},Il.matchCanvasSize=function(t){var n=this,r=n.data,e=n.findContainerClientCoords(),i=e[2],a=e[3],o=n.getPixelRatio(),u=n.motionBlurPxRatio;t!==n.data.bufferCanvases[n.MOTIONBLUR_BUFFER_NODE]&&t!==n.data.bufferCanvases[n.MOTIONBLUR_BUFFER_DRAG]||(o=u);var s,f=i*o,c=a*o;if(f!==n.canvasWidth||c!==n.canvasHeight){n.fontCaches=null;var l=r.canvasContainer;l.style.width=i+"px",l.style.height=a+"px";for(var v=0;v<n.CANVAS_LAYERS;v++)(s=r.canvases[v]).width=f,s.height=c,s.style.width=i+"px",s.style.height=a+"px";for(v=0;v<n.BUFFER_COUNT;v++)(s=r.bufferCanvases[v]).width=f,s.height=c,s.style.width=i+"px",s.style.height=a+"px";n.textureMult=1,o<=1&&(s=r.bufferCanvases[n.TEXTURE_BUFFER],n.textureMult=2,s.width=f*n.textureMult,s.height=c*n.textureMult),n.canvasWidth=f,n.canvasHeight=c,n.pixelRatio=o}},Il.renderTo=function(t,n,r,e){this.render({forcedContext:t,forcedZoom:n,forcedPan:r,drawAllLayers:!0,forcedPxRatio:e})},Il.clearCanvas=function(){var t=this,n=t.data;function r(n){n.clearRect(0,0,t.canvasWidth,t.canvasHeight)}r(n.contexts[t.NODE]),r(n.contexts[t.DRAG])},Il.render=function(t){var n=this;t=t||sn();var r=n.cy,e=t.forcedContext,i=t.drawAllLayers,a=t.drawOnlyNodeLayer,o=t.forcedZoom,u=t.forcedPan,s=void 0===t.forcedPxRatio?this.getPixelRatio():t.forcedPxRatio,f=n.data,c=f.canvasNeedsRedraw,l=n.textureOnViewport&&!e&&(n.pinching||n.hoverData.dragging||n.swipePanning||n.data.wheelZooming),v=void 0!==t.motionBlur?t.motionBlur:n.motionBlur,h=n.motionBlurPxRatio,d=r.hasCompoundNodes(),g=n.hoverData.draggingEles,p=!(!n.hoverData.selecting&&!n.touchData.selecting),y=v=v&&!e&&n.motionBlurEnabled&&!p;e||(n.prevPxRatio!==s&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container),n.redrawHint("eles",!0),n.redrawHint("drag",!0)),n.prevPxRatio=s),!e&&n.motionBlurTimeout&&clearTimeout(n.motionBlurTimeout),v&&(null==n.mbFrames&&(n.mbFrames=0),n.mbFrames++,n.mbFrames<3&&(y=!1),n.mbFrames>n.minMbLowQualFrames&&(n.motionBlurPxRatio=n.mbPxRBlurry)),n.clearingMotionBlur&&(n.motionBlurPxRatio=1),n.textureDrawLastFrame&&!l&&(c[n.NODE]=!0,c[n.SELECT_BOX]=!0);var m=r.style(),b=r.zoom(),x=void 0!==o?o:b,w=r.pan(),k={x:w.x,y:w.y},M={zoom:b,pan:{x:w.x,y:w.y}},B=n.prevViewport;void 0===B||M.zoom!==B.zoom||M.pan.x!==B.pan.x||M.pan.y!==B.pan.y||g&&!d||(n.motionBlurPxRatio=1),u&&(k=u),x*=s,k.x*=s,k.y*=s;var C=n.getCachedZSortedEles();function A(t,r,e,i,a){var o=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",n.colorFillStyle(t,255,255,255,n.motionBlurTransparency),t.fillRect(r,e,i,a),t.globalCompositeOperation=o}function T(t,r){var a,s,c,l;n.clearingMotionBlur||t!==f.bufferContexts[n.MOTIONBLUR_BUFFER_NODE]&&t!==f.bufferContexts[n.MOTIONBLUR_BUFFER_DRAG]?(a=k,s=x,c=n.canvasWidth,l=n.canvasHeight):(a={x:w.x*h,y:w.y*h},s=b*h,c=n.canvasWidth*h,l=n.canvasHeight*h),t.setTransform(1,0,0,1,0,0),"motionBlur"===r?A(t,0,0,c,l):e||void 0!==r&&!r||t.clearRect(0,0,c,l),i||(t.translate(a.x,a.y),t.scale(s,s)),u&&t.translate(u.x,u.y),o&&t.scale(o,o)}if(l||(n.textureDrawLastFrame=!1),l){if(n.textureDrawLastFrame=!0,!n.textureCache){n.textureCache={},n.textureCache.bb=r.mutableElements().boundingBox(),n.textureCache.texture=n.data.bufferCanvases[n.TEXTURE_BUFFER];var E=n.data.bufferContexts[n.TEXTURE_BUFFER];E.setTransform(1,0,0,1,0,0),E.clearRect(0,0,n.canvasWidth*n.textureMult,n.canvasHeight*n.textureMult),n.render({forcedContext:E,drawOnlyNodeLayer:!0,forcedPxRatio:s*n.textureMult}),(M=n.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:n.canvasWidth,height:n.canvasHeight}).mpan={x:(0-M.pan.x)/M.zoom,y:(0-M.pan.y)/M.zoom}}c[n.DRAG]=!1,c[n.NODE]=!1;var S=f.contexts[n.NODE],z=n.textureCache.texture;M=n.textureCache.viewport;S.setTransform(1,0,0,1,0,0),v?A(S,0,0,M.width,M.height):S.clearRect(0,0,M.width,M.height);var P=m.core("outside-texture-bg-color").value,O=m.core("outside-texture-bg-opacity").value;n.colorFillStyle(S,P[0],P[1],P[2],O),S.fillRect(0,0,M.width,M.height);b=r.zoom();T(S,!1),S.clearRect(M.mpan.x,M.mpan.y,M.width/M.zoom/s,M.height/M.zoom/s),S.drawImage(z,M.mpan.x,M.mpan.y,M.width/M.zoom/s,M.height/M.zoom/s)}else n.textureOnViewport&&!e&&(n.textureCache=null);var N=r.extent(),R=n.pinching||n.hoverData.dragging||n.swipePanning||n.data.wheelZooming||n.hoverData.draggingEles||n.cy.animated(),F=n.hideEdgesOnViewport&&R,I=[];if(I[n.NODE]=!c[n.NODE]&&v&&!n.clearedForMotionBlur[n.NODE]||n.clearingMotionBlur,I[n.NODE]&&(n.clearedForMotionBlur[n.NODE]=!0),I[n.DRAG]=!c[n.DRAG]&&v&&!n.clearedForMotionBlur[n.DRAG]||n.clearingMotionBlur,I[n.DRAG]&&(n.clearedForMotionBlur[n.DRAG]=!0),c[n.NODE]||i||a||I[n.NODE]){var D=v&&!I[n.NODE]&&1!==h;T(S=e||(D?n.data.bufferContexts[n.MOTIONBLUR_BUFFER_NODE]:f.contexts[n.NODE]),v&&!D?"motionBlur":void 0),F?n.drawCachedNodes(S,C.nondrag,s,N):n.drawLayeredElements(S,C.nondrag,s,N),n.debug&&n.drawDebugPoints(S,C.nondrag),i||v||(c[n.NODE]=!1)}if(!a&&(c[n.DRAG]||i||I[n.DRAG])){D=v&&!I[n.DRAG]&&1!==h;T(S=e||(D?n.data.bufferContexts[n.MOTIONBLUR_BUFFER_DRAG]:f.contexts[n.DRAG]),v&&!D?"motionBlur":void 0),F?n.drawCachedNodes(S,C.drag,s,N):n.drawCachedElements(S,C.drag,s,N),n.debug&&n.drawDebugPoints(S,C.drag),i||v||(c[n.DRAG]=!1)}if(this.drawSelectionRectangle(t,T),v&&1!==h){var L=f.contexts[n.NODE],j=n.data.bufferCanvases[n.MOTIONBLUR_BUFFER_NODE],q=f.contexts[n.DRAG],_=n.data.bufferCanvases[n.MOTIONBLUR_BUFFER_DRAG],V=function(t,r,e){t.setTransform(1,0,0,1,0,0),e||!y?t.clearRect(0,0,n.canvasWidth,n.canvasHeight):A(t,0,0,n.canvasWidth,n.canvasHeight);var i=h;t.drawImage(r,0,0,n.canvasWidth*i,n.canvasHeight*i,0,0,n.canvasWidth,n.canvasHeight)};(c[n.NODE]||I[n.NODE])&&(V(L,j,I[n.NODE]),c[n.NODE]=!1),(c[n.DRAG]||I[n.DRAG])&&(V(q,_,I[n.DRAG]),c[n.DRAG]=!1)}n.prevViewport=M,n.clearingMotionBlur&&(n.clearingMotionBlur=!1,n.motionBlurCleared=!0,n.motionBlur=!0),v&&(n.motionBlurTimeout=setTimeout(function(){n.motionBlurTimeout=null,n.clearedForMotionBlur[n.NODE]=!1,n.clearedForMotionBlur[n.DRAG]=!1,n.motionBlur=!1,n.clearingMotionBlur=!l,n.mbFrames=0,c[n.NODE]=!0,c[n.DRAG]=!0,n.redraw()},100)),e||r.emit("render")},Il.drawSelectionRectangle=function(t,n){var r=this,e=r.cy,i=r.data,a=e.style(),o=t.drawOnlyNodeLayer,u=t.drawAllLayers,s=i.canvasNeedsRedraw,f=t.forcedContext;if(r.showFps||!o&&s[r.SELECT_BOX]&&!u){var c=f||i.contexts[r.SELECT_BOX];if(n(c),1==r.selection[4]&&(r.hoverData.selecting||r.touchData.selecting)){var l=r.cy.zoom(),v=a.core("selection-box-border-width").value/l;c.lineWidth=v,c.fillStyle="rgba("+a.core("selection-box-color").value[0]+","+a.core("selection-box-color").value[1]+","+a.core("selection-box-color").value[2]+","+a.core("selection-box-opacity").value+")",c.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]),v>0&&(c.strokeStyle="rgba("+a.core("selection-box-border-color").value[0]+","+a.core("selection-box-border-color").value[1]+","+a.core("selection-box-border-color").value[2]+","+a.core("selection-box-opacity").value+")",c.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]))}if(i.bgActivePosistion&&!r.hoverData.selecting){l=r.cy.zoom();var h=i.bgActivePosistion;c.fillStyle="rgba("+a.core("active-bg-color").value[0]+","+a.core("active-bg-color").value[1]+","+a.core("active-bg-color").value[2]+","+a.core("active-bg-opacity").value+")",c.beginPath(),c.arc(h.x,h.y,a.core("active-bg-size").pfValue/l,0,2*Math.PI),c.fill()}var d=r.lastRedrawTime;if(r.showFps&&d){d=Math.round(d);var g=Math.round(1e3/d),p="1 frame = "+d+" ms = "+g+" fps";if(c.setTransform(1,0,0,1,0,0),c.fillStyle="rgba(255, 0, 0, 0.75)",c.strokeStyle="rgba(255, 0, 0, 0.75)",c.font="30px Arial",!Fl){var y=c.measureText(p);Fl=y.actualBoundingBoxAscent}c.fillText(p,0,Fl);c.strokeRect(0,Fl+10,250,20),c.fillRect(0,Fl+10,250*Math.min(g/60,1),20)}u||(s[r.SELECT_BOX]=!1)}};var Ul="undefined"!=typeof Float32Array?Float32Array:Array;function Yl(){var t=new Ul(9);return Ul!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Xl(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function Ql(t,n,r){var e=n[0],i=n[1],a=n[2],o=n[3],u=n[4],s=n[5],f=n[6],c=n[7],l=n[8],v=r[0],h=r[1];return t[0]=e,t[1]=i,t[2]=a,t[3]=o,t[4]=u,t[5]=s,t[6]=v*e+h*o+f,t[7]=v*i+h*u+c,t[8]=v*a+h*s+l,t}function Jl(t,n,r){var e=n[0],i=n[1],a=n[2],o=n[3],u=n[4],s=n[5],f=n[6],c=n[7],l=n[8],v=Math.sin(r),h=Math.cos(r);return t[0]=h*e+v*o,t[1]=h*i+v*u,t[2]=h*a+v*s,t[3]=h*o-v*e,t[4]=h*u-v*i,t[5]=h*s-v*a,t[6]=f,t[7]=c,t[8]=l,t}function tv(t,n,r){var e=r[0],i=r[1];return t[0]=e*n[0],t[1]=e*n[1],t[2]=e*n[2],t[3]=i*n[3],t[4]=i*n[4],t[5]=i*n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t}Math.hypot||(Math.hypot=function(){for(var t=0,n=arguments.length;n--;)t+=arguments[n]*arguments[n];return Math.sqrt(t)});var nv=function(){return r(function t(r,e,i,a){n(this,t),this.debugID=Math.floor(1e4*Math.random()),this.r=r,this.texSize=e,this.texRows=i,this.texHeight=Math.floor(e/i),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=a(r,e,e),this.scratch=a(r,e,this.texHeight,"scratch")},[{key:"lock",value:function(){this.locked=!0}},{key:"getKeys",value:function(){return new Set(this.keyToLocation.keys())}},{key:"getScale",value:function(t){var n=t.w,r=t.h,e=this.texHeight,i=this.texSize,a=e/r,o=n*a,u=r*a;return o>i&&(o=n*(a=i/n),u=r*a),{scale:a,texW:o,texH:u}}},{key:"draw",value:function(t,n,r){var e=this;if(this.locked)throw new Error("can't draw, atlas is locked");var i=this.texSize,a=this.texRows,o=this.texHeight,u=this.getScale(n),s=u.scale,f=u.texW,c=u.texH,l=function(t,e){if(r&&e){var i=e.context,a=t.x,u=t.row,f=a,c=o*u;i.save(),i.translate(f,c),i.scale(s,s),r(i,n),i.restore()}},v=[null,null],h=function(){l(e.freePointer,e.canvas),v[0]={x:e.freePointer.x,y:e.freePointer.row*o,w:f,h:c},v[1]={x:e.freePointer.x+f,y:e.freePointer.row*o,w:0,h:c},e.freePointer.x+=f,e.freePointer.x==i&&(e.freePointer.x=0,e.freePointer.row++)},d=function(){e.freePointer.x=0,e.freePointer.row++};if(this.freePointer.x+f<=i)h();else{if(this.freePointer.row>=a-1)return!1;this.freePointer.x===i?(d(),h()):this.enableWrapping?function(){var t=e.scratch,n=e.canvas;t.clear(),l({x:0,row:0},t);var r=i-e.freePointer.x,a=f-r,u=o,s=e.freePointer.x,h=e.freePointer.row*o,d=r;n.context.drawImage(t,0,0,d,u,s,h,d,u),v[0]={x:s,y:h,w:d,h:c};var g=r,p=(e.freePointer.row+1)*o,y=a;n&&n.context.drawImage(t,g,0,y,u,0,p,y,u),v[1]={x:0,y:p,w:y,h:c},e.freePointer.x=a,e.freePointer.row++}():(d(),h())}return this.keyToLocation.set(t,v),this.needsBuffer=!0,v}},{key:"getOffsets",value:function(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function(){return 0===this.freePointer.x&&0===this.freePointer.row}},{key:"canFit",value:function(t){if(this.locked)return!1;var n=this.texSize,r=this.texRows,e=this.getScale(t).texW;return!(this.freePointer.x+e>n)||this.freePointer.row<r-1}},{key:"bufferIfNeeded",value:function(t){this.texture||(this.texture=function(t){var n=t.createTexture();return n.buffer=function(r){t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_NEAREST),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r),t.generateMipmap(t.TEXTURE_2D),t.bindTexture(t.TEXTURE_2D,null)},n.deleteTexture=function(){t.deleteTexture(n)},n}(t,this.debugID)),this.needsBuffer&&(this.texture.buffer(this.canvas),this.needsBuffer=!1,this.locked&&(this.canvas=null,this.scratch=null))}},{key:"dispose",value:function(){this.texture&&(this.texture.deleteTexture(),this.texture=null),this.canvas=null,this.scratch=null,this.locked=!0}}])}(),rv=function(){return r(function t(r,e,i,a){n(this,t),this.r=r,this.texSize=e,this.texRows=i,this.createTextureCanvas=a,this.atlases=[],this.styleKeyToAtlas=new Map,this.markedKeys=new Set},[{key:"getKeys",value:function(){return new Set(this.styleKeyToAtlas.keys())}},{key:"_createAtlas",value:function(){var t=this.r,n=this.texSize,r=this.texRows,e=this.createTextureCanvas;return new nv(t,n,r,e)}},{key:"_getScratchCanvas",value:function(){if(!this.scratch){var t=this.r,n=this.texSize,r=this.texRows,e=this.createTextureCanvas,i=Math.floor(n/r);this.scratch=e(t,n,i,"scratch")}return this.scratch}},{key:"draw",value:function(t,n,r){var e=this.styleKeyToAtlas.get(t);return e||((e=this.atlases[this.atlases.length-1])&&e.canFit(n)||(e&&e.lock(),e=this._createAtlas(),this.atlases.push(e)),e.draw(t,n,r),this.styleKeyToAtlas.set(t,e)),e}},{key:"getAtlas",value:function(t){return this.styleKeyToAtlas.get(t)}},{key:"hasAtlas",value:function(t){return this.styleKeyToAtlas.has(t)}},{key:"markKeyForGC",value:function(t){this.markedKeys.add(t)}},{key:"gc",value:function(){var t=this,n=this.markedKeys;if(0!==n.size){var r,i=[],u=new Map,s=null,f=e(this.atlases);try{var c=function(){var f,c,l=r.value,v=l.getKeys(),h=(c=v,(f=n).intersection?f.intersection(c):new Set(o(f).filter(function(t){return c.has(t)})));if(0===h.size)return i.push(l),v.forEach(function(t){return u.set(t,l)}),1;s||(s=t._createAtlas(),i.push(s));var d,g=e(v);try{for(g.s();!(d=g.n()).done;){var p=d.value;if(!h.has(p)){var y=a(l.getOffsets(p),2),m=y[0],b=y[1];s.canFit({w:m.w+b.w,h:m.h})||(s.lock(),s=t._createAtlas(),i.push(s)),l.canvas&&(t._copyTextureToNewAtlas(p,l,s),u.set(p,s))}}}catch(x){g.e(x)}finally{g.f()}l.dispose()};for(f.s();!(r=f.n()).done;)c()}catch(l){f.e(l)}finally{f.f()}this.atlases=i,this.styleKeyToAtlas=u,this.markedKeys=new Set}else console.log("nothing to garbage collect")}},{key:"_copyTextureToNewAtlas",value:function(t,n,r){var e=a(n.getOffsets(t),2),i=e[0],o=e[1];if(0===o.w)r.draw(t,i,function(t){t.drawImage(n.canvas,i.x,i.y,i.w,i.h,0,0,i.w,i.h)});else{var u=this._getScratchCanvas();u.clear(),u.context.drawImage(n.canvas,i.x,i.y,i.w,i.h,0,0,i.w,i.h),u.context.drawImage(n.canvas,o.x,o.y,o.w,o.h,i.w,0,o.w,o.h);var s=i.w+o.w,f=i.h;r.draw(t,{w:s,h:f},function(t){t.drawImage(u,0,0,s,f,0,0,s,f)})}}},{key:"getCounts",value:function(){return{keyCount:this.styleKeyToAtlas.size,atlasCount:new Set(this.styleKeyToAtlas.values()).size}}}])}();var ev=function(){return r(function t(r,e){n(this,t),this.r=r,this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.renderTypes=new Map,this.collections=new Map,this.typeAndIdToKey=new Map},[{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"addAtlasCollection",value:function(t,n){var r=this.globalOptions,e=r.webglTexSize,i=r.createTextureCanvas,a=n.texRows,o=this._cacheScratchCanvas(i),u=new rv(this.r,e,a,o);this.collections.set(t,u)}},{key:"addRenderType",value:function(t,n){var r=n.collection;if(!this.collections.has(r))throw new Error("invalid atlas collection name '".concat(r,"'"));var e=this.collections.get(r),i=pt({type:t,atlasCollection:e},n);this.renderTypes.set(t,i)}},{key:"getRenderTypeOpts",value:function(t){return this.renderTypes.get(t)}},{key:"getAtlasCollection",value:function(t){return this.collections.get(t)}},{key:"_cacheScratchCanvas",value:function(t){var n=-1,r=-1,e=null;return function(i,a,o,u){return u?(e&&a==n&&o==r||(n=a,r=o,e=t(i,a,o)),e):t(i,a,o)}}},{key:"_key",value:function(t,n){return"".concat(t,"-").concat(n)}},{key:"invalidate",value:function(t){var n,r=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=i.forceRedraw,o=void 0!==a&&a,u=i.filterEle,s=void 0===u?function(){return!0}:u,f=i.filterType,c=void 0===f?function(){return!0}:f,l=!1,v=!1,h=e(t);try{for(h.s();!(n=h.n()).done;){var d=n.value;if(s(d)){var g,p=e(this.renderTypes.values());try{var y=function(){var t=g.value,n=t.type;if(c(n)){var e=r.collections.get(t.collection),i=t.getKey(d),a=Array.isArray(i)?i:[i];if(o)a.forEach(function(t){return e.markKeyForGC(t)}),v=!0;else{var u=t.getID?t.getID(d):d.id(),s=r._key(n,u),f=r.typeAndIdToKey.get(s);void 0===f||_l(a,f)||(l=!0,r.typeAndIdToKey.delete(s),f.forEach(function(t){return e.markKeyForGC(t)}))}}};for(p.s();!(g=p.n()).done;)y()}catch(m){p.e(m)}finally{p.f()}}}}catch(m){h.e(m)}finally{h.f()}return v&&(this.gc(),l=!1),l}},{key:"gc",value:function(){var t,n=e(this.collections.values());try{for(n.s();!(t=n.n()).done;){t.value.gc()}}catch(r){n.e(r)}finally{n.f()}}},{key:"getOrCreateAtlas",value:function(t,n,r,e){var i=this.renderTypes.get(n),a=this.collections.get(i.collection),o=!1,u=a.draw(e,r,function(n){i.drawClipped?(n.save(),n.beginPath(),n.rect(0,0,r.w,r.h),n.clip(),i.drawElement(n,t,r,!0,!0),n.restore()):i.drawElement(n,t,r,!0,!0),o=!0});if(o){var s=i.getID?i.getID(t):t.id(),f=this._key(n,s);this.typeAndIdToKey.has(f)?this.typeAndIdToKey.get(f).push(e):this.typeAndIdToKey.set(f,[e])}return u}},{key:"getAtlasInfo",value:function(t,n){var r=this,e=this.renderTypes.get(n),i=e.getKey(t);return(Array.isArray(i)?i:[i]).map(function(i){var o=e.getBoundingBox(t,i),u=r.getOrCreateAtlas(t,n,o,i),s=a(u.getOffsets(i),2),f=s[0];return{atlas:u,tex:f,tex1:f,tex2:s[1],bb:o}})}},{key:"getDebugInfo",value:function(){var t,n=[],r=e(this.collections);try{for(r.s();!(t=r.n()).done;){var i=a(t.value,2),o=i[0],u=i[1].getCounts(),s=u.keyCount,f=u.atlasCount;n.push({type:o,keyCount:s,atlasCount:f})}}catch(c){r.e(c)}finally{r.f()}return n}}])}(),iv=function(){return r(function t(r){n(this,t),this.globalOptions=r,this.atlasSize=r.webglTexSize,this.maxAtlasesPerBatch=r.webglTexPerBatch,this.batchAtlases=[]},[{key:"getMaxAtlasesPerBatch",value:function(){return this.maxAtlasesPerBatch}},{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,n){return n})}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function(t){return this.batchAtlases.length!==this.maxAtlasesPerBatch||this.batchAtlases.includes(t)}},{key:"getAtlasIndexForBatch",value:function(t){var n=this.batchAtlases.indexOf(t);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(t),n=this.batchAtlases.length-1}return n}}])}(),av={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},ov=1,uv=2,sv=function(){return r(function t(r,e,i){n(this,t),this.r=r,this.gl=e,this.maxInstances=i.webglBatchSize,this.atlasSize=i.webglTexSize,this.bgColor=i.bgColor,this.debug=i.webglDebug,this.batchDebugInfo=[],i.enableWrapping=!0,i.createTextureCanvas=Ll,this.atlasManager=new ev(r,i),this.batchManager=new iv(i),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(av.SCREEN),this.pickingProgram=this._createShaderProgram(av.PICKING),this.vao=this._createVAO()},[{key:"addAtlasCollection",value:function(t,n){this.atlasManager.addAtlasCollection(t,n)}},{key:"addTextureAtlasRenderType",value:function(t,n){this.atlasManager.addRenderType(t,n)}},{key:"addSimpleShapeRenderType",value:function(t,n){this.simpleShapeOptions.set(t,n)}},{key:"invalidate",value:function(t){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).type,r=this.atlasManager;return n?r.invalidate(t,{filterType:function(t){return t===n},forceRedraw:!0}):r.invalidate(t)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"_createShaderProgram",value:function(t){var n=this.gl,r="#version 300 es\n precision highp float;\n\n uniform mat3 uPanZoomMatrix;\n uniform int uAtlasSize;\n \n // instanced\n in vec2 aPosition; // a vertex from the unit square\n \n in mat3 aTransform; // used to transform verticies, eg into a bounding box\n in int aVertType; // the type of thing we are rendering\n\n // the z-index that is output when using picking mode\n in vec4 aIndex;\n \n // For textures\n in int aAtlasId; // which shader unit/atlas to use\n in vec4 aTex; // x/y/w/h of texture in atlas\n\n // for edges\n in vec4 aPointAPointB;\n in vec4 aPointCPointD;\n in vec2 aLineWidth; // also used for node border width\n\n // simple shapes\n in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left]\n in vec4 aColor; // also used for edges\n in vec4 aBorderColor; // aLineWidth is used for border width\n\n // output values passed to the fragment shader\n out vec2 vTexCoord;\n out vec4 vColor;\n out vec2 vPosition;\n // flat values are not interpolated\n flat out int vAtlasId; \n flat out int vVertType;\n flat out vec2 vTopRight;\n flat out vec2 vBotLeft;\n flat out vec4 vCornerRadius;\n flat out vec4 vBorderColor;\n flat out vec2 vBorderWidth;\n flat out vec4 vIndex;\n \n void main(void) {\n int vid = gl_VertexID;\n vec2 position = aPosition; // TODO make this a vec3, simplifies some code below\n\n if(aVertType == ".concat(0,") {\n float texX = aTex.x; // texture coordinates\n float texY = aTex.y;\n float texW = aTex.z;\n float texH = aTex.w;\n\n if(vid == 1 || vid == 2 || vid == 4) {\n texX += texW;\n }\n if(vid == 2 || vid == 4 || vid == 5) {\n texY += texH;\n }\n\n float d = float(uAtlasSize);\n vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n }\n else if(aVertType == ").concat(4," || aVertType == ").concat(7," \n || aVertType == ").concat(5," || aVertType == ").concat(6,") { // simple shapes\n\n // the bounding box is needed by the fragment shader\n vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat\n vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat\n vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated\n\n // calculations are done in the fragment shader, just pass these along\n vColor = aColor;\n vCornerRadius = aCornerRadius;\n vBorderColor = aBorderColor;\n vBorderWidth = aLineWidth;\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n }\n else if(aVertType == ").concat(1,") {\n vec2 source = aPointAPointB.xy;\n vec2 target = aPointAPointB.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n // stretch the unit square into a long skinny rectangle\n vec2 xBasis = target - source;\n vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));\n vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y;\n\n gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);\n vColor = aColor;\n } \n else if(aVertType == ").concat(2,") {\n vec2 pointA = aPointAPointB.xy;\n vec2 pointB = aPointAPointB.zw;\n vec2 pointC = aPointCPointD.xy;\n vec2 pointD = aPointCPointD.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n vec2 p0, p1, p2, pos;\n if(position.x == 0.0) { // The left side of the unit square\n p0 = pointA;\n p1 = pointB;\n p2 = pointC;\n pos = position;\n } else { // The right side of the unit square, use same approach but flip the geometry upside down\n p0 = pointD;\n p1 = pointC;\n p2 = pointB;\n pos = vec2(0.0, -position.y);\n }\n\n vec2 p01 = p1 - p0;\n vec2 p12 = p2 - p1;\n vec2 p21 = p1 - p2;\n\n // Find the normal vector.\n vec2 tangent = normalize(normalize(p12) + normalize(p01));\n vec2 normal = vec2(-tangent.y, tangent.x);\n\n // Find the vector perpendicular to p0 -> p1.\n vec2 p01Norm = normalize(vec2(-p01.y, p01.x));\n\n // Determine the bend direction.\n float sigma = sign(dot(p01 + p21, normal));\n float width = aLineWidth[0];\n\n if(sign(pos.y) == -sigma) {\n // This is an intersecting vertex. Adjust the position so that there's no overlap.\n vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n } else {\n // This is a non-intersecting vertex. Treat it like a mitre join.\n vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n }\n\n vColor = aColor;\n } \n else if(aVertType == ").concat(3," && vid < 3) {\n // massage the first triangle into an edge arrow\n if(vid == 0)\n position = vec2(-0.15, -0.3);\n if(vid == 1)\n position = vec2( 0.0, 0.0);\n if(vid == 2)\n position = vec2( 0.15, -0.3);\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\n }\n else {\n gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space\n }\n\n vAtlasId = aAtlasId;\n vVertType = aVertType;\n vIndex = aIndex;\n }\n "),e=this.batchManager.getIndexArray(),i=function(t,n,r){var e=Dl(t,t.VERTEX_SHADER,n),i=Dl(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,e),t.attachShader(a,i),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new Error("Could not initialize shaders");return a}(n,r,"#version 300 es\n precision highp float;\n\n // declare texture unit for each texture atlas in the batch\n ".concat(e.map(function(t){return"uniform sampler2D uTexture".concat(t,";")}).join("\n\t"),"\n\n uniform vec4 uBGColor;\n uniform float uZoom;\n\n in vec2 vTexCoord;\n in vec4 vColor;\n in vec2 vPosition; // model coordinates\n\n flat in int vAtlasId;\n flat in vec4 vIndex;\n flat in int vVertType;\n flat in vec2 vTopRight;\n flat in vec2 vBotLeft;\n flat in vec4 vCornerRadius;\n flat in vec4 vBorderColor;\n flat in vec2 vBorderWidth;\n\n out vec4 outColor;\n\n ").concat("\n float circleSD(vec2 p, float r) {\n return distance(vec2(0), p) - r; // signed distance\n }\n","\n ").concat("\n float rectangleSD(vec2 p, vec2 b) {\n vec2 d = abs(p)-b;\n return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0);\n }\n","\n ").concat("\n float roundRectangleSD(vec2 p, vec2 b, vec4 cr) {\n cr.xy = (p.x > 0.0) ? cr.xy : cr.zw;\n cr.x = (p.y > 0.0) ? cr.x : cr.y;\n vec2 q = abs(p) - b + cr.x;\n return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x;\n }\n","\n ").concat("\n float ellipseSD(vec2 p, vec2 ab) {\n p = abs( p ); // symmetry\n\n // find root with Newton solver\n vec2 q = ab*(p-ab);\n float w = (q.x<q.y)? 1.570796327 : 0.0;\n for( int i=0; i<5; i++ ) {\n vec2 cs = vec2(cos(w),sin(w));\n vec2 u = ab*vec2( cs.x,cs.y);\n vec2 v = ab*vec2(-cs.y,cs.x);\n w = w + dot(p-u,v)/(dot(p-u,u)+dot(v,v));\n }\n \n // compute final point and distance\n float d = length(p-ab*vec2(cos(w),sin(w)));\n \n // return signed distance\n return (dot(p/ab,p/ab)>1.0) ? d : -d;\n }\n","\n\n vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha\n return vec4( \n top.rgb + (bot.rgb * (1.0 - top.a)),\n top.a + (bot.a * (1.0 - top.a)) \n );\n }\n\n vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance\n // scale to the zoom level so that borders don't look blurry when zoomed in\n // note 1.5 is an aribitrary value chosen because it looks good\n return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); \n }\n\n void main(void) {\n if(vVertType == ").concat(0,") {\n // look up the texel from the texture unit\n ").concat(e.map(function(t){return"if(vAtlasId == ".concat(t,") outColor = texture(uTexture").concat(t,", vTexCoord);")}).join("\n\telse "),"\n } \n else if(vVertType == ").concat(3,") {\n // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out';\n outColor = blend(vColor, uBGColor);\n outColor.a = 1.0; // make opaque, masks out line under arrow\n }\n else if(vVertType == ").concat(4," && vBorderWidth == vec2(0.0)) { // simple rectangle with no border\n outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done\n }\n else if(vVertType == ").concat(4," || vVertType == ").concat(7," \n || vVertType == ").concat(5," || vVertType == ").concat(6,") { // use SDF\n\n float outerBorder = vBorderWidth[0];\n float innerBorder = vBorderWidth[1];\n float borderPadding = outerBorder * 2.0;\n float w = vTopRight.x - vBotLeft.x - borderPadding;\n float h = vTopRight.y - vBotLeft.y - borderPadding;\n vec2 b = vec2(w/2.0, h/2.0); // half width, half height\n vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center\n\n float d; // signed distance\n if(vVertType == ").concat(4,") {\n d = rectangleSD(p, b);\n } else if(vVertType == ").concat(7," && w == h) {\n d = circleSD(p, b.x); // faster than ellipse\n } else if(vVertType == ").concat(7,") {\n d = ellipseSD(p, b);\n } else {\n d = roundRectangleSD(p, b, vCornerRadius.wzyx);\n }\n\n // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling\n // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box\n if(d > 0.0) {\n if(d > outerBorder) {\n discard;\n } else {\n outColor = distInterp(vBorderColor, vec4(0), d - outerBorder);\n }\n } else {\n if(d > innerBorder) {\n vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor;\n vec4 innerBorderColor = blend(vBorderColor, vColor);\n outColor = distInterp(innerBorderColor, outerColor, d);\n } \n else {\n vec4 outerColor;\n if(innerBorder == 0.0 && outerBorder == 0.0) {\n outerColor = vec4(0);\n } else if(innerBorder == 0.0) {\n outerColor = vBorderColor;\n } else {\n outerColor = blend(vBorderColor, vColor);\n }\n outColor = distInterp(vColor, outerColor, d - innerBorder);\n }\n }\n }\n else {\n outColor = vColor;\n }\n\n ").concat(t.picking?"if(outColor.a == 0.0) discard;\n else outColor = vIndex;":"","\n }\n "));i.aPosition=n.getAttribLocation(i,"aPosition"),i.aIndex=n.getAttribLocation(i,"aIndex"),i.aVertType=n.getAttribLocation(i,"aVertType"),i.aTransform=n.getAttribLocation(i,"aTransform"),i.aAtlasId=n.getAttribLocation(i,"aAtlasId"),i.aTex=n.getAttribLocation(i,"aTex"),i.aPointAPointB=n.getAttribLocation(i,"aPointAPointB"),i.aPointCPointD=n.getAttribLocation(i,"aPointCPointD"),i.aLineWidth=n.getAttribLocation(i,"aLineWidth"),i.aColor=n.getAttribLocation(i,"aColor"),i.aCornerRadius=n.getAttribLocation(i,"aCornerRadius"),i.aBorderColor=n.getAttribLocation(i,"aBorderColor"),i.uPanZoomMatrix=n.getUniformLocation(i,"uPanZoomMatrix"),i.uAtlasSize=n.getUniformLocation(i,"uAtlasSize"),i.uBGColor=n.getUniformLocation(i,"uBGColor"),i.uZoom=n.getUniformLocation(i,"uZoom"),i.uTextures=[];for(var a=0;a<this.batchManager.getMaxAtlasesPerBatch();a++)i.uTextures.push(n.getUniformLocation(i,"uTexture".concat(a)));return i}},{key:"_createVAO",value:function(){var t=[0,0,1,0,1,1,0,0,1,1,0,1];this.vertexCount=t.length/2;var n=this.maxInstances,r=this.gl,e=this.program,i=r.createVertexArray();return r.bindVertexArray(i),function(t,n,r,e){var i=a(Kl(t,n),2),o=i[0],u=i[1],s=Zl(t,u,e),f=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,f),t.bufferData(t.ARRAY_BUFFER,s,t.STATIC_DRAW),u===t.FLOAT?t.vertexAttribPointer(r,o,u,!1,0,0):u===t.INT&&t.vertexAttribIPointer(r,o,u,0,0),t.enableVertexAttribArray(r),t.bindBuffer(t.ARRAY_BUFFER,null)}(r,"vec2",e.aPosition,t),this.transformBuffer=function(t,n,r){for(var e=new Float32Array(9*n),i=new Array(n),a=0;a<n;a++){var o=9*a*4;i[a]=new Float32Array(e.buffer,o,9)}var u=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,u),t.bufferData(t.ARRAY_BUFFER,e.byteLength,t.DYNAMIC_DRAW);for(var s=0;s<3;s++){var f=r+s;t.enableVertexAttribArray(f),t.vertexAttribPointer(f,3,t.FLOAT,!1,36,12*s),t.vertexAttribDivisor(f,1)}return t.bindBuffer(t.ARRAY_BUFFER,null),u.getMatrixView=function(t){return i[t]},u.setData=function(t,n){i[n].set(t,0)},u.bufferSubData=function(){t.bindBuffer(t.ARRAY_BUFFER,u),t.bufferSubData(t.ARRAY_BUFFER,0,e)},u}(r,n,e.aTransform),this.indexBuffer=Gl(r,n,"vec4",e.aIndex),this.vertTypeBuffer=Gl(r,n,"int",e.aVertType),this.atlasIdBuffer=Gl(r,n,"int",e.aAtlasId),this.texBuffer=Gl(r,n,"vec4",e.aTex),this.pointAPointBBuffer=Gl(r,n,"vec4",e.aPointAPointB),this.pointCPointDBuffer=Gl(r,n,"vec4",e.aPointCPointD),this.lineWidthBuffer=Gl(r,n,"vec2",e.aLineWidth),this.colorBuffer=Gl(r,n,"vec4",e.aColor),this.cornerRadiusBuffer=Gl(r,n,"vec4",e.aCornerRadius),this.borderColorBuffer=Gl(r,n,"vec4",e.aBorderColor),r.bindVertexArray(null),i}},{key:"buffers",get:function(){var t=this;return this._buffers||(this._buffers=Object.keys(this).filter(function(t){return ft(t,"Buffer")}).map(function(n){return t[n]})),this._buffers}},{key:"startFrame",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:av.SCREEN;this.panZoomMatrix=t,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"_isVisible",value:function(t,n){return!!t.visible()&&(!n||!n.isVisible||n.isVisible(t))}},{key:"drawTexture",value:function(t,n,r){var i=this.atlasManager,o=this.batchManager,u=i.getRenderTypeOpts(r);if(this._isVisible(t,u)&&(!t.isEdge()||this._isValidEdge(t))){if(this.renderTarget.picking&&u.getTexPickingMode){var s=u.getTexPickingMode(t);if(s===ov)return;if(s==uv)return void this.drawPickingRectangle(t,n,r)}var f,c=e(i.getAtlasInfo(t,r));try{for(c.s();!(f=c.n()).done;){var l=f.value,v=l.atlas,h=l.tex1,d=l.tex2;o.canAddToCurrentBatch(v)||this.endBatch();for(var g=o.getAtlasIndexForBatch(v),p=0,y=[[h,!0],[d,!1]];p<y.length;p++){var m=a(y[p],2),b=m[0],x=m[1];if(0!=b.w){var w=this.instanceCount;this.vertTypeBuffer.getView(w)[0]=0,Wl(n,this.indexBuffer.getView(w)),this.atlasIdBuffer.getView(w)[0]=g;var k=this.texBuffer.getView(w);k[0]=b.x,k[1]=b.y,k[2]=b.w,k[3]=b.h;var M=this.transformBuffer.getMatrixView(w);this.setTransformMatrix(t,M,u,l,x),this.instanceCount++,x||this.wrappedCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}}catch(B){c.e(B)}finally{c.f()}}}},{key:"setTransformMatrix",value:function(t,n,r,e){var i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=0;if(r.shapeProps&&r.shapeProps.padding&&(a=t.pstyle(r.shapeProps.padding).pfValue),e){var o=e.bb,u=e.tex1,s=e.tex2,f=u.w/(u.w+s.w);i||(f=1-f);var c=this._getAdjustedBB(o,a,i,f);this._applyTransformMatrix(n,c,r,t)}else{var l=r.getBoundingBox(t),v=this._getAdjustedBB(l,a,!0,1);this._applyTransformMatrix(n,v,r,t)}}},{key:"_applyTransformMatrix",value:function(t,n,r,e){var i,a;Xl(t);var o=r.getRotation?r.getRotation(e):0;if(0!==o){var u=r.getRotationPoint(e);Ql(t,t,[u.x,u.y]),Jl(t,t,o);var s=r.getRotationOffset(e);i=s.x+(n.xOffset||0),a=s.y+(n.yOffset||0)}else i=n.x1,a=n.y1;Ql(t,t,[i,a]),tv(t,t,[n.w,n.h])}},{key:"_getAdjustedBB",value:function(t,n,r,e){var i=t.x1,a=t.y1,o=t.w,u=t.h;n&&(i-=n,a-=n,o+=2*n,u+=2*n);var s=0,f=o*e;return r&&e<1?o=f:!r&&e<1&&(i+=s=o-f,o=f),{x1:i,y1:a,w:o,h:u,xOffset:s,yOffset:t.yOffset}}},{key:"drawPickingRectangle",value:function(t,n,r){var e=this.atlasManager.getRenderTypeOpts(r),i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=4,Wl(n,this.indexBuffer.getView(i)),Vl([0,0,0],1,this.colorBuffer.getView(i));var a=this.transformBuffer.getMatrixView(i);this.setTransformMatrix(t,a,e),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},{key:"drawNode",value:function(t,n,r){var e=this.simpleShapeOptions.get(r);if(this._isVisible(t,e)){var i=e.shapeProps,a=this._getVertTypeForShape(t,i.shape);if(void 0===a||e.isSimple&&!e.isSimple(t))this.drawTexture(t,n,r);else{var o=this.instanceCount;if(this.vertTypeBuffer.getView(o)[0]=a,5===a||6===a){var u=e.getBoundingBox(t),s=this._getCornerRadius(t,i.radius,u),f=this.cornerRadiusBuffer.getView(o);f[0]=s,f[1]=s,f[2]=s,f[3]=s,6===a&&(f[0]=0,f[2]=0)}Wl(n,this.indexBuffer.getView(o)),Vl(t.pstyle(i.color).value,t.pstyle(i.opacity).value,this.colorBuffer.getView(o));var c=this.lineWidthBuffer.getView(o);if(c[0]=0,c[1]=0,i.border){var l=t.pstyle("border-width").value;if(l>0){Vl(t.pstyle("border-color").value,t.pstyle("border-opacity").value,this.borderColorBuffer.getView(o));var v=t.pstyle("border-position").value;if("inside"===v)c[0]=0,c[1]=-l;else if("outside"===v)c[0]=l,c[1]=0;else{var h=l/2;c[0]=h,c[1]=-h}}}var d=this.transformBuffer.getMatrixView(o);this.setTransformMatrix(t,d,e),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:"_getVertTypeForShape",value:function(t,n){switch(t.pstyle(n).value){case"rectangle":return 4;case"ellipse":return 7;case"roundrectangle":case"round-rectangle":return 5;case"bottom-round-rectangle":return 6;default:return}}},{key:"_getCornerRadius",value:function(t,n,r){var e=r.w,i=r.h;if("auto"===t.pstyle(n).value)return zr(e,i);var a=t.pstyle(n).pfValue,o=e/2,u=i/2;return Math.min(a,u,o)}},{key:"drawEdgeArrow",value:function(t,n,r){if(t.visible()){var e,i,a,o=t.t.rscratch;if("source"===r?(e=o.arrowStartX,i=o.arrowStartY,a=o.srcArrowAngle):(e=o.arrowEndX,i=o.arrowEndY,a=o.tgtArrowAngle),!(isNaN(e)||null==e||isNaN(i)||null==i||isNaN(a)||null==a))if("none"!==t.pstyle(r+"-arrow-shape").value){var u=t.pstyle(r+"-arrow-color").value,s=t.pstyle("opacity").value*t.pstyle("line-opacity").value,f=t.pstyle("width").pfValue,c=t.pstyle("arrow-scale").value,l=this.r.getArrowWidth(f,c),v=this.instanceCount,h=this.transformBuffer.getMatrixView(v);Xl(h),Ql(h,h,[e,i]),tv(h,h,[l,l]),Jl(h,h,a),this.vertTypeBuffer.getView(v)[0]=3,Wl(n,this.indexBuffer.getView(v)),Vl(u,s,this.colorBuffer.getView(v)),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:"drawEdgeLine",value:function(t,n){if(t.visible()){var r=this._getEdgePoints(t);if(r){var e=t.pstyle("opacity").value,i=t.pstyle("line-opacity").value,a=t.pstyle("width").pfValue,o=t.pstyle("line-color").value,u=e*i;if(r.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),4==r.length){var s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=1,Wl(n,this.indexBuffer.getView(s)),Vl(o,u,this.colorBuffer.getView(s)),this.lineWidthBuffer.getView(s)[0]=a;var f=this.pointAPointBBuffer.getView(s);f[0]=r[0],f[1]=r[1],f[2]=r[2],f[3]=r[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var c=0;c<r.length-2;c+=2){var l=this.instanceCount;this.vertTypeBuffer.getView(l)[0]=2,Wl(n,this.indexBuffer.getView(l)),Vl(o,u,this.colorBuffer.getView(l)),this.lineWidthBuffer.getView(l)[0]=a;var v=r[c-2],h=r[c-1],d=r[c],g=r[c+1],p=r[c+2],y=r[c+3],m=r[c+4],b=r[c+5];0==c&&(v=2*d-p+.001,h=2*g-y+.001),c==r.length-4&&(m=2*p-d+.001,b=2*y-g+.001);var x=this.pointAPointBBuffer.getView(l);x[0]=v,x[1]=h,x[2]=d,x[3]=g;var w=this.pointCPointDBuffer.getView(l);w[0]=p,w[1]=y,w[2]=m,w[3]=b,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}}},{key:"_isValidEdge",value:function(t){var n=t.t.rscratch;return!n.badLine&&null!=n.allpts&&!isNaN(n.allpts[0])}},{key:"_getEdgePoints",value:function(t){var n=t.t.rscratch;if(this._isValidEdge(t)){var r=n.allpts;if(4==r.length)return r;var e=this._getNumSegments(t);return this._getCurveSegmentPoints(r,e)}}},{key:"_getNumSegments",value:function(t){return Math.min(Math.max(15,5),this.maxInstances)}},{key:"_getCurveSegmentPoints",value:function(t,n){if(4==t.length)return t;for(var r=Array(2*(n+1)),e=0;e<=n;e++)if(0==e)r[0]=t[0],r[1]=t[1];else if(e==n)r[2*e]=t[t.length-2],r[2*e+1]=t[t.length-1];else{var i=e/n;this._setCurvePoint(t,i,r,2*e)}return r}},{key:"_setCurvePoint",value:function(t,n,r,e){if(!(t.length<=2)){for(var i=Array(t.length-2),a=0;a<i.length;a+=2){var o=(1-n)*t[a]+n*t[a+2],u=(1-n)*t[a+1]+n*t[a+3];i[a]=o,i[a+1]=u}return this._setCurvePoint(i,n,r,e)}r[e]=t[0],r[e+1]=t[1]}},{key:"endBatch",value:function(){var t=this.gl,n=this.vao,r=this.vertexCount,i=this.instanceCount;if(0!==i){var a=this.renderTarget.picking?this.pickingProgram:this.program;t.useProgram(a),t.bindVertexArray(n);var o,u=e(this.buffers);try{for(u.s();!(o=u.n()).done;){o.value.bufferSubData(i)}}catch(d){u.e(d)}finally{u.f()}for(var s,f,c=this.batchManager.getAtlases(),l=0;l<c.length;l++)c[l].bufferIfNeeded(t);for(var v=0;v<c.length;v++)t.activeTexture(t.TEXTURE0+v),t.bindTexture(t.TEXTURE_2D,c[v].texture),t.uniform1i(a.uTextures[v],v);t.uniform1f(a.uZoom,(s=this.r,f=s.pixelRatio,s.cy.zoom()*f)),t.uniformMatrix3fv(a.uPanZoomMatrix,!1,this.panZoomMatrix),t.uniform1i(a.uAtlasSize,this.batchManager.getAtlasSize());var h=Vl(this.bgColor,1);t.uniform4fv(a.uBGColor,h),t.drawArraysInstanced(t.TRIANGLES,0,r,i),t.bindVertexArray(null),t.bindTexture(t.TEXTURE_2D,null),this.debug&&this.batchDebugInfo.push({count:i,atlasCount:c.length}),this.startBatch()}}},{key:"getDebugInfo",value:function(){var t=this.atlasManager.getDebugInfo(),n=t.reduce(function(t,n){return t+n.atlasCount},0),r=this.batchDebugInfo,e=r.reduce(function(t,n){return t+n.count},0);return{atlasInfo:t,totalAtlases:n,wrappedCount:this.wrappedCount,simpleCount:this.simpleCount,batchCount:r.length,batchInfo:r,totalInstances:e}}}])}(),fv={};function cv(t,n){var r=t.t.rscratch;return vn(r,"labelWrapCachedLines",n)||[]}fv.initWebgl=function(t,n){var r=this,i=r.data.contexts[r.WEBGL];t.bgColor=function(t){var n=t.cy.container(),r=n&&n.style&&n.style.backgroundColor||"white";return yt(r)}(r),t.webglTexSize=Math.min(t.webglTexSize,i.getParameter(i.MAX_TEXTURE_SIZE)),t.webglTexRows=Math.min(t.webglTexRows,54),t.webglTexRowsNodes=Math.min(t.webglTexRowsNodes,54),t.webglBatchSize=Math.min(t.webglBatchSize,16384),t.webglTexPerBatch=Math.min(t.webglTexPerBatch,i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS)),r.webglDebug=t.webglDebug,r.webglDebugShowAtlases=t.webglDebugShowAtlases,r.pickingFrameBuffer=function(t){var n=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,n);var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.bindFramebuffer(t.FRAMEBUFFER,null),n.setFramebufferAttachmentSizes=function(n,e){t.bindTexture(t.TEXTURE_2D,r),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,n,e,0,t.RGBA,t.UNSIGNED_BYTE,null)},n}(i),r.pickingFrameBuffer.needsDraw=!0,r.drawing=new sv(r,i,t);var o=function(t){return function(n){return r.getTextAngle(n,t)}},u=function(t){return function(n){var r=n.pstyle(t);return r&&r.value}},s=function(t){return function(n){return n.pstyle("".concat(t,"-opacity")).value>0}},f=function(t){return"yes"===t.pstyle("text-events").strValue?uv:ov},c=function(t){var n=t.position(),r=n.x,e=n.y,i=t.outerWidth(),a=t.outerHeight();return{w:i,h:a,x1:r-i/2,y1:e-a/2}};r.drawing.addAtlasCollection("node",{texRows:t.webglTexRowsNodes}),r.drawing.addAtlasCollection("label",{texRows:t.webglTexRows}),r.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:n.getStyleKey,getBoundingBox:n.getElementBox,drawElement:n.drawElement}),r.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:c,isSimple:ql,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),r.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:c,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),r.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:c,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),r.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:f,getKey:lv(n.getLabelKey,null),getBoundingBox:vv(n.getLabelBox,null),drawClipped:!0,drawElement:n.drawLabel,getRotation:o(null),getRotationPoint:n.getLabelRotationPoint,getRotationOffset:n.getLabelRotationOffset,isVisible:u("label")}),r.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:f,getKey:lv(n.getSourceLabelKey,"source"),getBoundingBox:vv(n.getSourceLabelBox,"source"),drawClipped:!0,drawElement:n.drawSourceLabel,getRotation:o("source"),getRotationPoint:n.getSourceLabelRotationPoint,getRotationOffset:n.getSourceLabelRotationOffset,isVisible:u("source-label")}),r.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:f,getKey:lv(n.getTargetLabelKey,"target"),getBoundingBox:vv(n.getTargetLabelBox,"target"),drawClipped:!0,drawElement:n.drawTargetLabel,getRotation:o("target"),getRotationPoint:n.getTargetLabelRotationPoint,getRotationOffset:n.getTargetLabelRotationOffset,isVisible:u("target-label")});var l=St(function(){console.log("garbage collect flag set"),r.data.gc=!0},1e4);r.onUpdateEleCalcs(function(t,n){var e=!1;n&&n.length>0&&(e|=r.drawing.invalidate(n)),e&&l()}),function(t){var n=t.render;t.render=function(r){r=r||{};var e=t.cy;t.webgl&&(e.zoom()>al?(!function(t){var n=t.data.contexts[t.WEBGL];n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT)}(t),n.call(t,r)):(!function(t){var n=function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,t.canvasWidth,t.canvasHeight),n.restore()};n(t.data.contexts[t.NODE]),n(t.data.contexts[t.DRAG])}(t),gv(t,r,av.SCREEN)))};var r=t.matchCanvasSize;t.matchCanvasSize=function(n){r.call(t,n),t.pickingFrameBuffer.setFramebufferAttachmentSizes(t.canvasWidth,t.canvasHeight),t.pickingFrameBuffer.needsDraw=!0},t.findNearestElements=function(n,r,i,o){return function(t,n,r){var i,o,u,s=function(t,n,r){var e,i,o,u,s=jl(t),f=s.pan,c=s.zoom,l=function(t,n,r,e,i){var a=e*r+n.x,o=i*r+n.y;return[a,o=Math.round(t.canvasHeight-o)]}(t,f,c,n,r),v=a(l,2),h=v[0],d=v[1],g=6;if(e=h-g/2,i=d-g/2,u=g,0===(o=g)||0===u)return[];var p=t.data.contexts[t.WEBGL];p.bindFramebuffer(p.FRAMEBUFFER,t.pickingFrameBuffer),t.pickingFrameBuffer.needsDraw&&(p.viewport(0,0,p.canvas.width,p.canvas.height),gv(t,null,av.PICKING),t.pickingFrameBuffer.needsDraw=!1);var y=o*u,m=new Uint8Array(4*y);p.readPixels(e,i,o,u,p.RGBA,p.UNSIGNED_BYTE,m),p.bindFramebuffer(p.FRAMEBUFFER,null);for(var b=new Set,x=0;x<y;x++){var w=$l(m.slice(4*x,4*x+4))-1;w>=0&&b.add(w)}return b}(t,n,r),f=t.getCachedZSortedEles(),c=e(s);try{for(c.s();!(u=c.n()).done;){var l=f[u.value];if(!i&&l.isNode()&&(i=l),!o&&l.isEdge()&&(o=l),i&&o)break}}catch(v){c.e(v)}finally{c.f()}return[i,o].filter(Boolean)}(t,n,r)};var i=t.invalidateCachedZSortedEles;t.invalidateCachedZSortedEles=function(){i.call(t),t.pickingFrameBuffer.needsDraw=!0};var o=t.notify;t.notify=function(n,r){o.call(t,n,r),"viewport"===n||"bounds"===n?t.pickingFrameBuffer.needsDraw=!0:"background"===n&&t.drawing.invalidate(r,{type:"node-body"})}}(r)};var lv=function(t,n){return function(r){var e=t(r),i=cv(r,n);return i.length>1?i.map(function(t,n){return"".concat(e,"_").concat(n)}):e}},vv=function(t,n){return function(r,e){var i=t(r);if("string"==typeof e){var a=e.indexOf("_");if(a>0){var o=Number(e.substring(a+1)),u=cv(r,n),s=i.h/u.length,f=s*o,c=i.y1+f;return{x1:i.x1,w:i.w,y1:c,h:s,yOffset:f}}}return i}};function hv(t,n){var r=t.canvasWidth,e=t.canvasHeight,i=jl(t),a=i.pan,o=i.zoom;n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,r,e),n.translate(a.x,a.y),n.scale(o,o)}function dv(t,n,r){var e=t.drawing;n+=1,r.isNode()?(e.drawNode(r,n,"node-underlay"),e.drawNode(r,n,"node-body"),e.drawTexture(r,n,"label"),e.drawNode(r,n,"node-overlay")):(e.drawEdgeLine(r,n),e.drawEdgeArrow(r,n,"source"),e.drawEdgeArrow(r,n,"target"),e.drawTexture(r,n,"label"),e.drawTexture(r,n,"edge-source-label"),e.drawTexture(r,n,"edge-target-label"))}function gv(t,n,r){var i;t.webglDebug&&(i=performance.now());var a=t.drawing,o=0;if(r.screen&&t.data.canvasNeedsRedraw[t.SELECT_BOX]&&function(t,n){t.drawSelectionRectangle(n,function(n){return hv(t,n)})}(t,n),t.data.canvasNeedsRedraw[t.NODE]||r.picking){var u=t.data.contexts[t.WEBGL];r.screen?(u.clearColor(0,0,0,0),u.enable(u.BLEND),u.blendFunc(u.ONE,u.ONE_MINUS_SRC_ALPHA)):u.disable(u.BLEND),u.clear(u.COLOR_BUFFER_BIT|u.DEPTH_BUFFER_BIT),u.viewport(0,0,u.canvas.width,u.canvas.height);var s=function(t){var n=t.canvasWidth,r=t.canvasHeight,e=jl(t),i=e.pan,a=e.zoom,o=Yl();Ql(o,o,[i.x,i.y]),tv(o,o,[a,a]);var u=Yl();!function(t,n,r){t[0]=2/n,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1}(u,n,r);var s,f,c,l,v,h,d,g,p,y,m,b,x,w,k,M,B,C,A,T,E,S=Yl();return s=S,c=o,l=(f=u)[0],v=f[1],h=f[2],d=f[3],g=f[4],p=f[5],y=f[6],m=f[7],b=f[8],x=c[0],w=c[1],k=c[2],M=c[3],B=c[4],C=c[5],A=c[6],T=c[7],E=c[8],s[0]=x*l+w*d+k*y,s[1]=x*v+w*g+k*m,s[2]=x*h+w*p+k*b,s[3]=M*l+B*d+C*y,s[4]=M*v+B*g+C*m,s[5]=M*h+B*p+C*b,s[6]=A*l+T*d+E*y,s[7]=A*v+T*g+E*m,s[8]=A*h+T*p+E*b,S}(t),f=t.getCachedZSortedEles();if(o=f.length,a.startFrame(s,r),r.screen){for(var c=0;c<f.nondrag.length;c++)dv(t,c,f.nondrag[c]);for(var l=0;l<f.drag.length;l++)dv(t,l,f.drag[l])}else if(r.picking)for(var v=0;v<f.length;v++)dv(t,v,f[v]);a.endFrame(),r.screen&&t.webglDebugShowAtlases&&(function(t){var n=t.data.contexts[t.NODE];n.save(),hv(t,n),n.strokeStyle="rgba(0, 0, 0, 0.3)",n.beginPath(),n.moveTo(-1e3,0),n.lineTo(1e3,0),n.stroke(),n.beginPath(),n.moveTo(0,-1e3),n.lineTo(0,1e3),n.stroke(),n.restore()}(t),function(t){var n=function(n,r,e){for(var i=n.atlasManager.getAtlasCollection(r),a=t.data.contexts[t.NODE],o=i.atlases,u=0;u<o.length;u++){var s=o[u].canvas;if(s){var f=s.width,c=s.height,l=f*u,v=s.height*e;a.save(),a.scale(.4,.4),a.drawImage(s,l,v),a.strokeStyle="black",a.rect(l,v,f,c),a.stroke(),a.restore()}}},r=0;n(t.drawing,"node",r++),n(t.drawing,"label",r++)}(t)),t.data.canvasNeedsRedraw[t.NODE]=!1,t.data.canvasNeedsRedraw[t.DRAG]=!1}if(t.webglDebug){var h=performance.now(),d=Math.ceil(h-i),g=a.getDebugInfo(),p=["".concat(o," elements"),"".concat(g.totalInstances," instances"),"".concat(g.batchCount," batches"),"".concat(g.totalAtlases," atlases"),"".concat(g.wrappedCount," wrapped textures"),"".concat(g.simpleCount," simple shapes")].join(", ");console.log("WebGL (".concat(r.name,") - frame time ").concat(d,"ms")),console.log("Totals:"),console.log(" ".concat(p)),console.log("Texture Atlases Used:");var y,m=e(g.atlasInfo);try{for(m.s();!(y=m.n()).done;){var b=y.value;console.log(" ".concat(b.type,": ").concat(b.keyCount," keys, ").concat(b.atlasCount," atlases"))}}catch(x){m.e(x)}finally{m.f()}console.log("")}t.data.gc&&(console.log("Garbage Collect!"),t.data.gc=!1,a.gc())}for(var pv={drawPolygonPath:function(t,n,r,e,i,a){var o=e/2,u=i/2;t.beginPath&&t.beginPath(),t.moveTo(n+o*a[0],r+u*a[1]);for(var s=1;s<a.length/2;s++)t.lineTo(n+o*a[2*s],r+u*a[2*s+1]);t.closePath()},drawRoundPolygonPath:function(t,n,r,e,i,a,o){o.forEach(function(n){return Oc(t,n)}),t.closePath()},drawRoundRectanglePath:function(t,n,r,e,i,a){var o=e/2,u=i/2,s="auto"===a?zr(e,i):Math.min(a,u,o);t.beginPath&&t.beginPath(),t.moveTo(n,r-u),t.arcTo(n+o,r-u,n+o,r,s),t.arcTo(n+o,r+u,n,r+u,s),t.arcTo(n-o,r+u,n-o,r,s),t.arcTo(n-o,r-u,n,r-u,s),t.lineTo(n,r-u),t.closePath()},drawBottomRoundRectanglePath:function(t,n,r,e,i,a){var o=e/2,u=i/2,s="auto"===a?zr(e,i):a;t.beginPath&&t.beginPath(),t.moveTo(n,r-u),t.lineTo(n+o,r-u),t.lineTo(n+o,r),t.arcTo(n+o,r+u,n,r+u,s),t.arcTo(n-o,r+u,n-o,r,s),t.lineTo(n-o,r-u),t.lineTo(n,r-u),t.closePath()},drawCutRectanglePath:function(t,n,r,e,i,a,o){var u=e/2,s=i/2,f="auto"===o?8:o;t.beginPath&&t.beginPath(),t.moveTo(n-u+f,r-s),t.lineTo(n+u-f,r-s),t.lineTo(n+u,r-s+f),t.lineTo(n+u,r+s-f),t.lineTo(n+u-f,r+s),t.lineTo(n-u+f,r+s),t.lineTo(n-u,r+s-f),t.lineTo(n-u,r-s+f),t.closePath()},drawBarrelPath:function(t,n,r,e,i){var a=e/2,o=i/2,u=n-a,s=n+a,f=r-o,c=r+o,l=Or(e,i),v=l.widthOffset,h=l.heightOffset,d=l.ctrlPtOffsetPct*v;t.beginPath&&t.beginPath(),t.moveTo(u,f+h),t.lineTo(u,c-h),t.quadraticCurveTo(u+d,c,u+v,c),t.lineTo(s-v,c),t.quadraticCurveTo(s-d,c,s,c-h),t.lineTo(s,f+h),t.quadraticCurveTo(s-d,f,s-v,f),t.lineTo(u+v,f),t.quadraticCurveTo(u+d,f,u,f+h),t.closePath()}},yv=Math.sin(0),mv=Math.cos(0),bv={},xv={},wv=Math.PI/40,kv=0*Math.PI;kv<2*Math.PI;kv+=wv)bv[kv]=Math.sin(kv),xv[kv]=Math.cos(kv);pv.drawEllipsePath=function(t,n,r,e,i){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(n,r,e/2,i/2,0,0,2*Math.PI);else for(var a,o,u=e/2,s=i/2,f=0*Math.PI;f<2*Math.PI;f+=wv)a=n-u*bv[f]*yv+u*xv[f]*mv,o=r+s*xv[f]*yv+s*bv[f]*mv,0===f?t.moveTo(a,o):t.lineTo(a,o);t.closePath()};var Mv={};function Bv(t){var n=t.indexOf(",");return t.substr(n+1)}function Cv(t,n,r){var e=function(){return n.toDataURL(r,t.quality)};switch(t.output){case"blob-promise":return new Ze(function(e,i){try{n.toBlob(function(t){null!=t?e(t):i(new Error("`canvas.toBlob()` sent a null value in its callback"))},r,t.quality)}catch(a){i(a)}});case"blob":return function(t,n){for(var r=atob(t),e=new ArrayBuffer(r.length),i=new Uint8Array(e),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return new Blob([e],{type:n})}(Bv(e()),r);case"base64":return Bv(e());default:return e()}}Mv.createBuffer=function(t,n){var r=document.createElement("canvas");return r.width=t,r.height=n,[r,r.getContext("2d")]},Mv.bufferCanvasImage=function(t){var n=this.cy,r=n.mutableElements().boundingBox(),e=this.findContainerClientCoords(),i=t.full?Math.ceil(r.w):e[2],a=t.full?Math.ceil(r.h):e[3],o=U(t.maxWidth)||U(t.maxHeight),u=this.getPixelRatio(),s=1;if(void 0!==t.scale)i*=t.scale,a*=t.scale,s=t.scale;else if(o){var f=1/0,c=1/0;U(t.maxWidth)&&(f=s*t.maxWidth/i),U(t.maxHeight)&&(c=s*t.maxHeight/a),i*=s=Math.min(f,c),a*=s}o||(i*=u,a*=u,s*=u);var l=document.createElement("canvas");l.width=i,l.height=a,l.style.width=i+"px",l.style.height=a+"px";var v=l.getContext("2d");if(i>0&&a>0){v.clearRect(0,0,i,a),v.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(t.full)v.translate(-r.x1*s,-r.y1*s),v.scale(s,s),this.drawElements(v,h),v.scale(1/s,1/s),v.translate(r.x1*s,r.y1*s);else{var d=n.pan(),g={x:d.x*s,y:d.y*s};s*=n.zoom(),v.translate(g.x,g.y),v.scale(s,s),this.drawElements(v,h),v.scale(1/s,1/s),v.translate(-g.x,-g.y)}t.bg&&(v.globalCompositeOperation="destination-over",v.fillStyle=t.bg,v.rect(0,0,i,a),v.fill())}return l},Mv.png=function(t){return Cv(t,this.bufferCanvasImage(t),"image/png")},Mv.jpg=function(t){return Cv(t,this.bufferCanvasImage(t),"image/jpeg")};var Av={nodeShapeImpl:function(t,n,r,e,i,a,o,u){switch(t){case"ellipse":return this.drawEllipsePath(n,r,e,i,a);case"polygon":return this.drawPolygonPath(n,r,e,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(n,r,e,i,a,o,u);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(n,r,e,i,a,u);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(n,r,e,i,a,o,u);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(n,r,e,i,a,u);case"barrel":return this.drawBarrelPath(n,r,e,i,a)}}},Tv=Sv,Ev=Sv.prototype;function Sv(t){var n=this,r=n.cy.window().document;t.webgl&&(Ev.CANVAS_LAYERS=n.CANVAS_LAYERS=4,console.log("webgl rendering enabled")),n.data={canvases:new Array(Ev.CANVAS_LAYERS),contexts:new Array(Ev.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Ev.CANVAS_LAYERS),bufferCanvases:new Array(Ev.BUFFER_COUNT),bufferContexts:new Array(Ev.CANVAS_LAYERS)};var e="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";n.data.canvasContainer=r.createElement("div");var a=n.data.canvasContainer.style;n.data.canvasContainer.style[e]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var o=t.cy.container();o.appendChild(n.data.canvasContainer),o.style[e]=i;var u={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};l&&l.userAgent.match(/msie|trident|edge/i)&&(u["-ms-touch-action"]="none",u["touch-action"]="none");for(var s=0;s<Ev.CANVAS_LAYERS;s++){var f=n.data.canvases[s]=r.createElement("canvas"),c=Ev.CANVAS_TYPES[s];n.data.contexts[s]=f.getContext(c),n.data.contexts[s]||nn("Could not create canvas of type "+c),Object.keys(u).forEach(function(t){f.style[t]=u[t]}),f.style.position="absolute",f.setAttribute("data-id","layer"+s),f.style.zIndex=String(Ev.CANVAS_LAYERS-s),n.data.canvasContainer.appendChild(f),n.data.canvasNeedsRedraw[s]=!1}n.data.topCanvas=n.data.canvases[0],n.data.canvases[Ev.NODE].setAttribute("data-id","layer"+Ev.NODE+"-node"),n.data.canvases[Ev.SELECT_BOX].setAttribute("data-id","layer"+Ev.SELECT_BOX+"-selectbox"),n.data.canvases[Ev.DRAG].setAttribute("data-id","layer"+Ev.DRAG+"-drag"),n.data.canvases[Ev.WEBGL]&&n.data.canvases[Ev.WEBGL].setAttribute("data-id","layer"+Ev.WEBGL+"-webgl");for(s=0;s<Ev.BUFFER_COUNT;s++)n.data.bufferCanvases[s]=r.createElement("canvas"),n.data.bufferContexts[s]=n.data.bufferCanvases[s].getContext("2d"),n.data.bufferCanvases[s].style.position="absolute",n.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),n.data.bufferCanvases[s].style.zIndex=String(-s-1),n.data.bufferCanvases[s].style.visibility="hidden";n.pathsEnabled=!0;var v=Jn(),h=function(t){return{x:-t.w/2,y:-t.h/2}},d=function(t){return t[0].t.nodeKey},g=function(t){return t[0].t.labelStyleKey},p=function(t){return t[0].t.sourceLabelStyleKey},y=function(t){return t[0].t.targetLabelStyleKey},m=function(t,r,e,i,a){return n.drawElement(t,r,e,!1,!1,a)},b=function(t,r,e,i,a){return n.drawElementText(t,r,e,i,"main",a)},x=function(t,r,e,i,a){return n.drawElementText(t,r,e,i,"source",a)},w=function(t,r,e,i,a){return n.drawElementText(t,r,e,i,"target",a)},k=function(t){return t.boundingBox(),t[0].t.bodyBounds},M=function(t){return t.boundingBox(),t[0].t.labelBounds.main||v},B=function(t){return t.boundingBox(),t[0].t.labelBounds.source||v},C=function(t){return t.boundingBox(),t[0].t.labelBounds.target||v},A=function(t,n){return n},T=function(t){return{x:((n=k(t)).x1+n.x2)/2,y:(n.y1+n.y2)/2};var n},E=function(t,n,r){var e=t?t+"-":"";return{x:n.x+r.pstyle(e+"text-margin-x").pfValue,y:n.y+r.pstyle(e+"text-margin-y").pfValue}},S=function(t,n,r){var e=t[0].t.rscratch;return{x:e[n],y:e[r]}},z=function(t){return E("",S(t,"labelX","labelY"),t)},P=function(t){return E("source",S(t,"sourceLabelX","sourceLabelY"),t)},O=function(t){return E("target",S(t,"targetLabelX","targetLabelY"),t)},N=function(t){return h(k(t))},R=function(t){return h(B(t))},F=function(t){return h(C(t))},I=function(t){var n=M(t),r=h(M(t));if(t.isNode()){switch(t.pstyle("text-halign").value){case"left":r.x=-n.w-(n.leftPad||0);break;case"right":r.x=-(n.rightPad||0)}switch(t.pstyle("text-valign").value){case"top":r.y=-n.h-(n.topPad||0);break;case"bottom":r.y=-(n.botPad||0)}}return r},D=n.data.eleTxrCache=new sl(n,{getKey:d,doesEleInvalidateKey:function(t){var n=t[0].t;return!(n.oldBackgroundTimestamp===n.backgroundTimestamp)},drawElement:m,getBoundingBox:k,getRotationPoint:T,getRotationOffset:N,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),L=n.data.lblTxrCache=new sl(n,{getKey:g,drawElement:b,getBoundingBox:M,getRotationPoint:z,getRotationOffset:I,isVisible:A}),j=n.data.slbTxrCache=new sl(n,{getKey:p,drawElement:x,getBoundingBox:B,getRotationPoint:P,getRotationOffset:R,isVisible:A}),q=n.data.tlbTxrCache=new sl(n,{getKey:y,drawElement:w,getBoundingBox:C,getRotationPoint:O,getRotationOffset:F,isVisible:A}),_=n.data.lyrTxrCache=new cl(n);n.onUpdateEleCalcs(function(t,n){D.invalidateElements(n),L.invalidateElements(n),j.invalidateElements(n),q.invalidateElements(n),_.invalidateElements(n);for(var r=0;r<n.length;r++){var e=n[r].t;e.oldBackgroundTimestamp=e.backgroundTimestamp}});var V=function(t){for(var n=0;n<t.length;n++)_.enqueueElementRefinement(t[n].ele)};D.onDequeue(V),L.onDequeue(V),j.onDequeue(V),q.onDequeue(V),t.webgl&&n.initWebgl(t,{getStyleKey:d,getLabelKey:g,getSourceLabelKey:p,getTargetLabelKey:y,drawElement:m,drawLabel:b,drawSourceLabel:x,drawTargetLabel:w,getElementBox:k,getLabelBox:M,getSourceLabelBox:B,getTargetLabelBox:C,getElementRotationPoint:T,getElementRotationOffset:N,getLabelRotationPoint:z,getSourceLabelRotationPoint:P,getTargetLabelRotationPoint:O,getLabelRotationOffset:I,getSourceLabelRotationOffset:R,getTargetLabelRotationOffset:F})}Ev.CANVAS_LAYERS=3,Ev.SELECT_BOX=0,Ev.DRAG=1,Ev.NODE=2,Ev.WEBGL=3,Ev.CANVAS_TYPES=["2d","2d","2d","webgl2"],Ev.BUFFER_COUNT=3,Ev.TEXTURE_BUFFER=0,Ev.MOTIONBLUR_BUFFER_NODE=1,Ev.MOTIONBLUR_BUFFER_DRAG=2,Ev.redrawHint=function(t,n){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Ev.NODE]=n;break;case"drag":r.data.canvasNeedsRedraw[Ev.DRAG]=n;break;case"select":r.data.canvasNeedsRedraw[Ev.SELECT_BOX]=n;break;case"gc":r.data.gc=!0}};var zv="undefined"!=typeof Path2D;Ev.path2dEnabled=function(t){if(void 0===t)return this.pathsEnabled;this.pathsEnabled=!!t},Ev.usePaths=function(){return zv&&this.pathsEnabled},Ev.setImgSmoothing=function(t,n){null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled=n:(t.webkitImageSmoothingEnabled=n,t.mozImageSmoothingEnabled=n,t.msImageSmoothingEnabled=n)},Ev.getImgSmoothing=function(t){return null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled},Ev.makeOffscreenCanvas=function(t,n){var r;"undefined"!==("undefined"==typeof OffscreenCanvas?"undefined":s(OffscreenCanvas))?r=new OffscreenCanvas(t,n):((r=this.cy.window().document.createElement("canvas")).width=t,r.height=n);return r},[gl,wl,El,zl,Pl,Nl,Il,fv,pv,Mv,Av].forEach(function(t){pt(Ev,t)});var Pv=[{type:"layout",extensions:ic},{type:"renderer",extensions:[{name:"null",impl:ac},{name:"base",impl:tl},{name:"canvas",impl:Tv}]}],Ov={},Nv={};function Rv(t,n,r){var e=r,i=function(r){en("Can not register `"+n+"` for `"+t+"` since `"+r+"` already exists in the prototype and can not be overridden")};if("core"===t){if(yf.prototype[n])return i(n);yf.prototype[n]=r}else if("collection"===t){if(Os.prototype[n])return i(n);Os.prototype[n]=r}else if("layout"===t){for(var a=function(t){this.options=t,r.call(this,t),G(this.t)||(this.t={}),this.t.cy=t.cy,this.t.listeners=[],this.createEmitter()},o=a.prototype=Object.create(r.prototype),u=[],s=0;s<u.length;s++){var f=u[s];o[f]=o[f]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var c=r.prototype.stop;o.stop=function(){var t=this.options;if(t&&t.animate){var n=this.animations;if(n)for(var r=0;r<n.length;r++)n[r].stop()}return c?c.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this.t.cy};var l=function(t){return t.t.cy},v={addEventFields:function(t,n){n.layout=t,n.cy=l(t),n.target=t},bubble:function(){return!0},parent:function(t){return l(t)}};pt(o,{createEmitter:function(){return this.t.emitter=new Yu(v,this),this},emitter:function(){return this.t.emitter},on:function(t,n){return this.emitter().on(t,n),this},one:function(t,n){return this.emitter().one(t,n),this},once:function(t,n){return this.emitter().one(t,n),this},removeListener:function(t,n){return this.emitter().removeListener(t,n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(t,n){return this.emitter().emit(t,n),this}}),go.eventAliasesOn(o),e=a}else if("renderer"===t&&"null"!==n&&"base"!==n){var h=Fv("renderer","base"),d=h.prototype,g=r,p=r.prototype,y=function(){h.apply(this,arguments),g.apply(this,arguments)},m=y.prototype;for(var b in d){var x=d[b];if(null!=p[b])return i(b);m[b]=x}for(var w in p)m[w]=p[w];d.clientFunctions.forEach(function(t){m[t]=m[t]||function(){nn("Renderer does not implement `renderer."+t+"()` on its prototype")}}),e=y}else if("__proto__"===t||"constructor"===t||"prototype"===t)return nn(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return bt({map:Ov,keys:[t,n],value:e})}function Fv(t,n){return xt({map:Ov,keys:[t,n]})}function Iv(t,n,r,e,i){return bt({map:Nv,keys:[t,n,r,e],value:i})}function Dv(t,n,r,e){return xt({map:Nv,keys:[t,n,r,e]})}var Lv=function(){return 2===arguments.length?Fv.apply(null,arguments):3===arguments.length?Rv.apply(null,arguments):4===arguments.length?Dv.apply(null,arguments):5===arguments.length?Iv.apply(null,arguments):void nn("Invalid extension access syntax")};yf.prototype.extension=Lv,Pv.forEach(function(t){t.extensions.forEach(function(n){Rv(t.type,n.name,n.impl)})});var jv=function(){if(!(this instanceof jv))return new jv;this.length=0},qv=jv.prototype;qv.instanceString=function(){return"stylesheet"},qv.selector=function(t){return this[this.length++]={selector:t,properties:[]},this},qv.css=function(t,n){var r=this.length-1;if(K(t))this[r].properties.push({name:t,value:n});else if(G(t))for(var e=t,i=Object.keys(e),a=0;a<i.length;a++){var o=i[a],u=e[o];if(null!=u){var s=vf.properties[o]||vf.properties[ot(o)];if(null!=s){var f=s.name,c=u;this[r].properties.push({name:f,value:c})}}}return this},qv.style=qv.css,qv.generateStyle=function(t){var n=new vf(t);return this.appendToStyle(n)},qv.appendToStyle=function(t){for(var n=0;n<this.length;n++){var r=this[n],e=r.selector,i=r.properties;t.selector(e);for(var a=0;a<i.length;a++){var o=i[a];t.css(o.name,o.value)}}return t};var _v=function(t){return void 0===t&&(t={}),G(t)?new yf(t):K(t)?Lv.apply(Lv,arguments):void 0};_v.use=function(t){var n=Array.prototype.slice.call(arguments,1);return n.unshift(_v),t.apply(null,n),this},_v.warnings=function(t){return rn(t)},_v.version="3.33.1",_v.stylesheet=_v.Stylesheet=jv;export{_v as c};